Останнім часом я багато думав про те, як створити стройну команду розвитку. Зрештою, я хотів би відкрити власний маленький будинок програмного забезпечення з невеликою кількістю однодумців. Метою не буде стати багатим, а, скоріше, здоровим робочим середовищем.
Поки що я визначаю худорляву команду як наступне:
- Малий;
- Самоорганізація;
- Усі члени повинні мати на увазі QA;
- Члени повинні бути здатні виконувати декілька ролей
Останній пункт - де я трохи хвилююся, тому що, як іде мантра ...
Розробники роблять погані тестери.
Хоча я розумію, що часто розробники "занадто близькі" до свого коду чи коду свого колеги, щоб робити оцінки якості вищого рівня, я не переконаний, що вони фактично погані тестери. Навпаки, я вважаю, що якості хорошого розробника сильно перегукуються з якостями хорошого тестера.
Якщо припустити, що це правильно, я думав про різні способи подолання проблеми «розробник / тестер», і я вважаю, що придумав життєздатну модель.
Моя модель вимагає:
- Невеликий програмний дім із 2+ проектами
- Спритний (ітеративний) підхід до розробки та реалізації
- 1 команда на проект
- Усі члени команди будуть розробниками програмного забезпечення
- Їх опис роботи буде чітко розвитку , забезпечення якості , тестування та доставки в якості обов'язків
Якщо всі ці передумови були дотримані, проекти можна організувати наступним чином (цей приклад стосується двох проектів, А та В ):
- Кожен член команди буде чергувати між роллю розробника та роллю тестера
- Якщо член команди - розробник проекту A , він буде тестувачем проекту B
- Учасники працюватимуть лише над одним проектом за один раз, тому, як очікується, вони будуть виконувати функції як розробник, так і тестер.
- Роль Цикл складається з 3 -х ітерацій як Dev і 2 ітерації в якості тестера (знову ж , на два різних проектах)
- Команди проектів мали б 3 розробників та 2 тестери за весь час.
- Рольові цикли учасників повинні бути поза фазою за допомогою 1 ітерації.
- Це мінімізує крутості змін команди. Для кожної ітерації 2 Devs та 1 Tester залишаться такими ж, як і попередні ітерації.
З огляду на сказане, я бачу такі плюси і мінуси:
Плюси
- Поширює знання проектів по всій компанії.
- Переконайтесь, що члени команди не перевіряють код, який вони допомогли написати.
- Позафазові рольові цикли означають, що жоден проект не має 100-відсоткового перемикача.
- Чергування ролей порушує монотонність нудних проектів.
Мінуси
- Ітерації обох проектів тісно поєднані. Якби один проект скасував ітерацію на півдорозі та почав заново, два проекти не синхронізувалися. Це ускладнювало б керування рольовим циклом.
- Навіси щодо найму Розробники відкриваються також як тестери.
Я отримував неоднозначні відгуки, коли обговорював цей підхід з друзями та колегами. Деякі вважають, що мало хто з розробників хотів би чергувати такі ролі, а інші кажуть, що вони особисто хотіли б спробувати це.
Отже, моє запитання: Чи може така модель працювати на практиці? Якщо ні, чи можна було б перетворити його на робочу модель?
Примітка: заради стислості я зосередився лише на ролях Dev і Tester. Я розширю на інші ролі, якщо потрібно.