Моя команда из 4 опытных разработчиков работает над большим модульным приложением Windows (около 200 KLoC). Я сосредоточился на основной кодовой базе с самого начала проекта (3 года назад) и постепенно перешел на полузамкнутую должность разработчика, хотя я не являюсь менеджером команды.
Наша текущая итерация представляет собой высокоприоритетное обновление пользовательского интерфейса, запрошенное высшим руководством, которое включает около 15 изменений в основной кодовой базе. На вопрос менеджера, я оценил , что каждый из 15 изменений займет менее четырех часов для меня , чтобы закончить , в общей сложности менее чем за 7 рабочих дней. Затем я вызвался выполнить работу. Вместо этого менеджер решил равномерно разделить все 15 задач на всех четырех разработчиков.
За три дня, с тех пор как мы начали работу, я заметил две вещи:
Другие неопытные члены команды выполнили около 1 или менее задачи каждый.
Закон Брука в действии: я потратил около половины своего времени на оказание помощи (пытаясь научить их использовать компоненты). В результате я только закончил 2 задачи самостоятельно, вместо ожидаемых 5 или 6.
Я обратился к своему менеджеру с беспокойством, что мы опаздывали, и снова предложил мне выполнить оставшиеся задачи. Мой запрос был любезно отклонен, и заявленные причины для равномерного распределения нагрузки были двоякими:
- Ограничьте фактор грузовика / автобуса - накапливая эти навыки у других разработчиков сейчас, чтобы в будущем любая работа могла быть отдана кому угодно, а не только мне.
- Устранить «узкое место» (меня) и сделать работу быстрее.
Чтобы быть ясным, у меня нет проблем с: а) тратить время на обучение, б) люди, касающиеся моего кода, или в) обеспечение работой. Фактически, я регулярно советую руководителю группы обучать других разработчиков определенным аспектам базовой кодовой базы, чтобы снизить риск.
В этой итерации у нас также есть большая коллекция исправлений ошибок с высоким приоритетом, поэтому может показаться, что можно добиться большего прогресса, если перераспределить рабочую нагрузку.
В «Мифическом человеко-месяце» Брукс предлагает « хирургическую команду », в которой каждая команда состоит из лидера + суб-лидера (менеджера и меня) и некоторых второстепенных ролей. Я чувствую, что мы естественно попадаем в эту организацию, но мой менеджер работает против этого. Я чувствую, что о шинном факторе уже позаботились (менеджер хорошо разбирается в основном коде), и что узкое место на самом деле не существует (привлечение большего количества разработчиков не заставит работу работать быстрее). Я думаю, что в этом отношении хирургическая бригада - это хорошо.
Это мои чувства, но я не опытный менеджер, и нам не приходилось иметь дело с автобусным фактором (стук по дереву). Брукс был прав? Вы работали в «хирургической команде», где в игру вступил автобусный фактор? Существуют ли лучшие методы для управления распределением опыта?
Подобные вопросы: