В последнее время я много думал о том, как создать команду разработчиков. В конечном счете, я хотел бы открыть свой собственный небольшой программный дом с небольшим количеством единомышленников. Цель не в том, чтобы стать богатым, а в том, чтобы создать здоровую рабочую среду.
Пока что я определяю стройную команду следующим образом:
- Маленький;
- Самоорганизация;
- Все участники должны иметь в виду QA;
- Члены должны быть способны выполнять несколько ролей
Последний пункт, где я немного волнуюсь, потому что, как мантра идет ...
Разработчики делают плохих тестеров.
Хотя я понимаю, что зачастую разработчики «слишком близки» к своему коду или коду своего коллеги, чтобы проводить качественные оценки на более высоком уровне, я не уверен, что они де-факто плохие тестеры. Напротив, я придерживаюсь мнения, что качества хорошего разработчика в значительной степени совпадают с качествами хорошего тестировщика.
Предполагая, что это правильно, я думал о разных способах решения проблемы dev / tester, и я считаю, что нашел жизнеспособную модель.
Моя модель требует:
- Небольшой программный дом с 2+ проектами
- Agile (итеративный) подход к разработке и доставке
- 1 команда на проект
- Все члены команды будут разработчиками программного обеспечения
- Их описание работы будет четко развития , обеспечения качества , тестирования и доставки в качестве обязанностей
Если все эти предварительные условия были выполнены, то проекты могут быть организованы следующим образом (этот пример будет относиться к двум проектам, A и B ):
- Каждый член команды будет переключаться между ролью разработчика и ролью тестера
- Если член команды является разработчиком проекта А , он будет тестером проекта Б
- Пользователи будут работать только один проект в то время, и , следовательно , как ожидается, будут действовать как ни в Dev или тестером.
- Роль Цикл состоит из 3 -х итераций как Dev и 2 итерации в качестве тестера (опять же , на два разных проектах)
- У проектных команд всегда будет 3 разработчика и 2 тестера.
- Циклы роли участника должны быть не в фазе на 1 итерацию.
- Это сводит к минимуму резкие изменения команды. Для каждой итерации 2 разработчика и 1 тестер останутся такими же, как и предыдущая итерация.
Учитывая вышеизложенное, я вижу следующие плюсы и минусы:
Pros
- Распространяет знания о проекте по всей компании.
- Гарантирует, что члены команды не тестируют код, который они помогли написать.
- Роль циклов вне фазы означает, что ни один проект не имеет 100% -ого переключения участников.
- Чередование ролей нарушает однообразие скучных проектов.
Cons
- Итерации обоих проектов тесно связаны между собой. Если бы один проект отменил итерацию на полпути и начал заново, тогда оба проекта были бы не синхронизированы. Это затруднит управление ролевым циклом.
- Зависит от найма Разработчики также работают в качестве тестеров.
Я получил смешанные отзывы при обсуждении этого подхода с друзьями и коллегами. Некоторые считают, что немногие разработчики захотят чередовать подобные роли, в то время как другие говорят мне, что лично они хотели бы попробовать это.
Поэтому мой вопрос: может ли такая модель работать на практике? Если нет, то можно ли его подстроить под рабочую модель?
Примечание: ради краткости я сосредоточился только на ролях разработчика и тестера. Я расширю другие роли, если это необходимо.