Глава 16
План работы по подготовке к летним Олимпийским играм
После завтрака кот Сардинка любил погулять по карнизу до балкона Лаксы. Когда она была у себя, кот всегда был желанным гостем в ее номере. Однако с начала апреля ее апартаменты были закрыты, и кот каждое утро возвращался ни с чем. Да, с начала апреля, как раз тогда на сцене появился зловредный министр Бэллок… Сардинка спрыгнул с подоконника, недовольно посмотрел на мистера Томпкинса и громко мяукнул.
— Да, Сардинка, да. Я тоже очень по ней соскучился. И я тоже понятия не имею, когда она вернется…
Впрочем, в этот день ему-таки посчастливилось получить кое-какие новости о Лаксе, хотя и не из прямых источников. Утром в кабинете мистер Томпкинс обнаружил у себя на столе кипу документации в блокнотах с отрывными листами. К ним была приложена записка на бумажке с выгравированной надписью: «Министерство внутренних дел». В записке корявым, почти не читаемым почерком значилось:
«Велел Хулигэн выкрасть эти бумаги из Соединенных Штатов. С таким подспорьем вы просто не сможете опоздать с выпуском системы для Олимпийских игр».
И размашистая подпись с замысловатыми завитушками — Бэллок.
Кроме того, в кабинете его поджидал Аристотель Кенорос. На коленях он держал один из блокнотов. Увидев мистера Томпкинса, Аристотель улыбнулся:
— Это спецификации контрактов FAA NASPlan, — весело сказал он.
— О-о-о, — простонал мистер Томпкинс, — только не американские спецификации NASPlan. Все эти проекты окончились судебными процессами!
— Именно! Более того, на всех этих документах стоит печать судебного пристава.
— Боже мой, если бы Бэллок действительно хотел нам помочь, он украл бы спецификации французской или испанской системы… по крайней мере, там были хоть какие-то положительные результаты. А эти…
— А теперь хорошая новость: здесь у вас на столе полный набор, все спецификации, все до единой. Я сам только что проверил. Спецификации на каждый компонент системы. Мне кажется, даже если проект кончился так плачевно, все равно есть шанс, что спецификации были сделаны неплохо.
— Ну, это маловероятно…
— Конечно. Один шанс на миллион, но вдруг?
— Разумеется. К тому же лучше иметь хоть какие-то спецификации, чем вообще никаких. Я было подумал, что даже простой список компонентов системы был бы хорошим подспорьем. Аристотель, я надеюсь, что ты поможешь нам и в этом проекте. Разумеется, не сейчас, а когда команда приступит к проектированию системы.
— Всегда рад помочь. Кстати, проект обещает быть весьма интересным — жонглировать самолетами, управлять взлетами и посадками… подумать только. Превосходный проект, если только тебе не велят выполнить его в сжатые сроки.
— К сожалению, вынужден вас разочаровать. Срок сдачи нам известен, его не отодвинуть, и он наступит очень и очень скоро.
— Да, я помню. И все же хотелось бы представить, что где-то на земле есть место, где цель проекта — качество, а не сроки. Но, наверное, такого не бывает. Просто сейчас как раз такой случай, когда логично было бы предположить, что заказчик скажет: «Это программа для управления взлетами и посадками самолетов в пассажирском аэропорту. Тут важно качество. Ребята, вы уж постарайтесь, сделайте все как надо. Никаких сроков — просто сделайте так, чтобы система работала безотказно».
— Абсолютно логично.
— Я, наверное, неисправимый идеалист.
— Зато у нас будет прекрасная команда разработчиков. Стоило мне упомянуть слова «система для аэропорта» в разговоре с Гэбриелом, как он тут же нашел мне семь человек, которые принимали участие в разработке испанской системы такого же типа. Я поговорил с ними и сразу взял в проект. Это действительно замечательные ребята.
— Вот и здорово. Хорошая новость для меня. А у меня для вас, к сожалению, плохая: у нас есть проблема с одним из основных проектов.
— Скажите лучше, где их нету.
— Нет, это новая проблема. В команде PMill-A руководитель сорвался с катушек. Он обижает людей, кричит на них. Разработчики уже начинают его побаиваться.
Проектом РМill-А руководил Осмун Грэдиш, приятный, мягкий молодой человек. Было просто невозможно представить, что он может грубо себя вести.
— Ладно, сегодня я к нему зайду поговорить, — сказал мистер Томпкинс. — А пока не поможешь ли мне с этими книжками? Нужно снести их вниз, к ребятам из «аэродромного» проекта. Будем надеяться на лучшее: на то, что от этих спецификаций будет толк. Если этого не случится, то лето 2000 года мы запомним, как провал одного из самых важных наших проектов.
Даже вдвоем они едва-едва могли унести огромную кипу спецификаций. Сначала мистер Томпкинс передал книжки в черном переплете в руки Аристотелю, потом стал собирать оставшиеся. Наконец на столе осталась только одна книжка. Мистер Томпкинс наклонился за ней и с трудом прижал ее локтем к боку.
— Зачем мы все это делаем? — обратился он к Кеноросу. — Зачем мы вешаем на себя новую работу, если мы и старую едва успеваем сделать в срок?
— Мы берем на себя много, потому что мало чего боимся, — пропыхтел в ответ Кенорос, и они отправились вниз по лестнице.
Внешне Осмун Грэдиш почти не изменился: все тот же мягкий голос и приятная улыбка. Однако если присмотреться, то можно было заметить, что около рта у него залегли складки, а взгляд стал каким-то мрачным и усталым. Мистер Томпкинс решил пойти на еженедельное собрание проекта PMill-A. Тут же он встретил и руководителя всех трех команд PMill — Мелиссу Альбер. После собрания мистер Томпкинс пригласил ее выпить кофейку. Вскоре они уже сидели во дворике напротив Айдриволи-1 и прихлебывали крепкий моровийский кофе.
— Так что же все-таки происходит с командой А? — начал мистер Томпкинс.
— Ох, Вебстер. С ними у нас большие проблемы. Осмун не выдержал нагрузки.
— Я его не виню, — печально покачал головой мистер Томпкинс. — Мы с самого начала знали, что во всех командах А будет слишком много народу, к тому же на них постоянно давят: и объем работы, и сроки практически нереальны. Именно поэтому мы и создали команды Б и В. Когда мне становится совсем невмоготу, я иду в Айдриволи-7 и навещаю Nolate-B, или PShop-B, или любую другую из этих команд.
— Я тоже.
— К сожалению, у руководителей команд А такой возможности нет. Получается, что для нас они — пешки, которыми мы готовы пожертвовать в большой игре…
— Да, что-то вроде того.
— Так расскажи мне, как у них дела. Неужели все действительно так плохо?
— Иногда он срывается и становится совершенно неуправляемый, — ответила Мелисса. — Лицо красное, кричит на людей. Обзывает их всякими словами в присутствии остальных.
— Думаешь, его что-то беспокоит? Не только сроки и давление сверху?
— Он не хочет говорить со мной на эту тему, но я думаю, что причина именно в этом. Знаешь, он как-то обмолвился, что вот Quirk-A собирается сдать свой проект вовремя. Он боится, что опоздает только его команда. Наверное, в этом-то все и дело.
— Может, мне с ним поговорить?
— Давай позже? Я бы хотела еще сама с ним поработать.
— Как скажешь.
— Да, кстати, разработчики уже начали просить о переводе на другой проект. Им не хочется работать в команде РMill-A. Даже не знаю, что мне им…
— Дай мне немного времени, чтобы это обмозговать, хорошо?
— Кстати, я вот подумала — ты сказал, что мы жертвуем командами А, словно пешками. Но это все-таки не так. Мы не должны так думать, ведь это дает нам возможность воспитывать в людях командный дух. Когда работы становится все больше и больше, а сроки поджимают, команда может стать единым целым и сообща стараться решить поставленную задачу. Если бы в результате работы мы имели сплоченный и дружный коллектив РMill-A, то такую команду можно было бы в дальнейшем перебросить и на другой сложный проект, и они бы справились.
— Да, ты права. Сразу приходит на ум новый проект по созданию системы для аэропорта. Конечно, опыт работы немного не тот… но все равно в этом проекте есть масса задач, которые они могли бы взять на себя. И это было бы просто замечательно.
— Так и будет, если только им удастся сплотиться и работать одной командой. Не мне объяснять тебе, что когда разработчики не чувствуют поддержки и признания начальства, они редко создают сильные сплоченные команды. Например, что касается команды РMill-A, тут особых надежд на это нет…
Последние несколько дней Белинда работала с разработчиками новой системы для аэропорта. С тех пор, как мистер Томпкинс принес им украденные в Штатах спецификации, они взялись за их изучение, причем начали с одного из основных компонентов — системы радиоуправления самолетами. Никто не знал, насколько многоплановой и сложной будет система для моровийского аэропорта, однако в любом случае там должна была быть система радиоуправления. Вебстер тоже потратил около трех часов на изучение той части спецификации, которая касалась этой части системы, а потом отправился на ежевечернее собрание группы разработчиков.
— Привет, босс! — весело сказала Белинда, завидев мистера Томпкинса. Надо сказать, что все остальные пребывали в подавленном настроении. Даже лидер группы, Гулливер Менендес, — и тот, казалось, утратил свой обычный энтузиазм. Взгляд у него был равнодушный и слегка отупевший.
— Единственный вопрос на повестке дня, Вебстер. Что ты думаешь об этих спецификациях? — спросила Белинда и хитро улыбнулась.
Мистер Томпкинс внутренне напрягся и приготовился к обороне. Дело было в том, что за три часа, потраченных на изучение спецификаций, он не понял ни слова из того, что читал.
— Ну… — начал он, — я читал-то всего пару часов…
— Замечательно. Расскажи нам, что ты думаешь после пары часов чтения.
— Ну, как бы это сказать… в общем, я подчеркиваю — в общем — эта спецификация… она…
— Она что?
— Разумеется, все мы знаем, что система, которую нам предстоит разработать, очень сложна. И, видимо, поэтому спецификация сложной системы сама по себе становится весьма сложной… То есть я хочу сказать, что я читал совсем недолго…
— Короче говоря, ты ничего не понял, я права?
— Ну, более-менее. Мне кажется, такие спецификации надо читать неторопясь, вдумчиво, иначе просто не понять, о чем идет речь. Слишком сложная внутренняя логика. Вам тоже так показалось?
Гулливер мрачно кивнул:
— Приблизительно так мы и думали. Я имею в виду свою команду. А вот у Белинды прямо противоположное мнение.
— Ага! И каково же мнение Белинды?
— Это полная белиберда! — Белинду явно забавлял этот разговор. — Вебстер, это же классическая, стопроцентная белиберда, от начала и до конца. Все вместе и каждая страница в отдельности.
— Ну, ты хватила. Я бы так не сказал. Как можно отзываться так о спецификации, которую написали сведущие в своем деле специалисты?
— О, в специалистах я нисколько не сомневаюсь.
— К тому же спецификация была прочитана и одобрена в FAA.
— Конечно. Авторы написали ерунду, потом эту ерунду прочитали, и, наконец, FAA ee одобрила.
Мистера Томпкинса начала раздражать такая безапелляционность и самонадеянность Белинды:
— Как ты можешь так говорить! В конце концов, эта спецификация на проект в сто миллионов долларов!
— Сто шестьдесят, если точно. Я проверяла.
— Ну вот. Кто же будет тратить столько денег на проект, если никто не понимает его спецификацию?
— Ты думаешь? Ну, ответь для начала на простой вопрос. Ты же читал этот документ целых два часа?
— Даже три.
— Ну, тогда ты точно должен был полностью его прочесть хотя бы один раз.
— Скорее, просмотрел. Досмотрел до конца, потом вернулся и просмотрел чугь внимательнее еще раз.
— О'кей. Тогда скажи, пожалуйста: можно ли вводить в эту систему данные с помошью клавиатуры?
— Э-ээ… — мистер Томпкинс чувствовал себя как на экзамене, когда вытягиваешь именно тот билет, который не успел выучить. — Ну, я точно не помню. Возможно, просто не обратил внимания. Особенно если это было описано в тех частях документа, которые я не успел перечитать, а только бегло просмотрел.
Белинда обернулась к остальным участникам собрания:
— Ребята, вы ведь читали спецификацию целый день, правда? Кто из вас может ответить — предусмотрена ли в этой системе клавиатура?
Кто-то хмыкнул. Кто-то пожал плечами.
— Хороший вопрос, — сказал Гулливер.
— Итак, это неизвестно, — подвел итог мистер Томпкинс. — Да и сам вопрос был несколько специфическим. После прочтения спецификаций всегда остаются вопросы. Мы же не ожидали, что этот документ будет полным и совершенным описанием системы, которую мы создаем.
— Вебстер, подумай еще раз: о чем я тебя спросила. Если мы создаем многопроцессорную систему, которая включает в себя и «железо», и программное обеспечение, базу данных с сотнями возможностей настроек конфигурации…
— Вот-вот. Все это мы узнали из спецификации системы: она включает в себя «железо», программное обеспечение, базу данных с разнообразной информацией. Все-таки от этого документа есть какая-то польза, это не чушь и не белиберда, как ты изволила утверждать!
— Но откуда же они возьмутся, все эти данные?
— Что?
— Я говорю, как они попадут в нашу систему?
— Ну, мне кажется, их должен вводить туда оператор. В этом случае у него должно быть устройство ввода информации. Или же данные поступают из других частей программы во время запуска системы. Возможно также, что они берутся из какой-нибудь вышестоящей системы. А может быть, система сама конфигурирует базу, запрашивая совместимые внешние устройства.
— Точно. Ты перечислил четыре возможности. Наша система может иметь четыре совершенно разных механизма реализации, в зависимости от того, что мы выберем. Но в спецификации ничего про это не сказано. Они просто пропустили тот факт, что данные должны откуда-то поступать! Мы читали ее целый день, и тем не менее не нашли ни слова о том, как конфигурируется система, можно ли изменить ее конфигурацию непосредственно в процессе работы, как установить или переустановить частоту радиоволн, как строится процесс обмена сообщениями, есть ли в ней возможность настраивать связь между несколькими операторами одновременно…
— Ничего такого, — кивнул Гулливер. — Она абсолютно права, Вебстер. Вся эта спецификация на самом деле ничего не описывает. Это три сотни страниц каких-то смутных догадок и общих фраз.
Мистеру Томпкинсу захотелось записать что-то по поводу «догадок вместо спецификаций», но что? На всякий случай он заново перечитал спецификацию (на это ушел целый час). Ему так хотелось думать, что Белинда ошиблась и что дело не так уж плохо. Однако, как спецификация, документ никуда не годился. Каким-то образом авторам удалось вообще избежать конкретных описаний конструируемой системы. Но зачем они так ее написали? Неужели написать нормальную спецификацию было так уж сложно? И почему никто, кроме Белинды, включая комиссию Американской FAA, не увидел, что это всего лишь триста страниц откровенной белиберды? Ведь те люди тоже должны были строить по ней настоящую систему для настоящего аэродрома, принимать самолеты с пассажирами… Почему же так происходит? Ему и раньше случалось видеть спецификации, которые никак не объясняли, что именно предстоит создавать программистам. Каждый раз создание такого документа являлось неизменной частью процесса подготовки к написанию продукта, и каждый раз такой проект заканчивался провалом. Так зачем же их пишут, принимают, и почему никто не критикует авторов за подобные «творения»? Загадка какая-то. Тайна абстрактных спецификаций.
Стоял теплый осенний вечер. Мистер Томпкинс знал, что перед ужином Белинда обычно плавает, и решил ее разыскать. Как он и предполагал, Белинда была в бассейне. Торопиться было некуда, поэтому он уселся в один из шезлонгов, какое-то время полюбовался на красивые сильные движения умелой пловчихи, а потом достал записную книжку и стал заносить сегодняшние заметки об изменении в поведении Осмуна, который, не выдержав давления сверху, стал запугивать своих подчиненных так же, как Бэллок запугивал его самого.
Из записной книжки мистера Томпкинса
Сердитый начальник
1. Злость и неуважение заразительны. Когда высшее руководство демонстрирует злость и неуважение к подчиненным, руководители среднего звена начинают копировать их поведение. Точно так же дети, которых наказывали в детстве, часто впоследствии становятся жестокими родителями.
2. Неуважение и злоба, по мнению некоторых начальников, должны заставить подчиненных лучше работать. Это типичная политика «кнута и пряника». Но разве когда-нибудь неуважение со стороны начальства приводило к тому, что люди начинали лучше работать?
3. Если начальник демонстрирует неуважение к подчиненным, это признак того, что он не может больше занимать свою должность (а вовсе не признак того, что у него плохие подчиненные).
Однако он не знал ответа на самый главный вопрос: почему сердитые начальники выбирают именно такую модель поведения? Что заставляет их из всех возможных эмоций выбирать именно злобу и агрессию? Вот Бэллок, например: он всегда либо злится, либо негодует. Тоже загадка. Мистер Томпкинс подумал, что собирался записывать то, в чем уже разобрался, а вместо этого получается какое-то собрание загадок и шарад, ответы на которые он не знает.
В это время Белинда выбралась из бассейна и стала бодро растираться полотенцем.
— Привет, босс! Ну, что?
— Прекрати брызгаться!
— Извини. Так что у тебя?
— Сочиняю загадки, а потом размышляю над их решением. Присоединяйся.
— С удовольствием, — Белинда положила полотенце на соседний шезлонг, села сверху и набросила на себя свисающий край, как тунику. — Итак, где же загадка дня?
— Думаешь, она одна? Даже не надейся, — улыбнулся мистер Томпкинс, но улыбка получилась несколько мрачноватой. — Для начала возьмем неточную спецификацию. У меня два вопроса. Во-первых, почему ее так написали? И во-вторых, почему этого никто не заметил? Я имею в виду, никто, кроме тебя. Ведь все остальные, и я в том числе, считали, это нормальная спецификация, просто мы недостаточно хорошо знаем предмет, чтобы ее понять!
— Непростой вопрос. Давай я сначала попробую объяснить кое-что попроще, а уже потом отвечу на твою загадку. Почему никто в нашей замечательной команде программистов не забил тревогу и не сказал во всеуслышание: «Это же дерьмо, а не спецификация?» Если бы документ был написан хоть немного лучше, можно было бы подумать, что наши ребята решили додумать недостающие детали самостоятельно. Это нормальный, профессиональный подход любого хорошего разработчика. Но в данном случае спецификация не просто плоха. Она отвратительна. Это выдающийся пример того, как нельзя писать подобные документы. Так почему же они нам об этом не сказали сами?
— Да, почему?
— Если бы хоть кто-то из них был специалистом по созданию технических спецификаций, он бы немедленно забраковал этот документ. Но наши ребята не чувствуют себя вправе судить и выставлять оценки. Более того, они ощущают конкуренцию.
— Конкуренцию со спецификацией?
— Да нет же. Между собой. Я считаю, что в каждом из нас, в душе или на уровне подсознания, живет тайный страх: мы боимся показать, что соображаем хуже других. Вся наша раса заражена этим страхом. Каждый готов предположить, что его мыслительные способности ниже средних, поэтому ему надо прикладывать дополнительные усилия, чтобы разобраться в том, в чем другие разбираются с ходу. А теперь возьмем нашу ужасную спецификацию. Ты читаешь ее целый день и обнаруживаешь, что ничего не понимаешь. И тут приходит начальник и спрашивает: «Ну как? Как вам спецификация?» Что сказать? И мы врем! «Все в порядке, босс. То есть я хочу сказать, что документ этот весьма непростой, но дайте нам еще немного времени, и мы во всем разберемся…» И так поступает каждый!
— И поэтому никто не говорит, что спецификация никуда не годится.
— Я поняла это давным-давно, Вебстер. Никто не скажет тебе, что спецификацию надо отправить в мусорное ведро. Они могут пожаловаться на сложность изложения, но не скажут самого главного: построить проект по такой спецификации невозможно, потому что в ней отсутствует самое главное — описание того, что нужно сделать.
— А как ты с этим борешься? Разве у тебя нет внутренних сомнений и комплексов?
— Вебстер, и ты задаешь этот вопрос даме, которая по ночам спит в парке под пальмой? Странный ты человек. Конечно, у меня есть внутренние сомнения, как и у любого другого. Но на этом я уже давно обожглась и усвоила урок. Мне хорошо известно, что иногда попадаются спецификации, которые никуда не годятся. У меня даже есть несколько правил, которые помогают мне определить, насколько хорошо написана спецификация программы.
— Расскажи, пожалуйста. Очень хочется узнать, что же это за правила.
— Первое и самое главное — по сути, определение. Спецификация — это описание того, как система — некий набор запланированных реакций — отвечает на события, которые происходят непосредственно за ее пределами. Любая спецификация делится на две части: первая описывает зависимость между определенными событиями и реакцией системы. Вторая описывает входящие и исходящие данные, благодаря которым события и реакция системы становятся единым целым. Какой бы сложной ни была система, вторую часть всегда достаточно просто описать: все эти входящие и исходящие данные — просто список неких данных и управляющих элементов. Всех их можно поименовать, пронумеровать и перечислить. К тому же их можно измерять (например, по количеству информационных элементов в потоке).
— То есть получается, что даже если система очень и очень сложная, вся сложность заключается в первой части — правилах.
— Именно. Описать то, каким образом входящая информация превращается в исходящую, довольно сложно. Но вторая часть, в любой системе, — это всего лишь входящие и исходящие данные. Можно не суметь разобраться в сложной логике, но если в спецификации не перечислены базовые элементы, с которыми работает система, — ей место на помойке. Это вообще нельзя считать спецификацией.
— Значит, в спецификации должны быть по меньшей мере данные по входящей и исходящей информации. Причем каждому элементу нужно дать имя и указать, к какой части системы он относится.
— По меньшей мере! Конечно, это автоматически не делает спецификацию прекрасной и полезной, но, по крайней мере, с ней можно работать. В нашей спецификации ничего такого и в помине нет.
Некоторое время мистер Томпкинс молча обдумывал услышанное.
— Ну что ж. Возможно, это объясняет качество нашей спецификации. Допустим, система, которую они пытались описать, была настолько сложной, что писатели просто запутались в ней, исписали три сотни страниц, а про вторую, простую часть, забыли. Можно даже решить, что система такого типа слишком сложна и ее невозможно описать в спецификации.
— Знаешь, мне так не кажется. Тут дело кое в чем другом. На этот счет у меня тоже есть своя теория, но о ней позже. Для начала я хотела бы еще раз подчеркнуть, что, независимо от сложности системы, ты всегда можешь довольно просто описать входящие и исходящие данные. А теперь представь себе другую спецификацию системы для управления аэропортом. Всего на двадцати страничках, где подробно, последовательно описаны все типы входящей и исходяшей информации, все они поименованы. Чем более важна входящая и исходящая информация для системы, тем более подробным описанием она сопровождается: здесь могут даже описываться сами сигналы и, может быть, уровни напряжения, длительности импульсов и т. п. Допустим, на двадцати страницах такой спецификации описывается двадцать типов входящей информации и тридцать — исходящей. А в первой части стоит всего одна фраза: «Перечисленные ниже типы входящей и исходящей информации каким-то стандартным образом связаны друг с другом». Ну, как тебе такая спецификация?
— Ужасная спецификация. Белинда, это же самая недоделанная и туманная спецификация, какую только можно вообразить!
— Что касается первой части — да. Но зато в ней есть и вторая часть — перечисление данных, с которыми работает система. Другими словами, вторая часть просто превосходная, а вот первая почти отсутствует.
— Ну, и что же ты этим хочешь сказать?
— Я хочу сказать, что при всем ее очевидном несовершенстве с такой спецификацией можно было бы начинать работу над системой для аэропорта. Более того, это спасло бы их от провала проекта, от судебной тяжбы и прочих неприятностей. Разработчики прочли бы эти самые двадцать страниц и через какое-то время предложили бы свое видение отсутствующей первой части — логики работы системы. Потом они показали бы результат другим участникам проекта: администраторам и операторам, — чтобы те уточнили детали. Двадцатистраничная спецификация, которую я тебе описала, конечно, ужасна. И все же она гораздо лучше той, которая нам досталась от FAA.
Сейчас мистер Томпкинс уже не сомневался в том, что Белинда права. Но ее объяснение только добавило новых вопросов:
— Белинда, но зачем, почему они составили вот такую спецификацию? Кому нужен документ, с которым все равно никто не сможет работать?
— Знаешь, я, кажется, догадалась, — весело рассмеялась Белинда. — Поначалу это было не так уж просто сделать, но теперь, когда я знаю основное правило, частности уже не мешают видеть всю картину.
— И что же это за «основное правило»?
— Туманность в изложении появляется там, где существует неразрешенный конфликт.
— Конфликт?
— Именно. Программные приложения разрабатываются при участии нескольких групп заинтересованных лиц: собственников компании, пользователей, владельцев акций, разработчиков, операторов, администраторов. А когда речь идет о такой сложной и важной системе, как организация управления аэропортом, заинтересованы будут несколько десятков групп! Часто все они спорят и ссорятся между собой. Возникает конфликт. Смотри, например, одни хотят, чтобы операторам дали возможность вводить данные напрямую. Другие хотят, чтобы эти данные вводились только централизованно.
— Да, такое легко представить. И если они не найдут компромисс, то?…
— То спецификация будет абстрактной и туманной. По ней нельзя будет ничего сказать о системе. Ну как писатель может написать, есть у оператора клавиатура или нет? Если он встанет на сторону одной группы, то его живьем съедят остальные! Безопаснее всего вообще об этом не упоминать.
— То есть они могли бы написать нормальную, хорошую спецификацию, но для этого…
— Для этого им надо было бы ввязаться в драку, защищать ту или другую сторону…
— М-да… а они вместо того, чтобы разрешить конфликт, просто прикрыли его тремястами страницами никому не нужного текста.
— Да, так всегда и происходит. Теперь, когда мне встречается какая-то неточность в спецификации, я сразу иду выведывать, где у них конфликт. И заметь — всегда его нахожу. Кстати, у меня есть твердое убеждение: любую сложную вещь можно описать простыми словами. Если нам это не удается, значит, нужно либо развивать в себе способность четко излагать мысли, либо учиться решать конфликты.
Мистер Томпкинс смотрел вверх — туда, где над холмами в темном вечернем небе уже зажигались первые звезды. Какое-то время они молчали. Потом Белинда спросила:
— Поздно уже. Как насчет ужина, босс?
— Давай. Только ты переоденься сначала. А я встречу тебя в столовой.
Белинда взяла полотенце и направилась в свои апартаменты. Мистер Томпкинс же снова открыл записную книжку.
Из записной книжки мистера Томпкинса
Туманные спецификации
1. Неясность спецификации говорит о том, что между участниками проекта есть неразрешенные конфликты.
2. Спецификация, в которой нет списка типов входящей и исходящей информации, не должна даже приниматься к рассмотрению. Это значит, что она попросту ничего не специфицирует.
3. Никто никогда не скажет вам, что спецификация плоха. Люди скорее будут обвинять себя в неспособности понять написанное, чем ругать авторов спецификации.