Deadline. Роман об управлении проектами Демарко Том

Получается, что они преднамеренно выбрали наименее эффективный путь, просто чтобы у всей команды было достаточно работы.

Было еще рано, но мистер Томпкинс решил пойти домой. Его охватило уныние. По обочинам тропинки росли причудливые тропические цветы и деревья, за которыми скрывалось здание Института программирования, но сейчас даже цветы не радовали взгляд. Единственным его достижением за сегодняшний день была отсрочка, которую получили команды, работающие в здании Айдриволи-7. До них доберутся только через неделю, так что у него еще есть время, чтобы что-то сделать. Но что?

Из дневника мистера Томпкинса

Процесс разработки и его улучшение

1. Хороший процесс разработки и его постоянное улучшение — весьма достойные цели.

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

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

4. Можно надеяться получить положительный результат от одного какого-нибудь хорошо взвешенного и тщательно выбранного усовершенствования в методике работы. В этом случае оно может покрыть деньги и время, потребовавшиеся на его внедрение.

5. Попытка внедрить более одного усовершенствования методологии — гиблое дело. Программы, направленные на улучшение многих приемов и навыков (например, переход на следующий уровень СММ), скорее всего приведут к тому, что сроки только увеличатся.

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

7. Что касается чрезмерно больших команд, то там стандартизированный процесс будет неукоснительно соблюдаться до тех пор, пока он позволяет всем чувствовать себя при деле (не важно, с пользой для проекта или нет).

Глава 14

Первый программист Моровии

— Скажу ему, чтобы не смел трогать мои проекты, — мистер Томпкинс сидел в офисе генерала Маркова. Для верности он даже постучал кулаком по столу, но уверенности ему это почти не прибавило. Генерал приподнял брови и с удивлением посмотрел на друга.

— Вот так и заявишь самому директору института?

— Именно. Сегодня же пойду и брошу вызов льву в его логове. Или львице в ее логове… как правильно?

— В его.

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

— Ух ты. А он, разумеется, тут же тебя послушается?

— Меня это нимало не интересует.

— А он пожалуется министру Бэллоку. Ему по-другому нельзя — ведь за работу по переводу компании на следующий уровень СММ Бэллок спрашивает именно с него. Ты готов поспорить с Бэллоком?

Мистер Томпкинс выразительно покачал головой.

— Я скажу ему, чтоб он не трогал мои проекты и чтобы не говорил об этом Бэллоку. Употреблю все свое красноречие. Докажу ему, что по-другому просто нельзя. Он поймет, обязательно поймет и согласится.

— Что-то я в этом не уверен.

— Да и я тоже, если честно. Но ведь я обязан попытаться!

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

— Так что же мне делать? Помоги мне, придумай, что я должен сказать?

— Тебе надо потренироваться. Давай, представь, что я и есть директор института. Начинай, выкладывай свои требования.

— Э-ээ… послушайте, мистер., а как его, кстати, зовут?

— Менотти. Просперо Менотти

— Видите ли, мистер Менотти…

— Доктор Менотти. У нас тут все с докторской степенью. Даже я. Вот я — доктор, генерал в отставке Марков.

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

Доктор и генерал в отставке покачал головой.

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

— Как что! Это же пустоголовый болван, который выдумывает какие-то идиотские методы, какие-то дурацкие программы улучшения непонятно чего, портит людям жизнь, путается под ногами со своей инспекцией, со своими указаниями… Почему ты так на меня смотришь?

— Вебстер, ты этого человека в глаза не видел. Более того, минуту назад ты даже не знал, как его зовут. А сейчас ты уже ненавидишь его лютой ненавистью.

— Да пошел бы он куда подальше со своими программами.

— Ну и как ты собираешься убеждать человека, которого ненавидишь, а?

Мистер Томпкинс задумался. Конечно, же, Гэбриел был прав.

— Ты хочешь сказать, если я выдам свои чувства, то он никогда не сделает то, что мне от него нужно?

— Именно.

— А я что, выдал свои чувства?

— Вроде того.

— Ну что ж, спасибо, что подсказал. Теперь буду поосторожнее во время разговора. Постараюсь ничем себя не выдать. Спасибо, Гэбриел.

— Да я не об этом совсем говорил! И не сможешь ты скрывать свои чувства, уж поверь мне. Вебстер, посмотри на это с другой стороны: это же обычная проблема управления проектом. Ты — наш босс, и чертовски хороший, надо сказать. Мы все в Айдриволи из кожи вон лезем, выполняя твои распоряжения. Как ты думаешь — почему? Неужели потому, что ты — наш начальник, и мы обязаны тебе подчиняться?

— Разве нет?

— Нет. Проснись же, елки-палки. Твоя сила и твоя власть совсем в другом.

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

— Нет, опять не то. Не потому что они любят тебя, а потому что ты их любишь, Вебстер!

— Что?

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

— Ну… — мистер Томпкинс запнулся, не зная, что ответить на такую тираду.

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

— Значит, он мне должен понравиться? Я должен полюбить доктора Менотти?

— Точно. Иначе ты не сможешь переубедить его. Некоторые могут переубеждать и без этого, но ты — нет. Лучше не пытаться.

— Ну и как мне заставить себя его полюбить? Ты же понимаешь, не могу я вот так заставить себя испытывать теплые чувства просто потому, что это выгодно!

— Не знаю, Вебстер. Но это твой единственный шанс.

Здание института находилось в самом центре комплекса Айдриволи. Красивый величественный пятиэтажный особняк. На фронтоне было написано «Моровийский институт программирования», но над входом красовалась другая надпись, выгравированная на каменной стене:

Институт Аристотеля

Мистер Томпкинс еще раз посмотрел на фронтон, сравнил обе надписи, недоумевающе пожал плечами и вошел.

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

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

— Мистер Томпкинс. Наконец-то мы с вами встретились. Я так рад. Все столько о вас рассказывают…

— Доктор Менотти, — мистер Томпкинс высвободил наконец руку и внутренне напрягся. В горле стоял комок.

— …просто удивительные вещи! И эта ваша замечательная модель, с помощью которой можно рассчитывать скорость проекта, все в Айдриволи только об этом и говорят. Очень надеюсь, вы и меня как-нибудь в это посвятите. Совершенно неожиданный для меня подход, и очень интересный. И еще хотелось выразить свое восхищение тем, что вы смогли уговорить Белинду Бинду участвовать в проекте. Какое счастье, что такой прекрасный специалист, как она, снова в деле. Такая утрата для нашей индустрии, да и настоящая человеческая трагедия — но благодаря вам все устроилось, проблемы позади. А как вы набирали сотрудников! Да, первые несколько месяцев вам пришлось попотеть…

— Э-ээ, я тоже наслышан о вас, доктор Менотти. Генерал Марков рассказывал мне…

— Прекрасный человек, не правда ли? Люди его просто обожают, вы, наверное, уже заметили. Вот уж кто горой стоит за своих сотрудников! Да вы садитесь, садитесь, пожалуйста. Я уже послал за чаем и печеньем — сейчас принесут.

— Боюсь, что я тут по несколько неприятному делу.

— О, я в курсе. Я уже слышал про эту дурацкую проверку.

— Честно говоря, я хотел бы обсудить еще кое-что.

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

— Да, но в моем случае…

— Давайте ненадолго отложим серьезные разговоры, а? Сначала попьем чайку… а вот и чай! — в комнату вошел пожилой сотрудник в синем рабочем халате. Перед собой он катил маленький столик, на котором разместился чайник, две чашки и ваза с печеньем. — Замечательно, Марио. Да, да, поставь здесь. А теперь, мистер Томпкинс, садитесь вот тут, это самое удобное кресло. Располагайтесь, располагайтесь и расскажите же мне немного о себе. Как вам ваше новое жилище? Как наша маленькая страна?

Прошло не меньше часа, прежде чем мистер Томпкинс вернулся к злободневному вопросу. За это время он успел проникнуться уважением к своему новому знакомому. Теперь тот действительно нравился ему, поэтому он решил рискнуть.

— Просперо, — начал он, — я уверен, вы знаете, что улучшение процесса разработки положительно сказывается на производительности, но только по прошествии какого-то времени. А поначалу это будет довольно дорого стоить команде.

— Абсолютно верно, — дружелюбно согласился тот.

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

— Я бы сказал «вкладывать».

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

— Если с точки зрения данного проекта, то да, — опять кивнул директор.

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

— Конечно, Вебстер. Я знал, что вы подумали, как только секретарь доложила о вашем приходе.

— Так вы сделаете это для меня? Исключите шесть проектов из вашей программы?

Доктор Менотти улыбнулся, но улыбка получилась грустной.

— Вебстер, сроки разработки, которые вам недавно спустили сверху, все равно нереальны. Каждый в Айдриволи это знает — и программист, и менеджер, и даже секретарши. Все равно вы закончите гораздо позже, так что значат несколько месяцев? Да, ваши люди потеряют немного времени из-за нашей программы и закончат свои проекты не на восемнадцать, а на двадцать месяцев позже. Что с того? Навыки, которые получат ваши люди в результате проведения этой программы, положительно скажутся на следующих проектах. И тогда уже никто не будет устанавливать столь неразумные сроки. Попробуйте посмотреть на все с моей точки зрения…

— Да, да, Просперо, это я понимаю. Но видите ли, есть одна деталь, которая портит всю изложенную вами картину. Вы говорите, все в Айдриволи знают, что проекты невозможно закончить в срок. Так вот, на самом деле я в этом не уверен.

— Вот как!

— Да, я понимаю, что большинству проектов и близко не подобраться к той дате, которую поставил перед нами министр Бэллок, но у меня все же есть надежда, что один небольшой проект можно закончить в срок.

— И в таких обстоятельствах для вас это дело чести.

— Вроде того. Конечно, я не уверен, но мне кажется, у нас могло бы получиться.

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

Мистер Томпкинс откинулся на спинку стула. Ему только что предложили честный, хороший компромисс. И компромисс этот дался доктору Менотти нелегко, это было сразу видно. Казалось бы, элементарная порядочность требовала, чтобы мистер Томпкинс согласился на компромисс и поблагодарил директора института за участие, но нет. Ему надо защитить все проекты — и шесть основных, и все тайные команды, расположившиеся в Айдриволи-7. Даже они не могли бы успеть сделать все в срок, назначенный министром Бэллоком, однако была еще и первоначальная дата — ноябрь, — и мистер Томпкинс надеялся, что к ней проекты будут завершены. Да, придется просить большего.

— Спасибо большое, Просперо. Я понимаю, вам это предложение далось нелегко, и я искренне благодарен за него. И все же мне нужно больше. Я хочу, чтобы вы исключили из программы все шесть моих проектов и всех, кто работает в Айдриволи-7. Может быть, вы просто займетесь улучшением процесса в остальных пяти зданиях?

— Мой дорогой Вебстер, я даже не представляю себе, как я…

— Погодите, и это еще не все. Я вынужден буду просить вас не оповещать министра Бэллока об этих изменениях. Теперь все.

— Вы хотите, чтобы я исключил из программы треть всего персонала и даже не поставил руководство в известность?

— Именно.

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

В комнате повисло тяжелое молчание. Как и предсказывал Гэбриел Марков, все оказалось не так-то просто. Впрочем, просить Бэллока было абсолютно безнадежным делом. Оставалась всего одна карта, и мистер Томпкинс должен был поставить на нее все.

— Просперо, я знаю, это звучит ужасно нелепо, и тем не менее. Можно ли вас как-нибудь обойти? Решить этот вопрос, минуя вас? Я имею в виду, есть здесь кто-нибудь, кому вы подчиняетесь?

Доктор Менотти в удивлении воззрился на собеседника.

— А с чего это вы решили, что у меня есть начальник?

Мистер Томпкинс ткнул пальцем вверх.

— Тут есть еще и пятый этаж. А высшее руководство всегда занимает верхние этажи.

Доктор Менотти в задумчивости смотрел на мистера Томпкинса.

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

— Называйте свои условия.

— Монтифьоре. Мы с самого начала следим за археологическим проектом, который он возглавил. Ничего подобного у нас нет, а очень хочется. Отдайте нам Вальдо. Я сведу вас с начальником, а вы официально переведете Вальдо и его группу в наш институт. Идет?

Мистер Томпкинс радостно засмеялся.

— Конечно. С удовольствием.

— Испытываете удовольствие оттого, что теряете ценного сотрудника? — поразился директор института.

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

— Да, конечно, — кивнул с улыбкой доктор Менотти. — Я очень рад, что вы так смотрите на вещи. Рад и восхищен. Конечно же, Вальдо будет продолжать работать над теми задачами, которые вы перед ним поставили.

Мистер Томпкинс выдержал многозначительную паузу.

— Так что, Просперо? Есть там кто-нибудь, на пятом этаже?

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

— Так я его разбужу. А зовут его?…

— Аристотель Кенорос.

Как сказал доктор Менотти, к Президенту можно было входить без доклада. Никаких секретарей или телефонных звонков. У Кенороса нет ни того, ни другого.

Выслушав эти нехитрые инструкции, мистер Томпкинс пошел вверх по лестнице на пятый этаж.

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

— Мистер Кенорос? — позвал мистер Томпкинс. — Мистер Кенорос, меня зовут Вебстер Томпкинс.

— Ну наконец-то. Я уже было подумал, что вы никогда сюда не придете.

— Я…

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

— Так, а что это у нас все шторы закрыты? У нас ведь дел невпроворот! — Кенорос отдернул шторы, и мягкий вечерний свет залил все помещение. — Итак, мистер Томпкинс, руководитель всей здешней шарашки. Кажется, ему нужна помощь? И к кому же он идет? Разумеется, к Кеноросу. К кому же еще? Вот только где же он был всю прошлую неделю и весь прошлый месяц? Тогда, наверное, помощь была ему не нужна… Я сижу здесь, умирая от скуки, и жду, когда же он придет и о чем-нибудь меня попросит. И вот — свершилось. Говорите же, мистер Томпкинс: что я могу для вас сделать?

— О… э… позвольте мне для начала изложить суть дела…

— Никаких изложений. Просто скажите, что мне сделать.

Мистер Томпкинс сделал глубокий вдох.

— Ну что ж. Напишите письмо министру Бэллоку о том, что вы берете программу по улучшению процесса разработки людей из Айдриволи-1 и Айдриволи-7 под свою личную ответственность. Скажите ему, что сотрудники в этих зданиях уже находятся на третьем уровне СММ и скоро перейдут на четвертый. Поэтому вас должны оставить в покое и не вмешиваться в то, что вы делаете.

Кенорос внимательно выслушал, а потом кивнул.

— Имейте в виду, вам это будет дорого стоить, — наконец сказал он.

— Все, что хотите.

— Работу.

— Работу?!

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

— Пишите письмо, и я дам вам работу.

— По рукам.

— Сдается мне, мистер Кенорос, мы с вами быстро подружимся, — улыбнулся мистер Томпкинс.

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

— Проще не бывает.

— Что?

— Я говорю, это совсем не сложно.

— Ну, я в этом не уверен…

— Да, я буду работать со всеми восемнадцатью командами, но учить их буду одному и тому же.

— Вы уже даже знаете, чему?

— Конечно!

— Но каким образом?!

— Смотрите, вы же сами мне только что сказали, что перед всеми проектными группами поставлены невозможные или почти невозможные сроки.

— Именно так.

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

— Что-что?

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

— Интересно!

— Давайте возьмем для примера один из ваших проектов, Вебстер. Ну, например, команду Б, которая разрабатывает Quirk. Предположим, есть некоторая проблема, которую надо решить. Что-то мы упустили. Идет? Так вот, сейчас они этим не занимаются. Совсем, — для большего эффекта Кенорос сделал паузу. — Так чем же они вместо этого занимаются?

— Не знаю. Делают что-нибудь другое.

— Но не бездельничают?

— Нет, конечно.

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

— Ммм, не знаю даже…

— Представьте себе, что каждый день вы приходите и смотрите, чем занимаются ваши разработчики… скажем, по минуте в день — в три часа дня. Потом вы категоризируете свои наблюдения и делаете вывод — чем же занимаются разработчики больше всего?

— Отладкой программ, я думаю. Похоже, это самая трудоемкая часть работы.

— Вот это и есть наша задача. Надо придумать, как сэкономить время на отладке программ.

— Вы научите их, как эффективнее отлаживать программы?

— Нет, — покачал головой Кенорос, — мы будем учиться эффективно проектировать.

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

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

— Как же можно вот так взять и отменить отладку программы? — уже в который раз поражался мистер Томпкинс.

— Количество времени, которое нужно нам для отладки и исправлений, прямо пропорционально количеству ошибок, — ответил Кенорос голосом учителя, объясняющего материал недалекому ученику.

— Да, но тогда получается, что в нашей программе вообще не должно быть…

— Не должно быть ошибок. Правильно. Вы схватываете просто на лету.

— Совсем без ошибок?!

— Конечно. Вы же сами только что это сказали.

— Но как мы можем написать код без единой ошибки?

— Ну, смотрите. Вот только что вы обнаружили ошибку в одном из модулей. Где находится эта ошибка?

— В модуле.

— Нет. Она находится на границе. На самой границе модуля. Конечно, бывают и локальные ошибки, в середине модуля, но их легче всего выловить и исправить. Самые коварные ошибки, настоящие, те, которые отнимают у разработчиков массу времени и сил, относятся к интерфейсу между модулем и всей остальной программой.

— Правильно, это каждому известно. И что же?

— А то, что когда вы находите ошибку, то смотрите совершенно не туда, куда нужно.

— И куда же я смотрю? — осведомился мистер Томпкинс, поневоле раздражаясь.

— Вы смотрите внутрь модуля, в программный код.

— А куда я, по-вашему, должен смотреть?

— В проектную документацию. Там изложена вся необходимая информация об интерфейсах и взаимодействии различных модулей программы.

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

— Вот и неправильно.

— Что неправильно? Что мы не замечаем отдельные ошибки?

— Нет, неправильно, что вы пытаетесь исправлять ошибки на стадии проектирования.

— Я не могу понять — о чем это вы?

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

— Но мы всегда проектируем, прежде чем писать код, — все так делают.

— Разумеется. Только вот все занимаются этим не в то время, которое было отведено на проектирование. Скажем, в начале проекта команда создает некий документ. В этом документе есть немного философии, немного размахивания руками и надувания щек, может быть, общая структура будущей системы — вот, в общем, и все. И все это создается с одной-единственной целью: обезопасить себя от руководства, которому обязательно нужно видеть этот самый документ. Наконец начальство говорит: «Поехали». И теперь начинается самая интересная часть работы. Вся команда радостно запихивает никому не нужный документ на полку, где он пылится до окончания проекта. А вот когда они приступают к написанию кода, тут-то и начинается настоящее проектирование. Именно тогда, когда они пишут код! Вот когда принимаются решения о конкретных модулях, их поведении и интерфейсах. И вот эти решения вы уже никак не проверите.

Мистер Томпкинс только дух перевел. Ему страшно не нравилось то, к чему клонил Аристотель.

— Разумеется, низкоуровневый дизайн воплотить в жизнь куда как проще.

— Разумеется.

— Но только низкоуровневый.

— То, что вы называете высокоуровневым дизайном, на самом деле — философия и размахивание руками.

— Не знаю, не знаю… Что-то подсказывает мне, что вы почти во всем правы, и тем не менее…

— Конечно же, я прав. Низкоуровневое проектирование — единственная реальная вещь во всем проекте. А то, что столь напыщенно называют «концептуальным дизайном», на самом деле — одна показуха.

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

— Тогда вам хана, — весело улыбнулся Аристотель Кенорос.

Страницы: «« ... 56789101112 »»

Читать бесплатно другие книги:

Афанасий Карачаев найден мертвым в своей квартире. Официальное заключение о смерти указывает на серд...
Старуха Кристи – отдыхает! Жизнь иногда придумывает такие детективы, что даже самым крутым писателям...
Казалось, судьба подслушала мечту талантливого режиссера Алексея Соколовского – и осуществила. Но та...
Как круто изменилась ее жизнь! Еще год назад она была скромным сотрудником известного рекламного аге...
Он знает цену золоту, но выше ставит дружбу, а всего выше – долг перед Родиной. Верует в Господа, но...
Проснувшись в день своего тридцатилетия, Йозеф К. оказывается внутри бюрократической судебной машины...