Фредерик П. Брукс
Вид материала | Документы |
Предисловие к первому изданию Глава 1. Смоляная яма |
- Французский писатель, журналист и критик Фредерик Бегбедер, 1495.8kb.
- Фредерик Коплстон История философии. XX век Номер страницы указан в конце страницы, 2537.19kb.
- Gold Circle Films представляют фильм компании Integrated Films. О фильме история США, 1307.29kb.
- Брукс Кубик "Тренинг Динозавров. Забытые секреты силы и развития тела", 3174.72kb.
- 2. Во всем мире родоначальником научных основ организации производства признан: ◙ Фредерик, 992.99kb.
- Фредерик Бегбедер, 2049.29kb.
- Фредерик Бегбедер. 99 франков, 2045.96kb.
- Фредерик К. Хэтфилд всестороннее руководство по развитию силы , 4595.97kb.
- Фредерик Бегбедер. 99 Франков, 2399.26kb.
- Практикум по гештальттерапии петербург, 5899.47kb.
Предисловие к первому изданию
Во многих отношениях управление большим проектом разработкипрограммного обеспечения аналогично любому другому крупному начинанию - вбольшей мере, чем обычно считают программисты. Однако во многих отношенияхимеет отличия - в большей мере, чем обычно предполагают профессиональныеменеджеры. Идет процесс накопления профессиональных знаний в этой области.Состоялось несколько конференций, заседаний на конференциях AFIPS,опубликовано несколько книг и статей. Но знания еще не оформились в томвиде, когда их можно систематически изложить в учебнике. Тем не менее,представляется уместным предложить эту небольшую по объему книгу,отражающую, в основном, мои личные взгляды.
Мое профессиональное становление в вычислительной технике первоначальнобыло связано с программированием, однако в период 1956-1963 годов, когдаразрабатывались автономные управляющие программы и языки высокого уровня, язанимался, в основном, архитектурой компьютеров. Когда в 1964 году я сталменеджером проекта разработки Operating System/360, то обнаружил, что мирпрограммирования совершенно изменился благодаря успехам, достигнутым занесколько последних лет.
Руководство разработкой OS/360 было очень поучительным, хотя и полнымрасстройств. Команде разработчиков, в том числе сменившему меня Ф. М.Трапнеллу (F. M. Trapnell), можно многим гордиться. Система содержит многоотличных решений в конструкции и функционировании, и ей удалось получитьширокое распространение. Некоторые идеи, в первую очередь, организацияввода/вывода, независимая от устройств, и управление внешними библиотекамистали техническими новинками, ныне широко используемыми. Сейчас эта системавполне надежна, достаточно производительна и весьма гибка.
Однако проект нельзя назвать вполне успешным. Всякому пользователюOS/360 быстро становится ясно, насколько лучше могла бы быть система. Ошибкипроектирования и реализации особенно заметны в управляющей программе, а не вкомпиляторах языков. Большая часть этих просчетов относится к периоду1964-65 годов и потому должна быть отнесена на мой счет. Более того, системавышла с задержкой, потребовала больше памяти, чем предполагалось, стоимостьразработки в несколько раз превысила запланированную, и первые нескольковерсий функционировали не слишком удачно.
Покинув в 1965 году IBM и придя в Чэпел Хилл, как это и предполагалось,я возглавил разработку OS/360 и стал анализировать опыт этой разработки,чтобы извлечь уроки технологических решений и администрирования. Вчастности, я хотел понять, почему столь различным оказался опытадминистрирования при разработке аппаратной части System/360, с однойстороны, и создании операционной системы OS/360 - с другой. Эта книгаявляется запоздалым ответом на вопросы Тома Уотсона относительно трудностиуправления разработкой программ.
В решении этой задачи я получил большую пользу от длительного общения сР. П. Кейсом (R. P. Case), помощником менеджера проекта в 1964-65 годах, иФ. М. Трапнеллом, менеджером проекта в 1965-68 годах. Я обсудил свои выводыс менеджерами других крупных программных проектов, в том числе Ф. Дж.Корбато (F. J. Corbato) из МТИ, Джоном Харром (John Harr) и В. Высоцким (V.Vyssotsky) из Bell Telephone Laboratories, Чарльзом Портманом (CharlesPortman) из International Computers Limited, А. П. Ершовым изВычислительного центра Сибирского отделения Академии наук СССР, а также А.М. Пьетрасанта (A. M. Pietrasanta) из IBM.
Собственные мои выводы содержатся в следующих ниже очерках, предназначенных профессиональным программистам, профессиональным менеджерами особенно профессиональным менеджерам в программировании.
Хотя книга написана как отдельные очерки, у нее есть центральная тема,излагаемая в главах 2-7. Вкратце мое мнение заключается в том, чтотрудности, испытываемые при управлении крупными программными проектами,иного рода, нежели при управлении небольшими проектами, что связано спроблемами разделения труда. Я считаю важнейшей задачей сохранениеконцептуальной целостности самого продукта. В этих главах обсуждаютсятрудности, возникающие на пути к этому единству, и способы их преодоления. В главах, следующих за ними, обсуждаются другие аспекты управления разработкой программного обеспечения.
Имеющаяся по этой теме литература не слишком богата, но весьмараспылена. Поэтому я постарался включить ссылки на литературу, которыепомогут осветить отдельные вопросы и отошлют заинтересованного читателя кдругим полезным работам. Рукопись книги прочли многие мои друзья, инекоторые из них сделали пространные и полезные замечания. В тех случаях,когда, несмотря на ценность, они не вполне вписывались в текст, я включал ихв примечания.
Поскольку эта книга представляет собой сборник очерков, а не единыйтекст, все ссылки и примечания вынесены в конец, и читателю при первомчтении можно их пропустить.
Я глубоко признателен мисс Саре Элизабет Мур (Sara Elizabeth Moore),мистеру Дэвиду Вагнеру (David Wagner) и миссис Ребекке Беррис (RebeccaBurris) за помощь в подготовке данной рукописи, а также профессору ДжозефуСлоуну (Joseph C. Sloane) за советы в отношении иллюстраций.
F. P. B., Jr.
Чэпел Хилл, Северная Каролина
Октябрь 1974
Глава 1. Смоляная яма
Een Schip op bet strand is een baken in zee.
[Корабль на мели - моряку маяк.]
ГОЛЛАНДСКАЯ ПОСЛОВИЦА
Самая яркая сцена доисторических времен - борьба огромных животных со смертью в смоляных ямах. Воображение представляет динозавров, мамонтов и саблезубых тигров, пытающихся высвободиться из смолы. Чем отчаянней борьба, тем сильнее затягивает смола, и как бы ни был силен или ловок зверь, в конечном итоге ему уготована гибель.
Такой смоляной ямой в последнее десятилетие было программирование больших систем: в ней сгинул не один большой и сильный зверь. По большей части это происходило в области систем, где мало кому удалось реализовать спецификации, уложиться в график и бюджет. Большие и малые, массивные и жилистые - одна за другой эти команды увязли в смоле. Казалось, ничто в отдельности не вызывает трудностей - одну лапу всегда можно вытащить. Но накопление действующих одновременно и взаимовлияющих факторов все более и более замедляет движение. Вызывает удивление неприятность возникшей проблемы, и распознать ее сущность нелегко. Но нужно это сделать, если мы собираемся решить ее.
Поэтому начнем с определения того, что такое системное программирование, и какие радости и печали оно таит.