Глава 12
Человек, который умел считать
После того, как министр Бэллок подверг все проекты жесткой критике, большую часть дня мистер Томпкинс, Белинда и генерал Марков проводили, собеседуя новый персонал. Впрочем, теперь работа шла быстрее, потому что им помогали оставшиеся не у дел двенадцать менеджеров команд Б и В. Решено было разбиться на три группы и отобрать лучших программистов из «резерва» генерала Маркова. К сожалению, самые лучшие уже были отобраны в январе и феврале и теперь оказались в шести «суперкомандах».
Все эти команды стали чересчур большими, в этом ни у кого не было ни малейшего сомнения. Провал становился неизбежным. Впрочем, это еще не означало, что провальными проектами не надо руководить. На организационной диаграмме квадратик с именем мистера Томпкинса все так же увенчивал структуру из шести подчинявшихся ему напрямую руководителей команд А и генерала Маркова. Иначе говоря, с этой точки зрения мало что изменилось. Как и раньше, каждый из шести руководителей проектов управлял тремя командами — объединенной командой А и вновь созданными командами В и С Теперь, когда все команды были укомплектованы, у мистера Томпкинса опять было восемнадцать независимых проектов.
Сам мистер Томпкинс и команды А работали в самом большом и престижном здании — Айдриволи-1. Остальные команды укрылись в помещениях, которые экс-генерал отвел им в здании Айдриволи-7.
После неожиданного отъезда Лаксы прошло уже три недели, и вот мистер Томпкинс обнаружил в утренней почте открытку. На открытке была заснята группа студентов, столпившихся вокруг уличных музыкантов. Место, где играли музыканты, мистер Томпкинс узнал сразу — Гарвардская площадь. Открытка была написана легко и весело, как и все, что писала Лакса.
Мой дорогой Вебстер, набрела в Массачусетсе на очаровательную небольшую компанию.
Они занимаются измерением. Меряют все, что угодно, но самое главное — программные продукты. У них есть своя собственная методика, и они могут точно определить размеры любого приложения. Мера, которую они используют, называется «функциональные единицы». Разумеется, я сразу подумала о тебе и твоих проектах. Вскоре один из их консультантов — мистер Т. Джонс Капорус — нанесет вам визит.
Всего-всего наилучшего,
Лакса.
А еще через несколько дней мистер Томпкинс получил факс, в котором говорилось, что мистер Т. Джонс Капорус прилетает в Моровию на следующее утро. Как только самолет приземлился, по трапу сбежал молодой человек весьма доброжелательного вида. Глаза его горели, а внутренние часы, казалось, шли как минимум в два раза быстрее, чем у обычных людей. Говорил он тоже в два раза быстрее, чем любой из тех, с кем мистеру Томпкинсу когда-либо доводилось беседовать. Слова вылетали из него, как пули из скорострельного пулемета:
— Так сколько же в Моровии программистов? — спросил он мистера Томпкинса, когда они сели в машину.
— Э-э, по правде говоря, я точно не знаю…
— Две тысячи восемьсот шестьдесят один — на 1 января нынешнего года. А сколько в этой стране компьютеров, вам известно?
— Мммм…
— Всего-навсего чуть более трех тысяч, из них тридцать шесть процентов — «Макинтоши», пятьдесят пять процентов — работают под Windows, около восьми процентов — Unix, остального понемногу. Двадцать интернет-серверов. Сто шестьдесят наладонных компьютеров, несколько устаревших вычислительных машин, но эти в основном у военных.
— Ого!
— Никогда не бывал в Моровии, — весело улыбнулся консультант. — Как здесь живется?
— Неплохо.
— Средняя дневная температура 78° по Фаренгейту, это будет… это будет… 25,6° по Цельсию. Средняя годовая норма осадков 66,8 дюймов… а значит… значит, здесь должны делать неплохое вино!
— И, разумеется, этого вина довольно много — почти пятьдесят восемь миллионов литров в год. Это столько же, сколько потребляют штаты Новая Англия, Нью-Йорк и Пенсильвания, вместе взятые. Впрочем, в северо-восточных штатах употребляют не так уж много вина. Всего около четырех и двух десятых литров на человека в год. Импортируют, кстати, тоже не очень много — не более тридцати восьми процентов.
У мистера Томпкинса уже голова кругом пошла, поэтому он ограничился кивком.
Еще через четыре с половиной часа Т. Джонс Капорус опять был в аэропорту — в Моровию он прилетел из Анкары, а из Моровии направлялся в Хельсинки, потом в Дублин, потом куда-то в Южную Америку. Таким был его нынешний маршрут.
Кабинет мистера Томпкинса выглядел так, как будто по нему прошелся хороший торнадо: везде валялись открытые книги, отчеты и листки бумаги, исписанные вдоль и поперек всевозможными вычислениями. Доска для записей тоже была заполнена до краев. Мистер Томпкинс, как в тумане, пытался собрать все важные записи и сделать на них необходимые пометки, но, похоже, эта работа была невыполнима. Да, такое утро запомнится надолго. В углу, на раскладном кресле, растянулся экс-генерал Марков. Он был ошарашен настолько, что даже не делал попыток помочь мистеру Томпкинсу разобраться с бумагами.
Впрочем, состояние мистера Томпкинса можно было описать тем же словом. Сделать столько всего в одно утро! Он едва ли сам мог в это поверить. М-да, повторить сей подвиг он решился бы только при условии, что ему предоставят долгий отпуск для того, чтобы прийти в себя. Тем не менее, каким бы суетливым и суматошным ни было это утро, у них на руках теперь был листок бумаги, исписанный торопливыми каракулями Т. Джонса Капоруса. Табличка из двух столбцов, где в первом стояло название продукта, а во втором — его размер в функциональных единицах. Это и были размеры каждого из разрабатываемых программных продуктов.
Продукт — Размер
Notate — 3000 функц.ед.
PMill — 2200 функц.ед.
Paint-It — 3800 функц.ед.
PShop — 6500 функц.ед.
Quirk — 3200 функц.ед.
QuickcrStill — 1500 функц.ед.
— Привет, мальчики, — в комнату вошла Белинда Бинда, которая не присутствовала на утренней встрече с консультантом, — Ух ты, похоже, вы неплохо пропели утро. У тебя в кабинете бомба взорвалась, а, Вебстер?
— Да. Некто Т. Джонс Капорус.
— Вот это да! Я слыхала о нем. Говорят, прервать его так же трудно, как остановить лавину.
Мистер Томпкинс и бывший генерал только устало кивнули.
— А что такое «функциональная единица»? — Белинда взяла в руки табличку с измерениями. — Погодите, не отвечайте. — Еще через минугу она повернулась к ним, глаза сияли. — Превосходно! Гэбриел, Вебстер, вы хоть понимаете, что здесь написано? Это же замечательно!
Генерал Марков покачал головой:
— Кажется, это довольно полезная штука. Наверное, ее где-то можно использовать… Но вот где и как…
Белинда просто прыгала от восторга.
— Нет, это же чудесно, замечательно, восхитительно! Только подумайте, как эти данные накладываются на модели, которые мы с вами рисовали! Вот тут мы с вами изображали поток работы, — она подошла к стене, на которой висела диаграмма, — но что конкретно перетекает из одного резервуара в другой? И что в них находится?
— Не знаю, — пожал плечами мистер Томпкинс, — что-то вроде «сделанности» или «готовности».
— Ну да, — подхватил экс-генерал, — какая-то абстрактная величина, которой мы измеряем работу.
— Да нет же, ничего вы не понимаете! Там находятся эти самые функциональные единицы. Смотрите сюда.
Белинда перевернула листок с таблицей и стала быстро чертить на обратной стороне.
— Любой проект можно paccматривать вот таким образом. По сути, проект — это клапан, — Белинда указала кончиком ручки на клапан посередине диаграммы, которую только что нарисовала. — Слева у нас резервуар, где находится продукт, который мы начинем разрабатывать. Справа — резервуар с готовым продуктом. В самом начале правый резервуар пуст, потому что мы еще ничего не сделали. А левый поначалу полон до отказа этими самыми функциональными единицами. Сколько их там? Давайте посмотрим — она снова перевернула листок, чтобы посмотреть на цифры, которые оставил после себя Капорус. — Вот, пожалуйста, к примеру пусть это будут три тысячи функциональных единиц проекта Notes — И Белинда написала эту цифру у левого резервуара.
— Далее давайте разобьем на составляющие суть работы нашего клапана — проекта. Нужно смоделировать процесс, учитывая деление программистов на команды, давление со стороны, сжатые сроки, уровень профессиональной подготовки, возможные отклонения от графика… в общем, кучу вещей. Все это мы моделируем в виде работы нижних труб, клапанов и резервуаров. И когда все это будет сделано, и мы запустим готовую модель, то функциональные единицы из левого резервуара начнут постепенно перетекать в правый через вот эту систему труб и клапанов. Проект можно считать завершенным, когда все функциональные единицы из левого резервуара окажутся в правом.