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

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

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

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

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

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

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

— А! — наконец-то он все понял. — После этого мы бы применили множественную регрессию, установили соотношение между комбинациями наших примитивных данных и объемом проделанной работы.

— Совершенно верно. По крайней мере, у нас была бы хоть какая-то приблизительная формула для вычисления этого нашего «галубла» или стандартной моровийской единицы работы, или «айдриволи» — как бы захотели, так бы и назвали.

— Теперь понимаю. Да, ты абсолютно права, с этим мы вполне могли бы и сами справиться.

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

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

— Стыд и срам.

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

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

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

Она развернула мистера Томпкинса лицом к морю, и он стал смотреть, куда она велела. Смотреть было приятно. Вид ночного моря успокаивал, зеленые огоньки подрагивали вдалеке, рядом слышалось тихое дыхание Белинды. Вдруг небо пересекла длинная светлая дуга и скрылась в море.

— Ух ты!

— Видел?

— Ага.

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

Белинда укрылась легким одеялом, улеглась на спину и, заложив руки за голову, смотрела на звезды, которые просвечивали сквозь листву. Прошло несколько минут, прежде чем они снова заговорили. Казалось, Белинда просто стала думать вслух:

— Зачем это все, Вебстер? И что мы здесь делаем? Мне скоро стукнет пятьдесят, а я до сих пор не знаю, что мне с собой делать. Что нужно для жизни? Достаточно ли помочь маленькой стране третьего мира выйти на свет Божий и продавать первоклассные программные продукты? Интересная задача, никто не спорит, но достаточно ли этого, чтобы оправдать мое существование?

— А, я понимаю, о чем ты. Я тоже иногда сам о чем-то таком думаю.

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

— И мы не причиняем никому вреда, не загрязняем атмосферу, не разрабатываем оружие…

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

— Не знаю. Думаю, мы никогда этого не узнаем.

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

— Удивить? Помочь? Дать пинка? Вот в чем вопрос!

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

— А что, мне нравится такая формулировка. Каждый из нас — точка на оси координат, чью позицию определяют значения У, П и Д.

— Да-аа, сколько же в нас Микеланджело, сколько Матери Терезы, а сколько… кого?

— Мильтона Берле?

— Ну да, точно.

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

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

Сбор метрических данных

1. Определяйте размер каждого проекта.

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

3. Стройте сложные метрики на основе простых (тех, которые легко подсчитать в любом программном продукте).

4. Собирайте архивные данные, чтобы считать производительность труда по уже законченным проектам.

5. Работайте над формулами вычисления сложных синтетических метрик до тех пор, пока полученные результаты не будут наиболее точно отражать отношение абстрактных единиц к указанному в архивных данных объему работ.

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

7. Теперь для каждого нового проекта достаточно будет высчитать значение синтетической метрики и использовать ее при определении ожидаемого объема работ.

8. Не забывайте об «уровне помех» на линии производительности и используйте его, как индикатор при определении допустимых отклонений от общей траектории.

Глава 13

QuickerStill

С самого начала ВВН постановил, что продукт — аналог Quicken — будет называться QuickerStill. Название разработчикам понравилось. Естественно, все понимали, что такое имя надо оправдать 14 , поэтому требования к производительности программы изначально были очень высокими. Мистер Томпкинс не имел ничего против такого развития событий. Ему тоже понравилось имя нового продукта. Более того, ему нравилась идея делать проекты «еще быстрее», может быть, даже быстрее, чем в идиотские сроки, установленные непреклонным министром Бэллоком. Сейчас Вебстер Томпкинс уныло обернулся, чтобы посмотреть на счетчик, висевший у него за спиной: