Deadline. Роман об управлении проектами, стр. 57

Как раз в этот момент к ним подошел Аристотель Кенорос.

— Точно, — поддержал он Молли. — Это очевидно. Самый простой и дешевый способ избежать ошибок в коде — это проверка.

— Кстати о качестве. Вот мы доподлинно знаем, что наши программисты пишут хороший код, — гордо сказала Молли, подходя к огромной красной надписи на дальней стене комнаты. Надпись гласила:

Ровно 14!

— Четырнадцать чего? — удивился мистер Томпкинс.

— Четырнадцать проверок кода без единой ошибки, — Молли прямо светилась от радости.

— Это впечатляет, — пробормотал мистер Томпкинс. — Я полагаю, мы вполне могли бы сэкономить те сорок два человекочаса, которые были затрачены на эти проверки кода, а на качестве продукта это никак бы не отразилось. Ведь ошибок все равно не было.

— Думаю, ты ошибаешься, — несколько раздраженно ответила Молли. — Именно благодаря проверке кода мы добились такого высокого качества работы.

— Только не благодаря последним четырнадцати, верно? Без них вполне можно было бы обойтись.

— Ммм… и тем не менее я могу предоставить данные, которые докажут, что проверка кода приносит проекту много пользы. Я не уверена сейчас в том, что помню цифры,…

— Прекратите, — прервал ее мистер Томпкинс. Он чувствовал, что идет по верному следу.

— А?

— Прекратите проверять код. Просто выбросьте эту фазу из процесса разработки.

— Подождите! — застонала Молли. — Мы не можем так поступить! Аристотель, ну скажи хоть ты ему. Скажи ему то же, что ты говорил нам о важности исправления ошибок во время проверки кода. Он же с ума сошел.

На лице Кенороса появилась странная улыбка.

— Говоришь, он с ума сошел? Это может быть. Только это совсем не значит, что он не прав. Вебстер, я даже не думал о такой возможности, пока ты сейчас об этом не заговорил. Действительно, если во время проверок никто не обнаруживает ошибок, то мы не можем говорить о снижении стоимости исправления ошибок во время проверки!

— Ну, разве что в процессе проверки не были допущены какие-то грубейшие ошибки…

— Их не было, — быстро отреагировала Молли. — Мы проверяли и перепроверяли. Те модули, которые прошли через этот этап без каких-либо ошибок, так же хорошо проходили и тестирование. Так что это правда, ошибок в коде не было.

— Значит, проверка кода действительно просто потеря времени. Прекратите проверки.

Она посмотрела на Кенороса, ища поддержки.

— Ну, я даже не знаю… — начал было тот.

— Аристотель, там нет никаких ошибок, — перебил его мистер Томпкинс. — Именно поэтому мы так сейчас поступаем. Просто изначальное качество кода оказалось куда лучше, чем мы рассчитывали.

— Ммм…

— Вспомни, что ты сам говорил мне об ошибках. Они появляются не в самом модуле, а на «стыке» разных модулей?

— Да, помню.

— Так вот, значит, большинство ошибок — это ошибки взаимодействия, вот в чем дело. Значит, главные ошибки происходят во время проектирования системы. Было бы нелепо полагать, что во время проверки кода можно анализировать архитектуру всей системы. Это же твои собственные слова. Анализ дизайна должен происходить отдельно, тогда же нужно отлавливать ошибки, которые в нем присутствуют. Почему проверка кода считается эффективной? Потому что на этом этапе исправлять ошибки проектирования немного проще, чем во время тестирования. Но ведь наш процесс проектирования стал более формальным. Мы проводим тщательную проверку архитектурных решений, причем не во время написания кода, а в момент проектирования. Именно поэтому у нас практически нет ошибок. А значит, проверка кода — пустая трата времени.

— Может быть, ты и прав… — неуверенно начал Кенорос и стал себя убеждать. — Если ты прав, то получается, что проверка кода, на которую так полагается весь остальной мир программистов, — это всего лишь попытка найти и исправить ошибки в проектировании системы. А когда архитектура продумана и проверена достаточно хорошо, причем еще до того, как программисты начнут писать код, то проверять код просто незачем. Не могу сказать, что я абсолютно уверен в этом, но кое в чем я не сомневаюсь.

— В чем же?

— Нам нужно удостовериться, правильны ли наши предположения. Иначе какая же мы Лаборатория по управлению проектами?

Мистер Томпкинс сидел за столом, озадаченно уставившись на пустую страницу записной книжки, когда в дверях показалась Лакса Хулигэн.

— О, это ты, Лакса, — приветливо сказал он, слегка покраснев.

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

— Ты подарила мне эту записную книжку несколько месяцев назад и сказала, чтобы я делал в ней записи каждый день. Записывать все, чему я в этот день научился, что нового и интересного открыл для себя. И ты знаешь, я ведь так и делал — почти каждый день. А сейчас я уже несколько недель подряд не знаю, что туда писать. Ты не знаешь, отчего так?

— Нет, — покачала она головой. — Не знаю. Давай, рассказывай все подробно.

— Я не знаю, чему я научился во время нашей эпопеи с Бэллоком. Если бы решил эту проблему сам, я бы вынес из этого какой-то урок. Что бы я ни сделал, все равно это был бы мой личный опыт. А так получается, что проблему я не решил. Это сделала за меня ты.

— И поэтому ты не можешь записать это в своей записной книжке?

— Нет. Потому что это странный способ решать проблемы. С моей точки зрения, ты появилась, как ангел, и решила все мои проблемы. В общем-то это вполне тянет на чудо. Как я могу это записать? «Если вам случится работать под руководством злобного придурка, надейтесь на чудо».

— А что бы ты хотел записать?

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

— Может быть, Вебстер, такие ситуации просто безвыходны? Так тоже бывает. Скажи честно, ты ведь не надеялся найти способ избавиться от Бэллока самостоятельно?

— Пока еще нет, но, может быть, я все-таки мог бы что-то сделать?

— Ох, не думаю. Я не верю, что такую патологию можно «вылечить» снизу. Честно, Вебстер. Мне кажется, у тебя просто не было выхода.

— Наверное, ты права, — вздохнул он. — Наверное, выхода действительно не было.

— Может быть, это и есть урок, который ты вынес из этой ситуации.

С этими словами она ласково провела рукой по его волосам и вышла из кабинета. Мистер Томпкинс проводил ее взглядом и начал писать.

Из записной книжки мистера Томпкинса

О патологической политике (еще раз)

1. Эту патологию невозможно вылечить снизу.

2. Не стоит терять время или подвергать себя опасности, чтобы проверить предыдущий постулат на собственном опыте.

3. Иногда единственным выходом из ситуации становится выжидание. Попробуйте подождать, пока проблема не разрешится сама по себе или пока вы не найдете способ уйти от нее в сторону.

4. Чудеса, конечно, случаются, но лучше все же на них не рассчитывать.

Глава 22

Сделка года

24 мая команда QuickerStill-Б закончила свой проект. Через пять дней, 29 мая, закончила работу команда QujckerStill-B. 30 мая успешно сдала продукт команда РМill-В. Мистер Томпкинс был просто счастлив.

— Просто не верится, Белинда, просто не верится! Мы закончили три проекта даже раньше идиотской даты, которую поставил нам Бэллок!

— Ну, может, в таком случае эта дата и не была совсем уж идиотской, а?

— Нет, она была идиотской, — тут же ощетинился мистер Томпкинс. — Можно было говорить о том, что маленькие проекты могут попытаться ускорить разработку и уложиться в эту дату, но только не планировать закончить 1 июня все шесть проектов, включая самые большие! Если следовать его планам, то завтра мы должны были бы начинать продавать все шесть продуктов. А ведь все крупные проекты еще далеки от завершения. Так что, с точки зрения планирования, его дата была совершенно идиотской.