Изменить стиль страницы

Дух Сирила Норткота Паркинсона[21] (Cyril Northcote Parkinson) является божком этого заговора. Их самый священный рабочий принцип — никакие ресурсы не должны остаться неиспользованными. На каждый выезд с автомагистрали должна найтись своя эстакада. Каждый неясный вызов API должен найти свое применение, а действительно хорошая программа использует все вызовы. Если архивированная система не поставляется на десяти гибких дисках и более или, еще лучше, на CD, то она вряд ли может стоить тех денег, за которые вы ее купили. В инсталлированном состоянии программа должна занимать не менее 25 мегабайт. В процессе инсталляции должно быть создано множество каталогов. По крайней мере, некоторые из них должны быть подкаталогами в каталоге \WINDOWS, в который будут скинуты различные файлы с непонятными именами вместе с собственными. INI файлами нового продукта. И, естественно, инсталляцию вряд ли можно считать надежной, если основательно не переделать содержание WIN.INI, CONFIG.SYS, AUTOEXEC.BAT и даже SYSTEM.INI. Иначе какой-нибудь несчастный пользователь сможет деинсталлировать эту программу, просто удалив несколько файлов или каталогов.

«Заговор Упрямцев» имеет корни в области гражданского проектирования и городских подрядов, где суть игры заключается в том, чтобы применить как можно больше кирпича и строительного раствора, потому что дядюшка Берт владеет кирпичной фабрикой, а племянник Финис имеет цементный завод. Что касается программирования, то и здесь кому-то приходится искать способ, как использовать все эти мегабайты оперативной памяти и гигабайты дискового пространства. Мы терпеть не можем, когда мощности Pentium остаются незадействованными.

В любом случае конечные пользователи могут испытывать неудобства от слишком больших компьютерных мощностей. Их ослепляет ослепительная скорость. Ведь на самом деле пользователи хотят видеть события: сверкающие изображения, прыгающие значки, мигающие вспышки. Образ действия более важен, чем его выполнение. Именно здесь «Заговор Упрямцев» как раз и старается «уважить» закон Паркинсона с помощью поиска изощренных и излишне сложных решений. Проектные команды специально организуются таким образом, чтобы их участники работали с противоположными целями, так как это обеспечивает увеличение количества элементов в системе и их внутреннюю несовместимость, приводя к высокой степени бесполезной сложности.

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

Какого черта

Вы просите доказательств — вы их получите. Мой коллега по офису и я проверяли Персональные Информационные Менеджеры (Personal Information Managers), функционирующие в среде Windows. Один из них был снабжен вычурным имитатором времени DayTimer™ и очень расточительно использовал свободное пространство экрана. Он был просто чертовски умным, настолько, что было ясно: только «Заговор Упрямцев» мог создать такое.

Все становится понятно уже по одной операции удаления: для удаления чего-либо из блокнота вам нужно перенести этот элемент к иконке с изображением проволочной (да-да, именно проволочной!) мусорной корзины. После чего корзина воспламеняется! Пиктографическое жертвоприношение! На создание модуля этой корзины были затрачены немалые программистские ресурсы. Но она такая замечательная! Она обязательно произведет впечатление на начальников, агентов по материально-техническому снабжению и других людей с умственными недостатками. Однако мало кто заметил, что на машине с быстрым 486 процессором, ускоренной видеокартой и большим монитором эти языки пламени очень напоминали шоу Лоренса Уэлка (Lawrence Welk[22])! Что еще здесь нужно говорить?

Методы разработки, которые применяет «Заговор», отражают его цели и служат им. Лучшие профессионалы объявляют о создании продукта, потом придумывают к нему упаковку и затем начинают кодировать. Составление схем разработки — это довольно трудное дело. Намного проще их составлять на основе уже существующего кода, поэтому упрямые команды, разрабатывающие программное обеспечение, действуют так. Они начинают с кодирования модулей низкого уровня, например драйверов экрана или пылающих корзин, а на их основе строят все остальное и составляют схему разработки в целом. При проведении бета-тестирования могут быть написаны и системные требования — в качестве предисловия к руководству пользователя.

Будьте внимательны, поскольку «Заговор упрямцев» может маскироваться под обычные научно-исследовательские группы или проектные команды, однако на тайных совещаниях, проводимых вечером после десяти, они замышляют противоестественные сценарии разработки. Вы когда-нибудь задумывались о том, почему некоторые из ваших приятелей допоздна задерживаются на работе? Очень может быть, что они оказались втянуты в тайные церемонии, проводимые 1 апреля 1993 года[23] в ознаменование 666-й годовщины создания «Заговора упрямцев».

Из журнала Software Development, том 1, № 4, апрель 1993 г.

IV

Инструменты, модели и методы

18

CASE и познание

Автоматизированное проектирование и создание программ (CASE, Computer-Aided Software Engineering) больше не является актуальной темой в области разработки программного обеспечения и приложений. Даже производители CASE-инструментов стараются переименовывать свои продукты, называя их «средами комплексной разработки» или просто «наборами инструментов». Как бы они ни назывались, средства разработки, которые мы применяем (успешно или неуспешно), в значительной степени связаны с тем, к чему мы стремимся как разработчики.

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

Неудивительно, что зачастую можно услышать что-нибудь этакое: «У нас нет времени на использование CASE-инструментов, нас поджимают сроки». Это могут произносить те программисты (теперь уже полысевшие или поседевшие), которые когда-то возражали против языков высокого уровня. Наверное, они никогда не составляют блок-схем или схем потоков данных и настаивают на том, что в отличие от нас, простых смертных, они могут все удерживать в своей голове. С другой стороны, многие критики CASE-инструментов действительно пытаются применять определенные методы разумного проектирования и разработки. К сожале-нию, многие CASE-инструменты вместо того, чтобы способствовать процессу методичного решения задач и творческого проектирования, на самом деле препятствуют ему.

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

вернуться

21

Сирил Норткот Паркинсон (1909–1993) — английский писатель, публицист и историк, прославившийся сборником трактатов под заглавием «Закон Паркинсона»

вернуться

22

Lawrence Welk (1903–1992) — создатель и ведущий музыкальных программ на американском телевидении (Lawrence Welk Show).

вернуться

23

Из писем, пришедших по электронной почте, стало ясно, что не все читатели этой заметки поняли, что в день выхода заметки из печати отмечался День дураков.