Закон Брукса - Brookss law
Закон Брукса это наблюдение о управление программными проектами согласно которому "добавление рабочая сила к позднему программному проекту - позже ».[1][2] Он был придуман Фред Брукс в его книге 1975 года Мифический человеко-месяц. По словам Брукса, добавление в проект человека, который постепенно набирает обороты, требует больше, а не меньше времени.
Пояснения
По словам самого Брукса, закон является «возмутительным упрощением»,[1] но он отражает общее правило. Брукс указывает на основные факторы, объясняющие, почему это работает:
- Людям, добавленным в проект, нужно время, чтобы они стали продуктивный. Брукс называет это "наращивать "время. Программные проекты сложны инженерное дело начинания, и новые работники проекта должны сначала получить информацию о работе, которая им предшествовала; это образование требует отвлечения ресурсов, уже работающих над проектом, временно снижая их производительность, пока новые работники еще не вносят значимого вклада. Каждому новому работнику также необходимо интегрироваться с командой, состоящей из нескольких инженеров, которые должны ежедневно обучать нового работника в своей области знаний основам кода. Помимо уменьшения вклада опытных работников (из-за необходимости обучения), новые сотрудники могут даже внести отрицательный вклад, например, если они вносят ошибки, которые отодвигают проект дальше от завершения.
- Накладные расходы на коммуникацию возрастают по мере увеличения количества людей. Из-за комбинаторный взрыв, количество различных каналы связи быстро увеличивается с количеством людей.[3] Каждый, кто работает над одной и той же задачей, должен синхронизироваться, поэтому, когда добавляется больше людей, они тратят больше времени, пытаясь выяснить, что делают все остальные.
- Добавление большего количества людей к очень делимой задаче, такой как уборка комнат в отеле, уменьшает общую продолжительность задачи (до точки, когда дополнительные работники мешают друг другу). Однако другие задачи, включая многие специальности в программных проектах, менее делимы; Брукс указывает на эту ограниченную делимость другим примером: в то время как одной женщине требуется девять месяцев, чтобы родить одного ребенка, «девять женщин не могут зачать ребенка за один месяц».
Исключения и возможные решения
В законе Брукса есть несколько ключевых моментов, которые позволяют делать исключения и открывают дверь для возможных решений.[4][5]
Во-первых, следует отметить, что закон Брукса применяется только к проектам, которые уже просрочены.[6] Проекты можно вернуть под контроль (или оставить в нем), если люди будут добавлены ранее в процессе.[7] Также важно определить, действительно ли проект задерживается, или график изначально был слишком оптимистичным. Ошибки при составлении расписания приводят к большим задержкам проектов. Корректировка расписания - лучший способ определить точные и надежные временные рамки для завершения проекта.[8]
Также необходимо учитывать количество, качество и роль людей, добавленных в проект. Один простой способ обойти закон о перерасходе проекта - добавить больше людей, чем необходимо, таким образом, чтобы дополнительная мощность компенсировала накладные расходы на обучение и общение.[9] Хороший программисты или могут быть добавлены специалисты с меньшими накладными расходами на обучение.[10] Можно добавлять людей для выполнения других задач, связанных с проектом, например, гарантия качества или документация; при ясной задаче время нарастания минимально.[11]
Хорошая сегментация помогает минимизировать накладные расходы на общение между членами команды. Более мелкие подзадачи решаются небольшой командой, а команда верхнего уровня отвечает за системную интеграцию. Чтобы этот метод работал, сегментация проблемы должна быть сделана в первую очередь правильно; если все сделано неправильно, это может усугубить проблему, а не улучшить коммуникация между программистами, работающими над частями проблемы, которые на самом деле тесно связаны, даже если в плане проекта указано, что это не так.
Примером сегментации являются шаблоны проектирования которые упрощают распределение работы, потому что вся команда может выполнять свою часть работы в рамках, предоставляемых этим шаблоном. Шаблон проектирования определяет правила, которым следуют программисты, упрощает общение за счет использования стандартного языка и обеспечивает согласованность и масштабируемость.
В План Бермудских островов, где большинство разработчиков проекта удаляются ("отправляются на Бермудские острова"), а оставшиеся остаются для завершения работы над программным обеспечением, было предложено как способ обойти закон Брукса.[12]
Смотрите также
- Марш смерти
- Анти-шаблон
- Закон Линуса
- Список одноименных законов
- Список философий разработки программного обеспечения
Примечания
- ^ а б Фредерик П. Брукс-младший. Мифический человеко-месяц. 1995 [1975]. Эддисон-Уэсли.
- ^ Мэгги Фокс NBC News, 21 октября 2013 г., Лучше пользуйтесь телефоном: почему веб-сайт Obamacare такой провальный. Проверено 21 октября 2013 г. "И отправка слишком большого количества" лучших и самых ярких "тоже может быть неправильным решением, отмечают эксперты по программному обеспечению. Они часто ссылаются на закон Брукса, согласно которому добавление людей в проект замедляет его ".
- ^ Джеймс Тейлор, «Руководство по выживанию для менеджеров проектов», 2-е издание, AMACOM[требуется разъяснение ], 2006, ISBN 978-0814408773, п. 21.
- ^ «Несмотря на закон Брукса, добавление людей в поздний проект остается обычным делом» ... «Я сам много раз проповедовал этот заезженный каштан разработки программного обеспечения, но я больше не думаю, что это правда». (МакКоннелл, 1999)
- ^ «Проблема в том, что есть важные исключения, на которые многие люди не тратят время, чтобы учесть их при использовании закона Брукса для оправдания чего-либо». (Беркун, 2006)
- ^ «В этих проектах подразумевается, что это применимо только к заключительным этапам проекта. Вопрос в том, как узнать, находитесь ли вы на заключительных этапах проекта?» (Макконнелл, 1999)
- ^ «Мы обнаружили, что добавление людей в поздний проект всегда увеличивает его стоимость, но проект не всегда может опаздывать, поскольку может быть достаточно график поглотить их и проект может не быть укомплектованным на максимум. Только при определенной степени последовательных ограничений среди задач проекта реализация проекта будет отложена ». (Hsia, Hsu, Kung, 1999)
- ^ Поздние хаотичные проекты, вероятно, будут намного позже, чем думает руководитель проекта - до завершения проекта не три недели, а шесть месяцев. Давай, добавь сотрудников. У вас будет время, чтобы они стали продуктивными. Ваш проект все равно будет позже вашего плана, но это не результат закона Брукса. Это в первую очередь результат недооценки проекта ». (McConnell, 1999)
- ^ «Гордон и Лэмб изучили закон Брукса и предположили, что лучший способ оправиться от срыва графика - это добавить больше людей, чем можно было ожидать, и добавить их раньше». (Ся, Сюй, Кунг, 1999)
- ^ «Закон предполагает, что все добавленные трудозатраты равны, что неверно. Если бы у меня был выбор - добавить хорошего программиста, который знает кодовую базу и дружит с половиной команды, я бы рассмотрел это». (Беркун, 2006)
- ^ «Печальный, но популярный подход состоит в том, чтобы бросить людей без особых объяснений и позволить каждому понять это самостоятельно. Но если менеджер разъясняет, почему Салли и Руперт присоединяются, и определяет для них хорошие роли с участием команды, они» буду настроен на плавный переход ". (Беркун, 2006)
- ^ Ши, Том (7 мая 1984). "Разработчики представляют Vaporware"'". InfoWorld. Информационная группа InfoWorld. 6 (19): 48. ISSN 0199-6649. Получено 2010-04-13.
Рекомендации
- Стив МакКоннелл. «Закон Брукса отменен», IEEE Software, vol. 16, нет. 6, pp. 6–8, Nov / Dec, 1999. Также доступно на сайте авторов (Закон Брукса отменен? ).
- Пей Ся, Чжи-тунг Сю, Дэвид К. Кунг. «Новый взгляд на закон Брукса: подход системной динамики», compsac, p. 370, Двадцать третья ежегодная международная конференция по компьютерному программному обеспечению и приложениям, 1999 г.
- Р. Л. Гордон и Дж. К. Лэмб. «Внимательный взгляд на закон Брукса», Datamation, июнь 977 г., стр. 81–86.
- Беркун, Скотт (11 января 2006 г.). «Исключения из закона Брукса». Получено 2008-07-28.
- Закон Брукса применим ко многим совместным действиям людей