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