Если брать во внимание только разработчиков (не обращая внимание на аналитиков, тестировщиков и т.д.), то ускорить разработку можно только привлекая новых разработчиков. Однако новый разработчик должен заниматься деятельностью которая не мешает другим членам команды. Давайте разберемся, как можно ограничить деятельность каждого разработчика внутри одного проекта.
Практика показывает, что в проекте есть задачи разного типа:
Таким образом, если у нас по одной задаче каждого типа, мы можем привлечь 4 человека. Но, практика говорит о том, что не всегда есть задачи каждого типа. В худшем случае ориентируемся на 1 тип задач (таким образом есть работа только для 1 разработчика).
На практике все не так печально и предлагаю такую формулу нахождения необходимого количество людей:
количество задач на следующий месяц / 3
где 3 - количество задач, которые 1 человек в теории может выполнять параллельно (переключаясь от одной задачи к другой по причине нехватки информации).
Проект всегда имеет распределение:
Таким образом, один член команды может заниматься чем-то одним или некоторой совокупностью функционала закрепленной за ним.
Заметка: задачи лучше распределять ориентируясь на способности и потребности разработчика.
Практичная команда: каждый член команды должен знать основной функционал + 1 дополнительный сложный или несколько среднесложных дополнительных функционалов.
Bus фактор (отпуск, болезнь, увольнение) говорит о том, что 1 функционал должны знать как минимум 2 члена команды.
Когда команда еще маленькая, хорошей стратегией реализации задачи является следующая последовательность.
| Шаг | Исполнитель | Автор |
| 1 | При необходимости пишет план реализации в комментарии к задаче или REAME.md | |
| 2 | Проводит ревью шага 1 | |
| 3 | Создает файлы/классы/методы без реализации | |
| 4 | Проводит ревью шага 3 | |
| 5 | Пишет код реализации и отправляет код на ревью | |
| 6 | Проводит ревью шага 5 | |
| 7 | Пишет тесты | |
| 8 | Проводит ревью шага 7 |
Важно: если в задаче вдруг появляется большой кусок работы (новой разработки или больших переделок), то на него лучше писать предварительное описание (вносить коррективы в план работ).
Допущения:
Совет: можно немного освободить Автора (Тимлида) от ряда замечани, если между шагом 7 и 8 один из членов команды проведет предварительное ревью.
А может ли одну задачу разрабатывать более одного человека - да, но эти люди должны заниматься деятельностью, которая не мешает друг другу.
В книге "Фредерик Брукс. Мифический человеко-месяц" описывается хороший рецепт, реализация которого для двух человек мне видится в создании мини-команды с ролями Исполнитель и Ассистент, которые почти параллельно занимаются следующими видами деятельности в рамках одной задачи:
| Исполнитель | Ассистент |
| Пишет план реализации в самой задаче или REAME.md | Проводит ревью |
| Создает файлы/классы/методы без реализации | Проводит ревью |
| Пишет код реализации | Пишет тесты |
| Отправляет код на ревью, проводит ревью тестов написанных Ассистентом | Проводит ревью |
Любой член команды может быть свободен какое-то время, это время он может потратить с пользой на:
Стоит заметить, что Исполнитель и Ассистент в рамках следующей задачи, должны меняться ролями.
Кроме того, такой подход позволяет исключить Bus-фактор.
Теперь добавим Автора задачи в мини-команду. Первым делом Автор обязан провести устную беседу с Исполнителем и Ассистентом (чтобы все участники правильно поняли задачу) и инициирует процесс реализации:
| Шаг | Исполнитель | Ассистент | Автор |
| 1 | Пишет план реализации в самой задаче или REAME.md | ||
| 2 | Проводит ревью шага 1 | ||
| 3 | Проводит ревью шага 1 | ||
| 4 | Создает файлы/классы/методы без реализации | Резолвит шаг 3 | |
| 5 | Проводит ревью шага 4 | ||
| 6 | Проводит ревью шага 4 | ||
| 7 | Пишет код реализации и отправляет код на ревью | Резолвит шаг 6 и пишет тесты | |
| 8 | Проводит ревью тестов написанных Ассистентом | Проводит ревью шага 7 | Ожидает кросс-резолва между Исполнителем и Ассистентом |
| 9 | Проводит ревью шага 8 |
Как видно Ассистент должен резолвить ревью Автора, это нужно чтобы следующий раз учитывать особенности ревью, которое проводит Автор + для более глубокого погружения в задачу.
Стоит добавить, что у задачи с типом "ошибка", процесс другой (более простой).
Проблемы
Вы как руководитель время от времени можете быть перегружены работой, Вам нужен помощник, а в случае Вашего отсутствия - заместитель, рассмотрим роли, которые Вы выполняете и можете переложить/распределить на заместителей. Очень хорошо, когда заместитель обладает мотивацией в исполнении одной из ролей заместителя.
Задача руководителя:
Комментарии
Комментариев пока нет.