Проектирование программного обеспечения. Николаев С.В. - 132 стр.

UptoLike

Составители: 

132
пологий почти горизонтальный участок. Наконец, увеличение числа испол-
нителей сверх некоторого критического значения P
2
начинает давать отрица-
тельный эффект, задание превращается в сверхнераспределяемое. При этом
добавление числа исполнителей только ухудшает ситуацию и приводит к
увеличению сроков завершения задания из-за превышения трудозатрат V над
трудоемкостью C в связи со значительной долей "паразитной" работы. Этот
эффект хорошо виден в такой ситуации: представим себе, что для
ускорения
земляных работ яму размером 1x1 м поручили копать 10-ти землекопам. Что
при этом будет не трудно представить.. В данном случае паразитной работой
будут усилия землекопов, направленные на выяснение того, кому копать, кто
является лишним и т.п. Понятно, что в исходной оценке трудоемкости копа-
ния этой ямы такого рода "деятельность" учтена
не была, она является непо-
средственным следствием из0быточного числа исполнителей.
Различные задания различаются своими критическими значениями P
1
, P
2
,
а также крутизной боковых ветвей кривой T = f(P). Чем сложнее задание, тем
менее явно выражен провал на центральной части кривой и тем раньше и
круче пойдет подъем на последнем участке.
Именно тот факт, что ввиду большой связности проектирование про-
граммных систем имеет явную тенденцию становиться сверхнераспределяе-
мым, лежит в
основе одного из известных законов Брукса [8]: "Если про-
граммистский проект не укладывается в сроки, до добавление рабочей силы
только задержит его окончание".
Из этого рассмотрения можно сделать вывод: количество исполнителей,
работающих над одним проектом, не должно превышать числа независимых
частей, на которые данное задание можно разбить, не нарушая его целостно-
сти
. Однако, что же делать, когда разработка имеет большую трудоемкость и
одновременно требуется ее завершить достаточно быстро. Налицо тупиковая
ситуация и, как всегда в подобных случаях, выход нужно искать в качествен-
но другой структурной организации самого процесса проектирования.
В качестве одного из возможных способов организации проектирования,
позволяющего радикально увеличить фактическую производительность
тру-
да разработчиков, можно рассмотреть метод "хирургической бригады", пред-
ложенный в свое время одним из ведущих специалистов фирмы IBM Х. Мил-
лзом [8].
Ключевая идея, лежащая в основе организации коллектива разработчиков
по методу хирургической бригады (и во всех других подобных подходах),
состоит в том, что основную работу фактически выполняет один человек, а
остальные
ему помогают (ассистируют) таким образом, что его производи-
тельность растет гораздо быстрее, чем объем накладных работ. Примерная
структура такой бригады показана на Рис. 3.2929.