Фредерик П. Брукс

Вид материалаДокументы
Как можно осуществить это сегодня?
Организация крупного программного проекта
Одно и то же лицо может быть продюсером и техническим директором.
Директор может быть начальником, а продюсер - его правой рукой.
Подобный материал:
1   ...   12   13   14   15   16   17   18   19   ...   48

Как можно осуществить это сегодня?


Сегодняшние системные технологии, ядумаю, делают предпочтительнее ведение рабочей тетради в файле прямогодоступа с полосками, помечающими измененные части, и датами внесенияизменений. Любой пользователь может обратиться к журналу с дисплейноготерминала. Сводка изменений, готовящаяся ежедневно, должна храниться в видестека (LIFO) с установленной точкой доступа. Программист может ежедневно еечитать, но если он пропустил один день, ему придется дольше читать наследующий день. Прочтя об изменениях, он может прерваться и прочесть самизмененный текст.

Обратите внимание, что сама рабочая тетрадь остается неизменной. Онапо- прежнему остается собранием всей проектной документации, тщательноорганизованной. Единственное изменение - механизм распределения доступа. Д.С. Энглебарт с коллегами создали такую систему в Стэнфордскомисследовательском институте и используют ее для ведения документации по сетиARPA.

Д. Л. Пранас и Университета Карнеги-Мелона предложил еще болеерадикальное решение.1 Он полагает, что производительность программиста вышевсего, когда он огражден от подробностей конструкции тех частей системы, надкоторыми он не работает. Это предполагает, что все интерфейсы полностью иточно заданы. Такой проект определенно хорош, но если полагаться на егоидеальное осуществление, это приведет к катастрофе. Хорошая информационнаясистема не только должна выявлять ошибки в интерфейсах, но и способствоватьих исправлению.

Организация крупного программного проекта


Если над проектом работает n человек, то существует (n2-n)/2интерфейсов, через которые может происходить обмен данными, и потенциальносуществует почти 2n групп, внутри которых должно происходить согласование.Цель организации работы состоит в сокращении необходимого объема обменаинформацией и согласования. Поэтому создание правильной организационнойструктуры является решающим направлением решения проблем информационногообмена, рассматривавшихся выше.

Способы, которыми сокращается обмен информацией, - разделение труда испециализация функций. Древовидная организационная структура отражаетуменьшение потребности в подробном обмене информацией при использованииразделения труда и специализации.

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

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

1 - задание,

2 - продюсер,

3 - технический директор или архитектор,

4 - график работ,

5 - разделение труда,

6 - определение интерфейсов между разными частями.

Все перечисленное очевидно и обычно, исключая различие между продюсероми техническим директором. Сначала рассмотрим сами эти две функции, а затемих взаимоотношения.

В чем назначение продюсера? Он собирает бригаду, распределяет работу иустанавливает график ее выполнения. Он занимается приобретением необходимыхресурсов. Это означает, что большая часть его функций состоит в общении,которое направлено вне бригады, - вверх и в стороны. Он устанавливает схемусвязи и предоставления отчетности внутри бригады. Наконец, он обеспечиваетвыполнение графика, осуществляя маневр ресурсами и меняя организацию всоответствии с новыми обстоятельствами.

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

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

Возможны три типа отношений, и все они с успехом встречаются напрактике.

Одно и то же лицо может быть продюсером и техническим директором. Этовполне оправдано в маленьких командах, насчитывающих от трех до шестипрограммистов. В более крупных проектах это очень редко осуществимо по двумпричинам. Во-первых, редко встречаются люди, сочетающие в себе большиеадминистративные и технические способности. Мыслители встречаются редко,практики еще реже, но реже всего - мыслители-практики. Во-вторых, в большихпроектах выполнение каждой из функций требует полного рабочего дня или дажебольше. Продюсеру трудно передать кому-либо достаточную часть своихобязанностей, чтобы высвободить время для технической работы. Директору невозможно передать свои обязанности, не нанося ущерба концептуальной целостности проекта. Продюсер может быть начальником, а директор - егоправой рукой. Сложность здесь состоит в том, чтобы определить полномочия директора при принятии технических решений, с тем чтобы он не тратил свое время, участвуя в административной цепочке.

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

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

Это может действовать очень успешно. К несчастью, к этому редкоприбегают. Что хуже всего получается у менеджеров проектов, - так этоиспользование технического гения людей, не очень сильных вадминистрировании.

Директор может быть начальником, а продюсер - его правой рукой. РобертХайнлайн ярко описывает такую организацию в "Человеке, продавшем Луну".

Костер закрыл лицо руками, затем взглянул вверх:

- Я разбираюсь в этом. Я знаю, что нужно делать, но всякий раз, когда япытаюсь заняться технической проблемой, какой-нибудь болван хочет, чтобы япринял решение по поводу грузовиков, или телефонов, или еще какой-нибудьерунды. Простите, мистер Гарриман. Мне казалось, я справлюсь со всем этим.

Гарриман очень мягко сказал:

- Не отчаивайся, Боб. Ты ведь недосыпал последнее время, правда? Вотчто я скажу: мы перехитрим Фергюсона. Я возьму твой стол на несколько дней ипострою организацию, которая оградит тебя от таких вещей. Я хочу, чтобы твоимозги были заняты векторами реакции, эффективностью топлива и сложностямипроекта, а не контрактами по грузовикам. - Гарриман подошел к двери,выглянул наружу и заметил человека, который был, возможно, старшим клерком.- Эй, вы! Подойдите сюда!

Человек показался озадаченным, встал и, подойдя к двери, спросил:

Да?

- Я хочу, чтобы этот стол в углу и все, что на нем, были перенесены впустую комнату на этом этаже, и немедленно.

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

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

Часа через три он позвал Баркли, чтобы познакомить его с Костером.Главный инженер спал, сидя за столом, положив голову на руки. Гарриман хотелвыйти, но Костер проснулся.

Прошу прощения, - сказал он, краснея, - я, наверное, задремал.

- Для этого я притащил тебе диван, - сказал Гарриман, - на нем удобнее.Боб, познакомься с Джоком Беркли. Это твой новый раб. Ты остаешься главныминженером и неоспоримым начальником. Джок будет Главным лордом ВсеОстальное. С этого момента тебе абсолютно не о чем беспокоиться - исключаятакую мелочь, как лунный корабль.

Они пожали руки.

- Хочу просить об одной вещи, мистер Костер, - сказал Беркли ссерьезностью, - передавайте мне все, что сочтете необходимым - ваша сторонатехническая, - но Бога ради, записывайте все, чтобы я был в курсе. Я хочу,чтобы вам на стол поставили выключатель, который будет управлять опечатанныммагнитофоном на моем столе.

Отлично! - Гарриману показалось, что Костер помолодел.

- И если вам понадобится что-либо, не относящееся к технике, незанимайтесь этим сами. Нажмите выключатель и свистните. Все будет сделано. -Беркли взглянул на Гарримана. - Хозяин говорит, что собирается поговорить свами о настоящей работе. Я вас покину и займусь делами. - Он вышел. Гарримансел. Костер последовал его примеру и сказал:

Уф!

Так лучше?

Мне понравился этот Беркли.

- Это хорошо. Теперь это твой двойник. Не беспокойся: он работал у меняраньше. Ты почувствуешь себя, как в хорошей больнице.2

Этот текст едва ли нуждается в аналитических комментариях. Такаяорганизация тоже может эффективно действовать.

Мне кажется, что последний тип организации лучше подходит для небольшихкоманд, описанных в главе 3 "Операционная бригада". Полагаю, что продюсер вкачестве начальника более подходит для больших поддеревьев действительнокрупных проектов.

Вавилонская башня была, возможно, первым инженерным фиаско, но непоследним. Решающее значение для успеха имеют схема связи и вытекающая изнее организация. Технологии обмена информацией и создания организационныхструктур требуют от менеджера большой работы мысли и такой же подкрепленнойопытом компетентности, как и сама технология программного обеспечения.