В очень многих книгах предмет программирования рассматривается с точки зрения отдельного программиста. Детальное обсуждение рекурсивных функций, свойств языков и теорем, излагаемых техническим языком, помогает программисту справиться с его текущей задачей.
Но в очень немногих книгах ставится цель осветить проблемы, возникающие у руководителей процессом программирования и ходом работ над проектом, а также у руководителей высшего ранга, — каково общее положение дел, что наиболее важно, каковы тенденции, какие возможны ловушки, какие наиболее важные уроки извлечены за последнее время в мире программирования? В течение семи с половиной лет я имел счастье руководить большим программистским предприятием — отделением фирмы IBM. В моем подчинении было 4400 человек, в большинстве своем профессионалы, в основном создававшие программное обеспечение для больших систем реального времени. Многие уроки достались мне очень тяжело. Мы всегда шли непроторенными путями, одновременно приходилось выполнять работы по сотне и более контрактов.
Моя работа была похожа на тушение пожара в нефтяной скважине или на что-то в этом роде. Не успею я взять под контроль один большой проект, как другой внезапно, без всякого предупреждения взрывается — и горит ярким пламенем все отведенное для этого время, несмотря на все усилия овладеть ситуацией.
Мы работали над крупными проектами: 700 человек в течение 10 лет в Хьюстоне, шт. Техас, создавали систему наземного управления пилотируемыми космическими полетами; 500 человек в течение 10 лет в Атлантик-Сити, шт. Нью-Джерси, в местном отделении FAA, разрабатывали систему управления транспортным воздушным сообщением; 700 человек в течение 5 лет в Уиппани, шт. Нью-Джерси, работали над программной частью системы противоракетной обороны; 500 человек в Лос-Анджелесе в течение 5 лет делали спутниковую систему ВВС США.
Ниже я привожу примеры работ, проведенных под моим руководством за 7,5 лет, с 1969 по 1977 г.:
Люди/Годы |
Место |
Проект |
700/7 |
Хьюстон, шт. Техас |
«Аполлон», «Скайлэб», «Шаттл» |
700/5 |
Уиппани, шт. Нью-Джерси |
Противоракетная система «Сэйфгард» |
500/7 |
Атлантик-Сити, шт. Нью-Джерси |
Управление воздушными транспортными линиями FAA (Federal Aviation Agency — Федеральное авиационное агентство) |
200/2 |
Мыс Кеннеди, шт. Флорида |
Система запуска ракет |
60/3 |
Гейтсбург, шт. Мэриленд |
Японская издательская система |
20/3 |
Нью-Йорк, шт. Нью-Йорк |
Диспетчерская служба полиции города |
5/1 |
Гейтсбург, шт. Мэриленд |
Автоматизация службы сбора информации газеты «Нью-Йорк таймс» |
5/5 |
Лондон, Великобритания |
Общенациональная банковская система |
53/3 |
Гейтсбург, шт. Мэриленд |
Система межиздательских связей США |
200/3 |
Хьюстон, шт. Техас |
Автоматизация нефтеочистительных заводов (Канада, Бельгия) |
15/2 |
Сент-Луис, шт. Миссури |
Автоматизация железнодорожной связи, МОРАС |
Один вывод, который можно сделать из этого списка, состоит в том, что программирование по контракту имеет разбросанный, кочевой характер. Контора моя была в Гейтсбурге, шт. Мэриленд, хотя большая часть работ проводилась по месту расположения заказчиков. И для этого были причины — разработка программного обеспечения проходит достаточно сложно, даже когда разработчики и пользователи находятся в одном месте.
Нашей группе из Гейтсбурга прекрасно удалось автоматизировать выпуск двух японских газет после полосы неудач. В течение всех 7,5 лет я имел удовольствие получать отчеты от Милса, его огромный талант помогал нам неоднократно. X. Милс и Т. Бэйкер создали архивную систему газеты «Нью-Йорк таймс» с поразительной производительностью. По окончании работ у нас получилось, по моему мнению, самое большое в мире запрограммированное собрание статистических данных. Эта система используется уже более 8 лет и стала национальным богатством. В этой книге мы неоднократно будем обращаться к проекту «Нью-Йорк таймс».
Председатель правления фирмы IBM говорил мне, что система управления транспортными авиалиниями никогда не заработает, я же отвечал, что уверен в успехе. Наша система была раскритикована и конгрессом США за то, что в ней повторно тратились усилия на то, что уже было сделано нами в Хьюстоне для посадки человека на Луну.
Оглядываясь назад, я вижу, что короткий промежуток лет вместил много систем, кризисов, ошибок, успехов. Система управления воздушными транспортными линиями не просто работает, Великобритания купила у IBM вычислительное оборудование на сумму 10 млн. долларов, став тем самым двадцать первым участком этой системы. Для работы над этим проектом мы выделили десять человек, которые располагаются в Гейтвиче, Англия. То, что другая страна, к тому же располагающая собственным агентством по управлению воздушными перевозками (и ограниченная беспощадной политикой «покупать только британское»), готова заплатить 10 млн. долларов за «американскую систему», заставило замолчать всех критиков.
Читать дальше