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