Jump to content

Закон Брукса

Закон Брукса — это наблюдение об управлении программными проектами : «Добавление рабочей силы в запоздалый программный проект делает его позже». [ 1 ] [ 2 ] Его придумал Фред Брукс в своей книге «Мифический человеко-месяц» 1975 года . По словам Брукса, при определенных условиях добавление в проект дополнительного человека заставляет его занимать больше, а не меньше времени.

Пояснения

[ редактировать ]

По словам самого Брукса, закон представляет собой «возмутительное упрощение». [ 1 ] но это отражает общее правило. Брукс указывает на основные факторы, объясняющие, почему это работает таким образом:

  1. требуется некоторое время Чтобы люди, добавленные в проект, стали продуктивными, . Брукс называет это временем « нарастания ». Программные проекты представляют собой сложную инженерную деятельность, и новые работники проекта должны сначала получить знания о работе, которая им предшествовала; такое обучение требует отвлечения ресурсов, уже работающих над проектом, временного снижения их производительности, в то время как новые работники еще не вносят значимого вклада. Каждому новому работнику также необходимо интегрироваться с командой, состоящей из нескольких инженеров, которые должны изо дня в день обучать нового работника своей области знаний в области кода. Помимо снижения вклада опытных работников (из-за необходимости обучения), новые работники могут даже внести отрицательный вклад, например, если они внесут ошибки, которые отодвинут проект от завершения.
  2. Затраты на коммуникацию возрастают по мере увеличения числа людей. Благодаря комбинаторному взрыву количество различных каналов связи быстро увеличивается с ростом числа людей. [ 3 ] Всем, кто работает над одной и той же задачей, необходимо синхронизироваться, поэтому по мере того, как добавляется больше людей, они тратят больше времени, пытаясь узнать, что делают все остальные.
  3. Привлечение большего количества людей к легко разделяемой задаче, например, уборке номеров в отеле, уменьшает общую продолжительность задачи (вплоть до того, что дополнительные работники начинают мешать друг другу). Однако другие задачи, в том числе многие специальности в проектах программного обеспечения, менее разделены; Брукс указывает на эту ограниченную делимость на другом примере: хотя одной женщине требуется девять месяцев, чтобы выносить одного ребенка, «девять женщин не могут родить ребенка за один месяц».

Исключения и возможные решения

[ редактировать ]

В законе Брукса есть несколько ключевых моментов, которые допускают исключения и открывают двери для возможных решений. [ 4 ] [ 5 ]

Во-первых, следует отметить, что закон Брукса применим только к проектам, которые уже просрочены. [ 6 ] Проекты можно вернуть под контроль (или сохранить под ним), если к ним будут привлечены люди на более раннем этапе процесса. [ 7 ] Также важно определить, действительно ли проект запаздывает или график изначально был слишком оптимистичным. Ошибки планирования являются причиной большого количества просроченных проектов. Корректировка графика – лучший способ установить значимые и надежные сроки завершения проекта. [ 8 ]

Также необходимо учитывать количество, качество и роль людей, привлеченных к проекту. Один из простых способов обойти закон о перерасходе проекта — привлечь больше людей, чем необходимо, таким образом, чтобы дополнительные мощности компенсировали затраты на обучение и коммуникацию. [ 9 ] Хороших программистов или специалистов можно привлечь с меньшими затратами на обучение. [ 10 ] Людей можно добавить для выполнения других задач, связанных с проектом, например, обеспечения качества или документации; учитывая, что задача ясна, время разгона сводится к минимуму. [ 11 ]

Хорошая сегментация помогает минимизировать накладные расходы на общение между членами команды. Меньшие подзадачи решаются небольшой командой, а за системную интеграцию отвечает команда верхнего уровня. Чтобы этот метод работал, в первую очередь необходимо правильно провести сегментацию проблемы; если все сделано неправильно, это может усугубить проблему, а не улучшить ее, затруднив общение между программистами, работающими над частями проблемы, которые на самом деле тесно связаны между собой, даже если в плане проекта указано, что это не так.

Примером сегментации являются шаблоны проектирования , которые упрощают распределение работы, поскольку вся команда может выполнять свою часть работы в рамках, предусмотренных этим шаблоном. Шаблон проектирования определяет правила, которым следуют программисты, упрощает общение за счет использования стандартного языка и обеспечивает согласованность и масштабируемость.

План Бермудских островов , согласно которому большинство разработчиков проекта удаляется («отправляется на Бермудские острова »), а оставшимся оставляются дорабатывать программное обеспечение, был предложен как способ обойти закон Брукса. [ 12 ] [ 13 ]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Jump up to: а б Фредерик П. Брукс-младший. Мифический человеко-месяц . 1995 [1975]. Аддисон-Уэсли.
  2. Мэгги Фокс NBC News, 21 октября 2013 г., Лучше воспользуйтесь телефоном: почему веб-сайт Obamacare такой провальный . По состоянию на 21 октября 2013 г. «И отправка слишком большого количества «лучших и умнейших» тоже может быть неправильным решением, - отмечают эксперты по программному обеспечению. Они часто ссылаются на закон Брукса, который гласит, что привлечение людей к проекту замедляет его».
  3. ^ Джеймс Тейлор, «Руководство по выживанию для менеджеров проектов», 2-е издание, AMACOM [ нужны разъяснения ] , 2006, ISBN   978-0814408773 , с. 21.
  4. ^ «Несмотря на закон Брукса, добавление людей в запоздалый проект остается обычным явлением» ... «Я сам много раз проповедовал этот избитый каштан разработки программного обеспечения, но больше не думаю, что это правда». (МакКоннелл, 1999 г.)
  5. ^ «Проблема в том, что существуют важные исключения, на рассмотрение которых многие люди не тратят время, используя закон Брукса для оправдания чего-либо». (Беркун, 2006)
  6. ^ «В этих проектах подразумевается, что это применимо только к заключительным этапам проекта. Вопрос в том, как узнать, находитесь ли вы на заключительной стадии проекта?» (МакКоннелл, 1999 г.)
  7. ^ «Мы обнаружили, что добавление людей в просроченный проект всегда увеличивает его стоимость, но проект не всегда может задерживаться, поскольку может быть достаточный график для их приема, и в проекте может не быть максимального количества персонала. Только при определенной степени последовательные ограничения среди задач проекта приведут к задержке проекта». (Ся, Сюй, Кунг, 1999)
  8. ^ Поздние хаотичные проекты, скорее всего, будут реализованы намного позже, чем думает руководитель проекта: до завершения проекта осталось не три недели, а шесть месяцев. Идите вперед и добавьте персонал. У вас будет время, чтобы они стали продуктивными. Ваш проект все равно будет позже запланированного, но это не является результатом закона Брукса. В первую очередь это результат недооценки проекта» (МакКоннелл, 1999).
  9. ^ «Гордон и Лэмб изучили закон Брукса и предположили, что лучший способ оправиться от сдвигающегося графика — это добавить больше людей, чем можно было бы ожидать, и добавить их раньше». (Ся, Сюй, Кунг, 1999)
  10. ^ «Закон предполагает, что весь добавленный труд равен, что неверно. Учитывая возможность добавления хорошего программиста, который знает кодовую базу и дружит с половиной команды, я бы рассмотрел это». (Беркун, 2006)
  11. ^ «Печальный, но популярный подход — бросать людей без особых объяснений и позволять каждому самому разобраться. Но если менеджер разъясняет, почему Салли и Руперт присоединяются, и определяет для них хорошие роли при участии команды, они буду настроен на плавный переход». (Беркун, 2006)
  12. ^ Ши, Том (7 мая 1984 г.). «Разработчики представляют «Vaporware» » . Инфомир . 6 (19). InfoWorld Media Group: 48. ISSN   0199-6649 . Проверено 13 апреля 2010 г.
  13. ^ Бруно, Эрик Дж. (06 февраля 2023 г.). «Кудрявые скобки №9: Был ли Фред Брукс неправ насчет поздних программных проектов?» . Журнал Ява . Корпорация Оракл.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b1d6a85cc02f27df46b02a79465b58ee__1720587840
URL1:https://arc.ask3.ru/arc/aa/b1/ee/b1d6a85cc02f27df46b02a79465b58ee.html
Заголовок, (Title) документа по адресу, URL1:
Brooks's law - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)