3.4.2 Общие проблемы проектирования
Ниже мы приведем некоторые фрагменты из книги Брукса «Мифический
человеко-месяц или как создаются программные системы» [27].
3.4.2.1 Сложность проектирования и разработчики- одиночки
Что лучше, работать одному или в составе рабочей группы?
В жизни часто встречаются умельцы, заявляющие, что они смогут быстро
сделать продукт за «50 баксов». В принципе, они наверно правы (тем более, что
168
есть положительные примеры таких продуктов), но существует ряд проблем,
хорошо описанных Бруксом в книге «Мифический человеко-месяц»:
• Программа может быть создана одним программистом;
• Для создания комплекса (нескольких взаимосвязанных программ)
понадобится усилий в 3 раза больше;
• Для создания продукта (хорошо отлаженной и задокументированной
программы) понадобится усилий в 3 раза больше.
Итак, получается для создания комплексного программного продукта
понадобится в 9 раз больше усилий. Этот факт нужно учитывать, именно эти
вещи отличают продукт от поделки, сделанной за вечер на коленке. На самом
деле, слово программа можно заменить словом изделие или встроенная
система. Суть от этого не изменится. Уже давно замечено, что идеи,
изложенные Бруксом в его книге, весьма универсальны и применимы в
различных областях.
Да, безусловно, производительность работы рабочей группы может быть
ниже, чем производительность одного разработчика. В чем выигрыш? В
параллелизме, то есть в возможности распарраллеливании работ.
3.4.2.2 Оценка времени проектирования
Почти все программистские проекты страдают скорее из-за нехватки
времени, нежели из-за отсутствия каких-либо других ресурсов. Почему эта
причина бедствий является столь всеобщей?
Во-первых, наши методы оценки весьма несовершенны. Строго говоря,
они отражают некоторое неявно высказываемое и в корне неверное допущение,
что все будет идти хорошо.
Во-вторых; наши методы оценки ошибочно путают усилия с
достижениями, прячась за допущение, что человек и месяц взаимозаменяемы.
В-третьих, отсутствие уверенности в наших оценках ведет к отсутствию у
руководителей
программистских
проектов
вежливого
упрямства,
свойственного шеф-повару ресторана "Аптуан".
В-четвертых, управление ходом разработки плохо организовано. Методы,
давно опробованные и даже рутинные в других технических дисциплинах, в
технологии программирования рассматриваются как радикальные новшества.
В-пятых, когда обнаруживается отставание от графика, естественная (и
традиционная) реакция руководителя - добавить рабочей силы. А это,
аналогично попытке заливать огонь бензином,- только ухудшает дело, причем
значительно. Чем сильнее огонь, тем больше требуется бензина, круг
замыкается, и последствия плачевны.
Все программисты — оптимисты. Исходя из этого, необходимо с
осторожностью относиться к их прогнозам.
169
Стоимость проекта действительно зависит от числа людей и от числа
месяцев, но его успешность - нет. Следовательно, человеко-месяц как единица
измерения объема работы является опасным и вводящим в заблуждение мифом.
Этот миф основывается на предпосылке, что люди и месяцы взаимозаменяемы.
Ни одна часть графика работ не связана так сильно ограничениями на их
последовательность, как отладка компонент и комплексная отладка. Очевидно,
что требуемое время зависит от числа встречаемых ошибок и легкости их
обнаружения. Будучи оптимистами, мы обычно ожидаем, что ошибок будет
меньше, чем это оказывается в действительности. Именно поэтому отладка
чаще всего не укладывается в график.
Do'stlaringiz bilan baham: |