Брукс Ф. Мифический человеко-месяц или как создаются программные системы

27 февраля, 2011 Рубрики: Бестселлеры в Белинке Автор: Написать автору

Уже на протяжении 35 лет книга Фредерика Брукса «Мифический человеко-месяц» остаётся популярной в среде программистов и разработчиков программного обеспечения. Критики называют её «библией для разработчиков ПО» во всём мире. Центральной темой книги стала парадоксальная мысль о том, что привнесение новых сил в проект, который разрабатывается уже слишком длительное время, — будь то деньги или человеческий ресурс — отодвигает срок сдачи проекта ещё на неопределённое время. Эта аксиома носит сегодня понятие «закон Брукса» и учитывается ведущими компаниями мира по разработке современного программного обеспечения.

В программировании, утверждает Брукс, время выполнения проекта не обратно пропорционально числу программистов, по крайней мере по 2 причинам. Во-первых, при разработке ПО работу невозможно выполнять частями: все части зависят друг от друга, и  некоторые задачи можно начинать выполнять только после того, как будут закончены другие. Во-вторых, необходимо учитывать время, которое программисты тратят на взаимодействие друг с другом.

Брукс вычислил формулу, согласно которой с ростом числа программистов затраты времени на взаимодействие растут квадратично: N(N-1)/2. Таким образом, если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше. Эта аксиома, называемая «законом Брукса», стала основополагающей идеей всей книги.

Брукс объясняет массу причин, по которым реализация проекта откладывается на неопределённое время: новеньким программистам необходимо время, чтобы «въехать в процесс», необходимо обучение; программисты тратят массу времени на взаимодействие друг с другом. И чем длиннее цепочка программистов, тем вероятнее, что проект не будет закончен вовремя. При этом вокруг царит общая неразбериха, программисты пытаются исправить уже существующие ошибки и недостатки, в то время как возникают новые, при этом система не улучшается. При очень большом числе программистов проект может быть не закончен вообще никогда.

Чтобы разработать программный продукт, требуется в три раза больше времени, чем разработка самой программы. Так как программный продукт проходит тщательное тестирование, а написание подробной сопроводительной документации занимает массу времени… Брукс в своей книги старается помочь спрогнозировать, какое количество времени может занять реализация того или иного проекта, а также — с какими именно трудностями и ошибками могут столкнуться разработчики.

Например, Брукс указывает на то, что создание слишком сложной и функциональной системы с массой возможностей в итоге приведёт к тому, что половина этих возможностей не будет использоваться никогда, тогда как временные и денежные затраты на создание системы огромны, так как на проработку каждой возможности необходимы дополнительные средства и время. Поэтому простота очень важна. Автор указывает на необходимость проработки таких «мелочей», как создание формальной документации, активной системы взаимодействия программистов друг с другом, разработку «пилотной системы» перед окончательной, создание «хирургических групп» и «специализированных утилит». Брукс разъясняет, к чему может привести отсутствие одного из звеньев этой цепочки или некачественная проработка этих звеньев.

Также Брукс даёт практические советы по снижению затрат при разработке системы. Например, считает автор, программистов необходимо нанимать, только когда уже будет построена архитектура системы. Эта стадия может занять несколько месяцев, в течение которых программистам будет нечего делать. Также к значительной экономии может привести покупка части ПО у других разработчиков.

Несмотря на то, что книга была создана десятки лет назад, её популярность остаётся очень высокой за счет того, что автор, используя собственный многолетний опыт, который он получил при создании операционной системы OS/360, написал чёткую, полезную инструкцию по применению накопленных теоретических и практических знаний при создании программных продуктов и систем. Книга раскрывает секреты организации процесса разработки, построения команды и оценки времени, необходимого для разработки. Брукс даёт массу ценных советов, которыми на протяжении уже многих лет с благодарностью пользуются лучшие разработчики мира.

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

Брукс Ф. Мифический человеко-месяц или как создаются программные системы, — М.: Издательство «Символ-Плюс», 2001 г. — 304 с.

2302062-КХ

Метки: , , ,

Комментарии закрыты.