Книга: Человеческий фактор в программировании
Назад: 16 Все сразу
Дальше: IV Инструменты, модели и методы

17
Заговор упрямцев

Новая Англия известна своими зимами и дорогами. В каждом регионе есть свои традиции разметки улиц и дорог. Например, дорожные знаки в Новой Англии обычно устанавливаются только на перекрестках, а не на главных улицах. По мнению самих янки, каждый должен и так знать, где находится Мэйн-стрит или Массачусетс-авеню. Какой смысл их обозначать? Знак на дороге, связывающей два штата, может предупреждать вас о том, что через одну милю будет поворот на Мидлборо, но на самом повороте будет знак с надписью: «Выезд на Шервуд и Бинвайл». Далее внизу, на выезде с магистрали, вам будет предложен выбор: либо повернуть налево в Мертон, либо направо в Честер! Пожалуй, если вы не знаете, куда поворачивать, вам и не нужно туда ехать. Уверен, что такой логике следуют и некоторые разработчики программного обеспечения. Они используют один термин в документации, другой в онлайновой помощи и непонятную иконку на панели. Ориентироваться в сделанных ими меню или диалоговых окнах — это все равно что ехать из Вест Роксбери в Фри-порт через Провиденс. Как говорят в штате Мэн: «Попасть отсюда туда вы не можете».
Некоторые из наших автомагистральных развязок — просто произведения искусства. Интенсивность движения на дорогах не такая, как, например, в Лос-Анджелесе, но это компенсируется самыми запутанными авторазвязками в мире. Эти асфальтовые крендельки способны привести к «пробкам» даже при движении небольшого количества транспорта. Стоит только появиться нескольким машинам с номерами других штатов или застрять какому-нибудь грузовику в будний день где-то после трех, как весь город превращается в сплошную автостоянку.
Как я убедился, самые ошеломляющие из запутанных развязок в Большом Бостоне были спроектированы подрядчиками с узкой специализацией. Такие монументы творческой комплексификации требуют особого инженерного таланта и склонности к упрямству. Например, автомобилю, направляющемуся на запад и съезжающему с платной дороги, для выезда на северную дорогу нужно сделать поворот налево, проехать под эстакадой с движением на восток, затем выехать на кольцо, проехать три четверти круга, держась правой стороны, остановиться для оплаты, потом опять проехать под восточной и западной дорогами, потом над дорогой с уличным движением, потом выехать на северный подъем, переходящий в другой подъем на протяжении одной мили, и затем, наконец, слева влиться в общий поток. Понятно? Не напоминает ли вам это какую-нибудь любимую программу для Windows?
Самое лучшее из Массачусетских дорожных чудовищ никогда не могло быть спроектировано командой в привычном понимании этого слова. Команды традиционного типа неспособны на такие высоты многоуровневой маниакальности. Нет, для построения таких конструкций требуется особая модель организации, которая обязательно должна встречаться и в области разработки программного обеспечения. Вероятно, они были спроектированы и построены группой инженеров, организованной на основе совершенно иной парадигмы, а именно «Заговор Упрямцев!».
«Заговор Упрямцев» — это международное тайное сообщество инженеров, технических специалистов и руководителей из различных отраслей. Их тайной эмблемой является гордиев узел. Их цель — окончательная комп-лексификация всего на свете. Их кредо: «Или по-другому, или никак». Важно не то, чтобы система была удобной или хотя бы приемлемой, а только то, чтобы она была другой, чтобы в ней было побольше «безделушек». Выглядите и чувствуйте себяilber alles.
Пользуйтесь или выбросьте
Дух Сирила Норткота Паркинсона (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)! Что еще здесь нужно говорить?
Методы разработки, которые применяет «Заговор», отражают его цели и служат им. Лучшие профессионалы объявляют о создании продукта, потом придумывают к нему упаковку и затем начинают кодировать. Составление схем разработки — это довольно трудное дело. Намного проще их составлять на основе уже существующего кода, поэтому упрямые команды, разрабатывающие программное обеспечение, действуют так. Они начинают с кодирования модулей низкого уровня, например драйверов экрана или пылающих корзин, а на их основе строят все остальное и составляют схему разработки в целом. При проведении бета-тестирования могут быть написаны и системные требования — в качестве предисловия к руководству пользователя.
Будьте внимательны, поскольку «Заговор упрямцев» может маскироваться под обычные научно-исследовательские группы или проектные команды, однако на тайных совещаниях, проводимых вечером после десяти, они замышляют противоестественные сценарии разработки. Вы когда-нибудь задумывались о том, почему некоторые из ваших приятелей допоздна задерживаются на работе? Очень может быть, что они оказались втянуты в тайные церемонии, проводимые 1 апреля 1993 года в ознаменование 666-й годовщины создания «Заговора упрямцев».
Из журнала Software Development, том 1, № 4, апрель 1993 г.
Назад: 16 Все сразу
Дальше: IV Инструменты, модели и методы