— Вот и все на сегодня, мистер Томпкинс. В целом, конечно, все довольно неплохо, за исключением разве что мистера Гроша и его группы разработчиков. По сути, они — единственное досадное отклонение от принятого процесса разработки.
— Уверен, у него были на то веские причины, — начал было мистер Томпкинс.
— Ну, знаете ли, любой может найти веские причины, чтобы не следовать установленной процедуре разработки. Когда наш институт сертифицировал эту группу разработчиков, как СММ второго уровня, мы особо подчеркивали тот факт, что процесс — некоторая последовательность шагов разработки — не должен изменяться. Что бы кто бы ни разрабатывал — процесс остается неизменным. В этом и состоит суть второго уровня СММ. Главное в нем — неизменность. Неважно, хорош ваш процесс или плох, идеален или отвратителен, главное — что вы, по крайней мере, ничего в нем не меняете. И большинство всех работающих в Айдриволи-1 разработчиков поступают именно так! Мы проинспектировали шесть проектов — все находятся на стадии написания требований, причем пять именно этим и занимаются: фиксируют требования и составляют документацию, как того требует принятый здесь процесс. И никакой самодеятельности. Все, кроме мистера Гроша с его проектом. Мистер Грош вообще решил отказаться от любых правил! Его группа даже и не думала заниматься требованиями — вместо этого они сразу приступили к проектированию! — голос инспектора дрожал от возмущения.
— Я уверен, у него были на то причины, — повторил мистер Томпкинс.
— Конечно, — отозвался Грош. — Все очень просто. Наш проект не похож ни на один из тех, которые мы делали до сих пор. Сейчас нам надо практически создать аналог известного на рынке, хорошо документированного и описанного продукта — Quicken. У нас уже есть вся документация. Нам не нужно описывать требования, потому что это простое копирование…
— Не нужно писать требования! — взвизгнул руководитель группы проверки. — Никогда в жизни мне не доводилось видеть проект, для которого не нужно писать требований. Никогда! Каждый проект должен быть тщательно документирован. Если вы были сертифицированы на СММ второго уровня, вы обязаны описывать требования, используя известные и утвержденные методики. Только так и никак иначе.
— Но наш проект абсолютно другой! — завопил Грош.
— Все проекты другие, — неумолимо парировал руководитель группы проверки. — Каждый проект другой, потому что отличается от прочих. И тем не менее процесс разработки должен оставаться неизменным.
— А если проект отличается настолько, что использование данного процесса становится нецелесообразным? — вмешался в разговор мистер Томпкинс.
— Процессу нужно следовать в любом случае, — ответил инспектор. — Только так и никак иначе. Если мы начнем делать исключения для тех проектов, которые отличаются от других, то каждый начнет делать, что ему на ум взбредет, а о слаженном и постоянном процессе можно будет вообще забыть.
— Значит, нужно одинаково подходить ко всем проектам?
— Совершенно верно, — подтвердил инспектор. — А если этого не делать, то ни о какой сертификации на второй уровень СММ и речи быть не может. И это не только мое мнение. Это мнение всего нашего института.
— …сертификация на второй уровень СММ… — задумчиво произнес мистер Томпкинс. — Ну что ж, может быть, это и есть ответ. Не надо сертифицировать проект QuickerSlill на второй уровень СММ, вот и все.
— Боюсь, вы нашли неверное решение, мистер Томпкинс. Институт программирования едва ли допустит такое. Я хочу сказать, достаточно позволить этому произойти хотя бы единожды…
— А что, если нам не предавать наше соглашение огласке? Пусть это останется только между нами…
— Думаю, это невозможно, — твердо возразил неприступный инспектор. — И не думаю, что такой поворот событий порадует министра Бэллока. Он требует, чтобы вся организация перешла на следующий уровень СММ еще до конца года, а тут вдруг окажется, что один из центральных проектов вместо этого вдруг откатывается на один уровень назад. Нет, сэр. Я собираюсь написать сегодня представление лично мистеру Грошу и его группе. Мы дадим им семь дней на то, чтобы они исправились и написали все необходимые спецификации по стандартной форме…
— Скопировали требования из одной формы в другую! — горько воскликнул Грош.
— …по стандартной форме, как я уже говорил. По форме, которая соответствует процессу СММ второго уровня. Если же через семь дней они не представят комиссии необходимую документацию, сертификация всей группы будет официально и публично аннулирована. Я достаточно ясно все объяснил? — в голосе инспектора звучала угроза.
— О, да, — ответил мистер Томпкинс. — Вы объяснили все предельно ясно. Но эта проектная группа — всего лишь крохотная часть всей организации. Если я правильно вас понял, то завтра вы продолжите работу в других зданиях?
— Да. Судя по сегодняшним темпам, у нас будет уходить по одному дню на каждое здание, не меньше.
— Не окажете ли мне услугу, начав завтра проверку Айдриволи-2? А потом, послезавтра, Айдриволи-3 и так далее, по порядку? Тогда через неделю вы сможете закончить всю процедуру на Айдриволи-7, — говорил мистер Томпкинс, а сам думал, что это даст ему по крайней мере несколько дней отсрочки. — Вы не могли бы проводить проверку именно в такой последовательности?
— Конечно, мистер Томпкинс. Мы же здесь, чтобы помочь вам. Итак, завтра мы займемся Айдриволи-2. Я так понимаю, что у вас там сосредоточены особо важные проекты, раз вы просите проинспектировать их в первую очередь.
— Э… о… да, вы абсолютно правы. И в Айдриволи-3, и в Айдриволи-4. Там тоже идет очень важная разработка. Мы особо заинтересованы в вашей оценке этих трех групп. Айдриволи-5 и Айдриволи-6 уже далеко не так важны. Было бы замечательно, если бы вы сначала проверили самые важные проекты.
— Разумеется. Я вас прекрасно понимаю. Мы сделаем все возможное, чтобы помочь вам. Можете положиться на нас, мистер Томпкинс.
— Спасибо. Я не сомневался.
Вскоре все, кроме Габриела Маркова, покинули кабинет.
— Кажется, мы отстаем даже больше, чем предполагали, — мрачно заметил он.
— Ну, конечно же, какое-то время сожрет это «улучшение процесса разработки».
— Да нет же, все еще хуже.
— Да почему же?
— Ну это же должно быть так естественно для руководителя — сэкономить время на написание документации в то время, как по каждому проекту есть прекрасная документация от конкурирующего коммерческого продукта! И тем не менее догадался об этом только Грош. Все остальные пошли по проторенной дорожке и стали писать спецификацию требований, как они всегда делали до этого. Никто больше не подумал о том, что эти шесть проектов кардинальным образом отличаются от всех, которые они делали раньше.
Мистер Томпкинс вскочил на ноги.
— Теперь я понимаю, о чем ты. Сдается мне, нам пора прогуляться по Айдриволи-7 и самим поинспектировать команды Б и В. Интересно, сколько из них догадалось сэкономить время на требованиях?
— Руководства пользователя и есть спецификация требований, — сказала им Молли Макмора. — Конечно же, мы не стали их копировать в стандартную форму. Это означало бы впустую тратить время.
— Точно, — согласился с ней Элем Картак. Все остальные руководители команд Б и В согласно закивали головами.
И тут подняла руку Аврил Альтербек, руководитель команды В, которая разрабатывала PShop:
— Руководства пользователей по Photoshop, которые выпустила Adobe, настолько полные и всеобъемлющие, я никогда не встречала лучшего описания требований к программе. Никогда раньше мне и в голову не приходило, что руководство пользователя можно рассматривать в таком качестве. Но теперь все по-другому. Более того, я думаю, почему бы нам вообще не писать руководство пользователя или хотя бы его основу в самом начале проекта? Тогда бы сначала оно выполняло роль спецификации, а потом постепенно превратилось в настоящее руководство пользователя. Я знаю, что все остальные со мной согласятся, потому что мы уже обсуждали свои мысли по этому поводу, — она обвела взглядом собравшихся. Те дружно кивнули.
— Однако даже при том, что руководство пользователя является замечательным описанием функциональности продукта, мы не должны отказываться от работы по написанию требований, — продолжала Аврил. — Существуют ведь требования, не относящиеся к функциональности программы, например, время отклика, объем файлов, диапазон чисел, точность переменных и допустимые расширения…
— Каждый из нас описал все эти нефункциональные требования отдельным документом, — вставил Картак. — Теперь, кроме руководств пользователя, у нас есть полный набор спецификаций. В них есть все требования к системе — и функциональные, и нефункциональные. При этом все прекрасно изложено ясным, доступным языком, со множеством примеров и иллюстраций. Мне кажется, ничего лучше и быть не может!