, , web design, , , , web , , , , , web site development, , , , -, web-

Статьи: веб дизайн и разработка сайтов / Менеджмент веб проектов, управление программистами / Фредерик П.Брукс. Мифический человеко-месяц или как создаются программные системы
 

Посвящения

Посвящение издания 1975 года
     Посвящается  двоим людям,  благодаря  которым  мои годы  в  IBM  были особенно насыщенными: Томасу  Дж.  Уотсону Младшему, чье глубокое внимание к людям  по-прежнему  ощущается в  его фирме,  и Бобу  О.  Эвансу, чье  смелое руководство превратило работу в приключение.
     Посвящение издания 1995 года
     Посвящается Нэнси, Божьему дару для меня.
     Предисловие к изданию 1995 года
     К моему  удивлению и удовольствию, "Мифический человеко-месяц" остается популярным  через 20 лет после выхода.  Тираж превысил 250 000  экземпляров. Меня часто  спрашивают, какие  из оценок  и  рекомендаций, изложенных в 1975 году, я по- прежнему считаю верными, а какие претерпели изменения, и  в  чем именно. Несмотря  на то,  что  в моих  лекциях  этот вопрос время от времени затрагивается, я давно жду возможности изложить его в печатном виде.
     Питер   Гордон   (Peter   Gordon),   являющийся   сейчас   совладельцем издательства Addison-Wesley,  терпеливо и с  пользой сотрудничает со мной  с 1980  года.  Он  предложил  подготовить  юбилейное  издание.  Мы  решили  не исправлять оригинал, а перепечатать его в неприкосновенности, за исключением обычных опечаток, и дополнить мыслями, возникшими в более позднее время.
     В  главе 16 перепечатывается статья "Серебряной  пули нет:  сущность  и акциденция в  программной  инженерии", опубликованная  IFIPS  (Международная федерация  обществ  по   обработке  информации)  в  1986  году  и  явившаяся результатом  опыта,  полученного  мною во  время  руководства  исследованием
использования  программного обеспечения  в  военных областях, проводившегося Военным комитетом по  науке. Мои соавторы по этому исследованию, а также наш исполнительный секретарь Роберт Л. Патрик, оказали мне неоценимое содействие в моем  возвращении к крупным практическим программным проектам. Статья была перепечатана  в  издании  IEEE  "Computer"  в 1987 году, благодаря  которому
получила широкую известность.
     Статья "Серебряной пули нет" была  дерзкой. В  ней предрекалось, что  в течение   ближайшего  десятилетия  не  возникнет  методов  программирования, использование    которых    позволит    на    порядок    величин    повысить производительность разработки  программного обеспечения  при  прочих  равных условиях.  До   конца   этого  десятилетия  остался  год,  и,   похоже,  мое предсказание  сбылось. Статья  вызвала более  оживленную дискуссию в печати, чем "Мифический  человеко-месяц", поэтому  в главе  17 содержатся  ответы на некоторые  из  опубликованных  критических  замечаний,  а  также  уточняются взгляды, изложенные в 1986 году.
     При  подготовке ретроспективного  анализа и уточнения книги "Мифический человеко-месяц"  я был удивлен  тем, как мало содержавшихся в ней  заявлений подверглось  критике  -  как  из  числа  доказанных,   так  и  опровергнутых последующим  опытом  и  исследованиями  в  области  разработки  программного обеспечения.  Мне  показалось  полезным  систематизировать эти  заявления  в
чистом виде, без  сопутствующих доказательств и  данных.  Я включил  в книгу этот очерк в качестве главы  18, надеясь, что эти чистые утверждения вызовут поиск  аргументов и фактов для доказательства,  опровержения, пересмотра или уточнения.
     Глава  19   собственно   и  представляет   собой  попытку  пересмотреть изначальные утверждения. Следует предупредить читателя, что излагаемые новые взгляды  далеко  не в той мере  подкреплены "боевым опытом", как  это было в первой  части  книги.  Дело  в  том, что  в  последнее  время  я  работал  в университетской среде,  а  не  в  промышленности, и  над  небольшими,  а  не крупномасштабными    проектами.   С   1986    года   я   занимаюсь    только преподавательской   деятельностью   в   области    разработки   программного обеспечения, но не исследованиями в ней. Моя исследовательская работа больше касается виртуальных сред и их применений.
     При  подготовке  данной ретроспективы  я  поинтересовался  современными взглядами   своих   друзей,   которые  практически   занимаются  разработкой программного обеспечения.  В число тех, перед  кем я в долгу  за  готовность поделиться  своими  взглядами, сделать полезные замечания к  первоначальному тексту и усовершенствовать  мое образование, входят Барри Бем (Barry Boehm),
Кен  Брукс  (Ken  Brooks),  Дик Кейс  (Dick  Case),  Джеймс  Коггинс  (James Coggins),  Том Демарко (Tom  DeMarco),  Джим  Маккарти (Jim McCarthy), Дэвид Парнас  (David Parnas),  Эрл  Уилер (Earl Wheeler) и  Эдвард Йордон  (Edward Yordon).  Фэй  Уард  (Fay  Ward)  прекрасно  выполнила  техническую  работу,
связанную с изданием новых глав.
     Я благодарен  моим  коллегам из Группы по  программному обеспечению для военных целей Военного комитета по науке  Гордону Беллу (Gordon Bell), Брюсу Бьюкенену (Bruce  Buchanan),  Рику  Хейз-Роту (Rick  Hayes-Roth)  и особенно Дэвиду  Парнасу - за их плодотворные идеи, а Ребеке Бирли (Rebekah Bierly) -
за  подготовку  к  печати  статьи, опубликованной  в данной книге в качестве главы 16. Анализ проблем программирования в  категориях "сущность" (essence) и   "акциденция"   (accident)   возникло  благодаря  Нэнси   Гринвуд  Брукс, использовавшей  такой анализ в  статье  об обучении игре  на скрипке методом
Сузуки.
     Обычаи издательства Addison-Wesley  не позволили мне  в  предисловии  к изданию 1975 года выразить  благодарность его сотрудникам  за сыгранную  ими важную роль. Следует особенно отметить вклад двух  человек: Нормана Стентона (Norman  Stenton), являвшегося  ответственным редактором,  и Герберта  Боуза (Herbert  Boes),  бывшего художественным  редактором.  Боуз  создал  изящный
стиль,  особо  отмеченный  одним  из рецензентов: "широкие поля и творческое использование шрифтов и компоновки материала". Что еще важнее, он дал важный совет поместить в начале каждой главы свою картинку. (В то время у меня были только картинки Смоляных ям  и Реймского  собора.) Чтобы найти все картинки, мне потребовался целый год, но я бесконечно благодарен за совет.
     Soli  Deo  gloria - Богу  единому  слава! F. P.  B.,  Jr.  Чапел  Хилл, Северная Каролина
     Март 1995

     Предисловие к первому изданию
     Во   многих  отношениях   управление  большим  проектом   разработки программного обеспечения  аналогично любому  другому  крупному начинанию - в большей  мере, чем обычно считают программисты. Однако во  многих отношениях имеет отличия -  в  большей  мере,  чем обычно предполагают профессиональные менеджеры. Идет процесс  накопления профессиональных знаний в  этой области. Состоялось   несколько  конференций,  заседаний   на   конференциях   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,  Чарльзом  Портманом  (Charles Portman)   из   International  Computers   Limited,   А.   П.   Ершовым   из Вычислительного  центра Сибирского отделения Академии наук СССР, а  также А.
М. Пьетрасанта (A. M. Pietrasanta) из IBM.
     Собственные  мои   выводы   содержатся   в   следующих  ниже   очерках, предназначенных профессиональным программистам, профессиональным  менеджерам и особенно профессиональным менеджерам в программировании.
     Хотя книга написана как  отдельные очерки, у нее есть центральная тема, излагаемая  в  главах  2-7.  Вкратце  мое  мнение  заключается  в  том,  что трудности,  испытываемые  при управлении  крупными  программными  проектами, иного  рода,  нежели  при управлении  небольшими  проектами, что  связано  с
проблемами  разделения   труда.  Я  считаю  важнейшей   задачей   сохранение концептуальной  целостности  самого  продукта.  В  этих  главах  обсуждаются трудности, возникающие на пути к этому единству, и способы их преодоления. В главах, следующих за ними, обсуждаются другие аспекты управления разработкой программного обеспечения.
     Имеющаяся  по  этой  теме  литература  не  слишком  богата,  но  весьма распылена.  Поэтому  я постарался  включить  ссылки на  литературу,  которые помогут  осветить  отдельные вопросы и  отошлют заинтересованного читателя к другим  полезным  работам.  Рукопись  книги  прочли  многие  мои  друзья,  и некоторые из  них сделали  пространные и полезные замечания.  В тех случаях, когда, несмотря на ценность, они не вполне вписывались в текст, я включал их в примечания.
     Поскольку эта книга представляет  собой сборник  очерков, а  не  единый текст,  все ссылки  и  примечания вынесены в конец,  и  читателю  при первом чтении можно их пропустить.
     Я глубоко  признателен мисс Саре Элизабет Мур (Sara  Elizabeth  Moore), мистеру  Дэвиду  Вагнеру (David Wagner) и  миссис  Ребекке  Беррис  (Rebecca Burris) за  помощь в подготовке данной рукописи, а  также профессору Джозефу Слоуну (Joseph C. Sloane) за советы в отношении иллюстраций.
     F. P. B., Jr.
     Чэпел Хилл, Северная Каролина
     Октябрь 1974



Посвящения