Выбрать главу

Терзающие вас сирены – свойство отрасли, в которой вы работаете. Мы обнаружили семь сирен в области, которую лучше всего знаем. Вот сирены разработки программного обеспечения:

Семь ложных надежд руководителя проекта по разработке программного обеспечения

1. Существует ещё не изученный новый трюк, который поднимет производительность до небес.

Ответ: вы недостаточно глупы, чтобы пропустить нечто столь фундаментальное. Вы постоянно исследуете новые подходы и пробуете те, что кажутся наиболее осмысленными. Ни одна из мер уже принятых и ни одна из тех, что вы ещё можете принять, не позволит поднять производительность до небес. Что они, однако, могут, – так это держать всех в форме: людям нравится думать, учиться и расти. Мысль же о том, что существует волшебное новшество, которое вы пропустили, – это мысль пораженческая, и ею умело пользуются те, кто волшебные новшества продают.

2. Другие руководители умудряются получить прирост производительности в сто, двести и даже более процентов!

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

3. Технологии развиваются с такой скоростью, что невозможно за всем

4. успевать.

Ответ: Да, технологии развиваются быстро, но (вот опять иллюзия высоких технологий) ваши труды по большей части к высоким технологиям не относятся. Машины изменились очень сильно, но бизнес, связанный с разработкой программного обеспечения, всегда был довольно статичен. Мы все так же тратим большую часть времени на требования и спецификации, на низкотехнологичные аспекты нашей работы. Производительность индустрии программного обеспечения растёт на 3-5% в год, что лишь немногим больше, чем показатели в автомобильной или сталелитейной индустрии[19].

5. Смена языка даст гигантские преимущества.

Ответ: Выбор языка имеет значение, потому что он влияет на способ решения проблемы, но опять же, язык оказывает влияние лишь на этапе реализации. Благодаря преувеличениям, некоторые из новых языков попадают в разряд лаетрила. Не исключено, что новое приложение лучше написать, например на PowerBuilder™, а не на COBOL, но даже до появления PowerBuilder существовали способы лучшие, чем COBOL: специализированные инструменты, упрощаюшие запросы и обновления. Если последние несколько десятилетий вы не проспали у голубого телеэкрана, то смена языка не сильно вам поможет. Она может повысить производительность процентов на пять (вряд ли с этим стоит считаться), но не более того.

6. Из-за отставания следует немедленно удвоить производительность.

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

6. Все уже автоматизировано; не пора ли напрочь автоматизировать персонал, разрабатывающий программное обеспечение?

Ответ: Это ещё одна вариация на тему иллюзии высоких технологий – вера в то, что разработчики программ выполняют работу, легко поддающуюся автоматизации. Их основная работа – человеческое взаимодействие, позволяющее преобразовать изложенные пользователями потребности в формальное представление. Кто-то должен делать эту работу независимо от того, какие формы принимает цикл жизни продукта. И вряд ли возможно данную задачу автоматизировать.

7. Люди будут лучше работать, если как следует на них надавить.

Ответ: Нет, не будут. Но будут меньше любить свою работу.

вернуться

19

Данные о (ничтожно малом) приросте производительности в отрасли разработки программного обеспечения взяты из работы Morrissey и Wu, 1980 {41}.