Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему Ким Джин

«Твой следующий шаг сейчас уже должен быть очевиден, салага. Чтобы ты мог выполнить требования заказчиков, в том числе твоих приятелей-разработчиков, – говорит он, – ты должен создать то, что Хамбл и Фарли назвали конвейером развертывания. Это автоматизированный процесс, который включает в себя весь цикл – от тестирования кода до его выкатки. Ты должен наладить полный контроль версий. Следить за всем процессом. Не только контролировать сам код, но и все, что требуется для создания среды. Затем тебе нужно автоматизировать весь процесс создания среды. Тебе нужен четкий конвейер развертывания – создаешь ли ты тестовые или рабочие среды, запускаешь ли в них код или что еще. Именно так ты сможешь снизить время, требующееся на настройку и элиминацию ошибок. И так ты сможешь увеличить темп работы».

«Подожди-ка, – не совсем понимаю я. – Что именно мне нужно автоматизировать?»

Взгляд Эрика снова становится суровым. «Иди, спроси Брента. Подключи его к работе этой вашей новой команды и убедись, что он ни на что не отвлекается. Сейчас, больше чем когда-либо, пока ты не автоматизируешь весь процесс, он будет твоим бутылочным горлышком. Убери человека из процесса развертывания. И выясни, как можно осуществлять по десять выкаток в день».

Я позволяю выйти на волю своему скептицизму: «Десять выкаток в день? Я уверен, никто нас ни о чем подобном не просит. Не ставишь ли ты передо мной цель, которая превосходит нужды бизнеса?»

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

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

Стив возлагает все надежды по выживанию компании на твою способность быстро реализовывать и запускать новые возможности. Поэтому возвращайся на работу к Крису, чтобы вместе с ним выяснить, как вы можете автоматизировать процесс развертывания, и не только самого внедрения кода, но и разработки среды, в которой вы будете его внедрять!»

«Ладно-ладно, – соглашаюсь я. – Но почему ты захотел, чтобы я проделал весь этот тяжелый путь? Не лучше ли было объяснить мне все прямо там, в переговорной?»

«Ты считаешь, что IT-сопровождение является ракетой по сравнению с медленной телегой производства. Какой вздор, – презрительно говорит Эрик. – С моей точки зрения, люди в этом здании намного более креативны и храбры, чем все, что я видел у вас там в IT-отделе».

Глава 31

От невероятного к возможному

3 ноября, понедельник

Уже 12:13, когда я захожу в комнату, где заседает наша команда. Мои волосы и рубашка промокли до нитки, пока мы ехали обратно в кабриолете Эрика.

Крис говорит: «…и поэтому Стив организовал эту небольшую команду, чтобы мы могли повысить показатели всей компании и сделали все, что возможно, чтобы оказать позитивное влияние в подарочный сезон продаж».

Крис оборачивается ко мне и показывает на другой конец комнаты: «Я заказал ланч для всех. Не стесняйся; и, подожди, что с тобой случилось?»

Я отмахиваюсь от его вопроса. Глядя, куда он показывает, я приятно удивлен, увидев сэндвичи с индейкой.

Хватая бутерброд, занимаю свое место и пытаюсь угадать, какие настроения у всех присутствующих, особенно у Брента.

Брент тем временем спрашивает: «Можете еще раз объяснить, почему я здесь?»

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

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

К моему удивлению, Крис начинает свирепеть: «Что?! Зачем, ради всего святого, нам понадобится реализовывать по десять выкаток в день?! Наши самые короткие интервалы на сегодня – три недели. Нам просто нечего внедрять по десять раз в день!»

Патти качает головой: «Ты уверен? А как насчет фиксации багов? Как насчет повышения качества работы сайта, когда он стопорится, вроде как при последних двух выкатках? Не хотелось бы тебе осуществлять эти изменения в продукции на постоянной основе, а не ломая все правила, пытаясь что-то исправить в срочном порядке?»

Крис раздумывает пару минут, прежде чем ответить. «Интересно. Я бы назвал такого рода меры патчами или релизами низшего порядка. Но ты права – это тоже настоящие внедрения. И было бы очень здорово, если бы мы могли фиксировать сбои быстрее, но десять выкаток в день?»

Размышляя о том, что сказал Эрик, я добавляю: «Как насчет того, чтобы маркетинг мог запускать свои изменения в наш контент быстрее или проводить разного рода эксперименты, а также осуществлять А/B-тестирования, чтобы увидеть, какое предложение работает лучше?»

Вэс кладет обе руки на стол: «Послушайте, что я вам скажу, народ. То, о чем вы говорите, просто невозможно сделать. Мы здесь имеем дело с законами физики. Подумайте, сколько времени это занимает сейчас: требуется, по крайней мере, неделя подготовки и больше восьми часов на саму выкатку!»

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

Вэс чешет голову несколько мгновений и говорит: «Что ты думаешь, Брент? Я бы сказал, что порядка сотни шагов…»

«Серьезно? – отвечает Брент. – Я считаю, что скорее двадцать шагов».

Уильям встревает: «Я не уверен, где вы начинаете считать, но если мы начнем с того момента, когда разработчики создают код и мы помечаем его как «кандидат на релиз», я бы говорил о сотне шагов – то есть еще до того, как мы передаем все в IT-сопровождение».

Ох.

Вэс прерывает его: «Нет-нет-нет. Билл говорил «шаги внедрения». Давайте не будем копать глубже…»

Тем временем я думаю о том, что Эрик советовал мне мыслить как управляющий производством, а не как руководитель производственного участка. Внезапно я понимаю: возможно, он имел в виду, что я должен разрушить границы между разработчиками и IT-сопровождением.

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

Он кивает, подходит к доске и начинает рисовать прямоугольники, рассказывая о шаах по мере продвижения. В следующие десять минут Уильям доказывает, что в работе около сотни шагов, включая автоматические тесты в среде разработки; создание среды для контроля качества, которая подходит для разработчиков; запуск кода внутри нее; прохождение всех тестов, внедрение и перенос его в среду, которая подходит для группы контроля качества; нагрузочное тестирование и, в конце концов, дело переходит к отделу IT-сопровождения.

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

Я подаю знак Бренту и Вэсу, что один из них должен продолжить с того места, где закончил Уильям.

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

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

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

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

Я не могу дождаться, чтобы рассказать о своем открытии Эрику.

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

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

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

Я не думал, что так будет, но к концу моей речи практически все фигуры и Уильяма, и Брента в красных звездах.

Оборачиваясь, я вижу разочарованные лица своих сотрудников, осознавших случившееся. Понимая свою возможную ошибку, я торопливо добавляю: «Слушайте, у меня нет цели винить кого-то из вас или говорить, что мы дерьмово работаем. Я лишь пытаюсь разобраться с нашей проблемой. Давайте попробуем решить ее как команда, а не обвинять друг друга, ладно?»

Патти говорит: «Ты знаешь, происходящее напоминает мне увиденное у ребят на производстве – они делают так все время. Если бы кто-то из них сейчас зашел внутрь, то я уверена, они бы подумали, что мы строим «карту потока создания ценности». Не против, если я добавлю пару элементов?»

Я отдаю ей маркер и сажусь на свое место.

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

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

Внезапно я понимаю, что Эрик имел в виду, когда говорил о «конвейере развертывания». Даже если наша работа и не выглядит как заводское производство, это все равно поток создания ценностей.

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

После того как Патти заканчивает отмечать длительность шагов, она перерисовывает схемы, используя сокращенные названия конкретных шагов. На другой доске Патти записывает ключевые моменты: «среды» и «развертывания».

Указывая на то, что только что написала, она говорит: «В текущем процессе перед нами стоят две проблемы: на каждом шаге среды почти всегда не доступны, когда они нам нужны, а когда они все же доступны, требуется проделать значительную работу, чтобы синхронизировать их между собой. Правильно?»

Вэс фыркает, говоря: «Не жди, что мы будем тебе рукоплескать за утверждение чего-то настолько очевидного, но ты права».

Она продолжает: «Другой очевидный источник незапланированной работы и долгого времени развертывания – в процессе выкатки кода, когда отдел IT-сопровождения получает то, что нам передает отдел разработки, осуществляет контроль версии кода и затем создает пакеты для развертывания. Хотя Крис и его команда стараются изо всех сил документировать код и конфигурацию, что-то всегда ускользает и обнаруживается, только когда весь код стопорится в рабочей среде уже после запуска. Верно?»

В этот раз Вэс не отвечает сразу. Брент опережает его, говоря: «Ты все верно ухватила. Уильям может подробнее рассказать об этих проблемах: инструкции по релизу никогда не соответствуют последней версии, поэтому мы всегда долго разбираемся, пытаясь докопаться до истины, переписываем скрипты для инсталляции и снова и снова все инсталлируем…»

«Все так», – соглашается Уильям, решительно кивая.

«В таком случае я бы предложила нам сфокусироваться на этих двух зонах, – глядя на доску, делает вывод Патти и возвращаясь на свое место. – Идеи?»

Брент говорит: «Вероятно, мы с Уильямом можем поработать вместе, чтобы составить инструкцию по развертыванию, которая позволит исправить все наши ошибки?»

Я киваю, слушая идеи, но ни одна из них не кажется каким-то невероятным озарением, которое нам так нужно. Эрик описывал сокращение времени наладки для процесса штамповки капотов. Он, кажется, пытался показать, что это очень важно. Но почему?

«Заставлять каждую группу совместно создавать среду – это, очевидно, нерабочий прием. Что бы мы ни делали, от нас требуется нечто большее, чем цель в «десять развертываний в день», – рассуждаю я. – Следовательно, нам нужно значительно автоматизировать все наши процессы. Брент, мы сумеем спроектировать общий процесс организации сред, чтобы мы могли одновременно получать среды для разработчиков, контроля качества и рабочие среды, и поддерживать их в синхронном состоянии?»

«Интересная идея, – отвечает Брент, смотря на доску. Он встает и рисует три прямоугольника, названные «Разработка», «Контроль качества» и «Рабочая». А затем снизу от них он рисует еще один, озаглавленный «Процедура построения» со стрелками к каждому из вышерасположенных окошек.

«Твоя идея на самом деле просто превосходна, Билл, – говорит он. – Если у нас будет общая процедура построения и все станут использовать одни и те же инструменты для создания своих сред, разработчики начнут писать код, который по крайней мере будет соответствовать итоговой рабочей среде. Одно это само по себе будет огромным улучшением».

Он вытаскивает изо рта колпачок от маркера. «Чтобы построить среду для «Феникса», мы используем несколько нами же написанных скриптов. С толикой документации и порядка готов поспорить, мы сможем сотворить нечто полезное и вполне удобоваримое за пару дней».

Я оборачиваюсь к Крису: «Выглядит многообещающе. Если бы мы могли стандартизировать среды и запустить такой стандартный процесс во всех трех отделах – у разработчиков, у тестировщиков и в IT-сопровождении, – мы были бы в состоянии снизить количество проблем в процессе развертывания».

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

Брент широко улыбается услышанному предложению. Прежде чем Вэс может ответить, я говорю: «Полностью согласен. Но прежде чем мы пойдем дальше, можем мы изучить другие проблемы, которые подметила Патти? Даже если мы примем предложения Криса, все еще будут сложности со скриптами развертывания. Если бы у нас была волшебная палочка и если бы у нас существовала обновленная тестовая среда, как бы мы должны были внедрять код? Каждый раз, когда мы это делаем, мы пересылаем туда-сюда коды, скрипты и кто знает, сколько всего еще, между группами».

Патти встревает: «На производстве, если мы видим, что работа идет в обратном направлении, это доработка. Когда подобное происходит, можете быть уверены, количество документации и информации будет довольно мало и, следовательно, данные процессы нельзя будет воспроизвести. И значит, со временем все станет еще хуже. Они называют это действиями, «не добавляющими ценности» или «тратой времени». – Глядя на первую доску, она продолжает: – Если мы перестроим процесс, нам нужно, чтобы на самых начальных этапах в него были вовлечены правильные люди. Их можно сравнить с группой инженеров на производстве, которая в состоянии убедиться, что все детали спроектированы таким образом, что они оптимизированы для производства и что производственные линии оптимизированы для таких деталей, и в идеале мы имеем однонаправленный поток работы».

Я киваю, улыбаясь сходству между словами Патти и рекомендациями Эрика.

Оборачиваясь к Уильяму и Бренту, я говорю: «Ладно, ребята, волшебная палочка у вас в руках. Вы на передней линии. Скажите мне, как бы вы организовали ход работы, чтобы она никогда не двигалась в обратном направлении, а, наоборот, текла вперед быстро и эффективно?»

Когда они оба несколько затравленно смотрят на меня, я выразительно произношу: «У вас есть волшебная палочка. Используйте ее!»

«Насколько могущественная палочка?» – уточняет Уильям.

Я повторяю ранее сказанное Мэгги. «Это очень могущественная волшебная палочка. Может сделать все что угодно».

Уильям подходит к доске и указывает на окошко, в котором написано «Принятый код». «Если бы я мог взмахнуть такой палочкой, я бы изменил вот здесь. Вместо того чтобы получать исходный код или скомпилированный код от разработчиков, я бы хотел получать пакет с кодом, который был бы готов к развертыванию.

И знаете, – продолжает он. – Я настолько этого хочу, что я добровольно возьму на себя ответственность по созданию этого пакета. У меня на примете есть подходящий человек, она будет ответственна за передачу кода от разработчиков. Когда он получит статус «готов к тестированию», мы будем генерировать пакет с кодом, который будет пусковым сигналом для автоматизированного запуска в тестовую среду. А позже, возможно, и для рабочей среды тоже».

«Ого. Ты действительно можешь это сделать? – спрашивает Вэс. – Было бы просто невероятно! Давай сделаем, я надеюсь, Брент не против?»

«Ты шутишь? – спрашивает Брент, начиная хохотать. – Да я бы угощал любыми напитками целый год того, у кого бы получилось такое! Мне очень нравится идея. И я хочу помочь создать новые инструменты развертывания. Как я уже сказал, есть несколько инструментов, которые я уже написал, и которые можно использовать для начала».

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

Внезапно Патти поднимает голову и говорит: «Подождите-ка секунду. «Феникс» имеет дело с данными наших клиентов, которые нужно защищать. Может быть, нужно чтобы кто-то из команды Джона присоединился к нам?»

Мы смотрим друг на друга, соглашаясь, что его определенно нужно привлечь.

И снова я удивляюсь тому, как много нам удалось изменить в этой компании.

Глава 32

Проект «Единорог»

10 ноября, понедельник

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

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

Мои ребята хотели назвать его «куджо» или «кинжал». но разработчики настаивали на «единороге». Единорог? Который с радугами и заботливыми мишками?

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

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

Я знаю, что верить в стереотипы о профессии нехорошо. Я знаю, что команде нужны самые разнообразные навыки, если мы хотим добиться успеха. Вопрос в том, как все устроить, чтобы мы могли все вместе работать ради общей цели. Первая сложность – придумать название проекту оперативной команды. Мы не могли называть его «Мини-«Феникс», поэтому в итоге потратили час, обсуждая разные имена.

Мои ребята хотели назвать его «Куджо» или «Кинжал». Но разработчики настаивали на «Единороге».

Единорог? Который с радугами и заботливыми мишками?

Но вопреки всем моим ожиданиям, «Единорог» победил в голосовании.

Разработчики. Никогда их не пойму.

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

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

Несмотря на то что вся компания в это время уже могла вылететь из бизнеса, разработчики и Брент решили создать абсолютно новую базу данных, используя доступные инструменты, в которую данные копировались бы не только из «Феникса», но и из системы ввода заказов и из систем контроля учета.

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

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

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

«Просто невероятно, – сказал один из разработчиков на одной из ретроспективных встреч. – В случае с «Фениксом» требовалось три или четыре недели, чтобы все необходимое заработало на машинах новых в проекте людей, потому что у нас никогда не было полного списка всего, что нужно установить. А теперь все, что нам нужно сделать, – это проверить виртуальную машину, которую создали Брент и команда, и все – ты готов к работе».

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

Автоматизированные развертывания кода все еще не работали, то же и с перемещением кода между средами, но команда Уильяма достаточно много занималась этими возможностями, и мы пребывали в уверенности, что скоро и они будут запущены.

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

Из-за столь быстрого прогресса мы решили сократить наши короткие плановые периоды до двух недель. Таким образом мы смогли чаще обсуждать наши дела и принимать различные решения.

«Феникс» продолжает следовать плану, написанному три года назад. Я стараюсь не думать о том, что это уже слишком.

Кажется, что наш прогресс растет экспоненциально. Мы планируем и реализуем решения быстрее, чем когда-либо, и разрыв в скорости между «Единорогом» и «Фениксом» становится все больше. Команды, занятые «Фениксом», берут наши новые методы на заметку и используют их, что даже там позволяет получить результаты, которые, как мы полагали, невозможны.

«Единорога», похоже, уже не остановить, и он живет своей жизнью. Сомневаюсь, что мы смогли бы прервать работу всех этих людей и вернуть их на старый путь, даже если бы захотели.

Я сижу на встрече по бюджету. Звонит Вэс: «У нас большая проблема».

Выходя из комнаты, я говорю: «В чем дело?»

«Последние два дня никто не может найти Брента. Не знаешь, где он может быть?» – спрашивает он.

«Нет, – отвечаю. – Подожди, что значит вы не можете его найти? Он в порядке? Вы звонили ему на мобильный, так ведь?»

Вэс и не пытается скрыть раздражения. «Ну, конечно, я звонил ему на мобильный! Я оставляю ему сообщения на голосовой почте каждый час. Все пытаются его разыскать. У нас работы немерено, а члены его команды начали – черт, это Брент звонит… Не вешай трубку…»

Я слышу, как он берет городской телефон, с раздражением говоря: «Где тебя черти носят? Все тебя ищут! Нет… нет… Де-Мойн? Что ты там делаешь? Никто мне не сказал… Секретная миссия для Дика и Сары? Что за дерьмо…»

Я удивленно слушаю его разговор, пока Вэс пытается докопаться до правды. В конце концов, я слышу, как он произносит: «Подожди секунду. Нужно узнать, что Билл решит делать…» – и он снова берет мобильный.

«Так, ты, наверное, слышал частично, да?» – спрашивает он меня.

«Скажи ему, что я перезвоню прямо сейчас».

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

«Привет, Билл», – раздается его голос.

«Тебя не затруднит объяснить мне, что происходит и почему ты в Де-Мойне?» – говорю я вежливо.

«Никто от Дика не предупреждал тебя? – удивляется он. Когда я ничего не отвечаю, он продолжает: – Дик и команда финансового отдела поймали меня у дверей вчера с утра и заставили стать частью команды по разработке плана, посвященного разделению компании. Вероятно, это топ-приоритет, и они хотели выяснить, каковы будут последствия для IT-систем».

«А почему Дик включил тебя в команду?» – спрашиваю я.

«Я не знаю, – отвечает он. – Поверь мне, я совсем не хочу здесь быть. Я ненавижу самолеты. На моем месте должен быть один из бизнес-аналитиков, но, возможно, они запрягли меня, потому что я знаю, как большая часть систем связана между собой, к чему они относятся, какие сервисы от них зависят… Кстати говоря, уже сейчас могу тебе сказать, что разделение компании станет сущим ночным кошмаром».

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

Если оно затронет каждое из сотни приложений, которые мы поддерживаем, Брент вероятнее всего прав. Нам потребуются годы.

IT-системы повсюду, это не просто как отрезать какую-то деталь. Скорее похоже на отделение нервной системы от тела компании.

Вспомнив, что Дик и Сара отобрали моего ключевого сотрудника, даже не спросив меня, я настойчиво говорю: «Брент, слушай внимательно: твой самый главный приоритет – выяснить, что нужно твоим коллегам по проекту «Единорог», и дать им необходимое. Я сделаю несколько звонков, но думаю, что моя ассистентка Элен забронирует тебе билет на обратный рейс сегодня вечером. Ты понимаешь?»

«Ты хочешь, чтобы я вернулся», – констатирует он.

«Да».

«А что скажут Дик и Сара?»

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

«Ладно… – говорит Брент. – Что происходит?»

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

Брент отвечает нерешительно: «Ладно. Просто скажи мне, куда ехать, и я приеду. Только сам разбирайся с последствиями», – он определенно раздражен запутанностью ситуации.

Но точно не так раздражен, как я.

Я звоню ассистентке Стива, Стэйси, и говорю ей, что я уже в пути.

Заходя в здание № 2, чтобы найти Стива, я звоню Вэсу.

«Что ты сделал?.. – хихикает он. – Просто великолепно. Теперь ты в центре политической борьбы со Стивом на одной стороне и Диком и Сарой на другой. И, что обидно, я не уверен, правильную ли сторону я выбрал, – спустя мгновение он добавляет: – Ты правда думаешь, что Стив поддержит нас в этой ситуации и не даст задний ход?»

Я подавляю вздох. «Надеюсь на него. Если мы не получим обратно Брента, «Единорог» потонет. И это, скорее всего, значит, что мы получим нового генерального директора, нас отправят на аутсорс и уж точно заставят разбираться с тем, как разделить компанию. Дерьмовая работенка, как считаешь?»

Я кладу трубку и захожу в офис Стива. Он улыбается и говорит: «Доброе утро. Стэйси сказала, у тебя для меня плохие новости». Рассказываю ему, что я выяснил во время телефонного разговора с Брентом, и вижу, как его лицо становится абсолютно багровым. А казалось бы, Стив должен быть в курсе, все-таки он – генеральный директор компании.

Очевидно, нет.

Спустя некоторое время Стив, в конце концов, произносит: «Правление уверило меня, что они не будут рассматривать вариант разделения компании, пока мы не получим квартальные цифры. Видимо, они потеряли терпение. Так какое влияние окажет на «Единорога» уход Брента?»

«Я разговаривал с Крисом, Вэсом и Патти, – отвечаю я. – Проект просто потонет. От природы я – скептик, тем не менее, я считаю, что «Единорог» может сработать. Более того, многое из того, что мы придумываем и реализуем в нем, начинает использовать и команда «Феникса», получая отличные результаты. – Чтобы подчеркнуть свою точку зрения, я говорю: – Без Брента мы не сможем осуществить те цели по продажам и прибыли, которые возложили на «Единорога». Никаких шансов».

Поджимая губы, Стив спрашивает: «А что случится, если ты заменишь Брента не менее способным парнем?»

Я рассказываю Стиву то, что мне говорил Вэс, и теперь я и сам так думаю. «Брент уникален. Для «Феникса» нужен кто-то, кого уважают разработчики, кто имеет большой опыт взаимодействия со всей нашей IT-инфраструктурой и может описать ее им, чтобы мы могли реально воплотить результаты их работы в жизнь. Подобные навыки – редкость, и у нас нет больше никого, кто мог бы прямо сейчас играть такую роль».

«А что будет, если ты отправишь другого сотрудника на задание Дика?» – спрашивает он.

«Думаю, что возможно результаты исследования будут не настолько точными, но в целом он справится не хуже», – отвечаю я.

Стив откидывается на стуле и какое-то время молчит.

В конце концов он произносит: «Возвращай Брента сюда. Я разберусь с остальным».

Глава 33

Показатели растут

11 ноября, вторник

На следующий день Брент вернулся к «Единорогу», а один из инженеров третьей линии присоединился к команде Дика где-то на снежном Среднем Западе. Через несколько часов я получаю письмо от Сары.

От кого: Сара Молтон

Кому: Боб Штраусс

Копия: Дик Лондри, Стив Мастерс, Билл Палмер

Дата: 11 ноября, 7:24

Тема: Кто-то недооценивает проект Талон

Боб, я узнала, что Билл Палмер, действующий вице-президент отдела IT-сопровождения, украл критически важного сотрудника с проекта Талон.

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

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

Сара

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

На очередной ежедневной встрече по поводу «Единорога» Уильям выглядит расстроенным.

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

В комнате слышатся ворчание и вздохи.

Один из разработчиков говорит: «Не можем ли мы использовать здесь грубую физическую силу? Просто подключить к процессу больше жестких дисков. С достаточным количеством серверов мы сможем сократить время работы кода».

«Ты издеваешься? – отвечает ему Вэс с раздражением. – У нас есть бюджет лишь на двадцать быстрейших серверов, которые мы смогли найти. Тебе понадобятся тысячи серверов, чтобы сократить время до нужного нам. Это больше одного миллиона долларов внебюджетных средств!»

Я поджимаю губы. Вэс прав. «Феникс» и так выходит за рамки бюджета, а мы обсуждаем огромную сумму денег. Учитывая все финансовые обстоятельства, получить ее просто невозможно.

«Нам не нужно никакое новое оборудование, – встревает один из разработчиков. – Мы потратили много усилий, создавая образы программ, которыми мы сможем полноценно пользоваться. Почему не отправить их в облако? Мы могли бы запускать одновременно сотни или тысячи работающих копий программы, если они нам понадобятся, и выключать их, когда закончим, оплачивая лишь время пользования».

Вэс смотрит на Брента, тот говорит: «Это возможно. Мы уже используем виртуализацию для большей части наших сред. Должно быть, не очень сложно конвертировать их так, чтобы они работали на облачном сервисе нашего провайдера».

После паузы он добавляет: «Знаете, это будет весело. Я всегда хотел попробовать что-нибудь подобное.

Радостное воодушевление Брента заразно.

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

Мэгги, которая настолько заинтересовалась «Единорогом», что постоянно присутствует на наших встречах, вызывается добровольцем для изучения цен на такие услуги и обещает позвонить своим приятелям (нашим коллегам), чтобы узнать, делали ли они такое раньше и возможно получить у них какие-либо рекомендации.

Один из инженеров по безопасности из отдела Джона прерывает нас: «Отправление данных наших клиентов на облачный сервер может быть связано с некоторыми рисками вроде случайного разглашения персональных данных или неавторизованного пользователя, который получит доступ к вычислительным серверам».

«Это верно, – отвечаю я. – Ты можешь составить список топ-рисков, о которых нам нужно подумать, и подготовить перечень потенциальных контрмер и средств контроля?»

Он улыбается в ответ. Один из разработчиков вызывается поработать вместе с ним.

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

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

Неделю спустя, снова на совещании. Вся команда «Единорога» собралась в одном месте. Это завершение очередного периода, и лидер разработчиков жаждет продемонстрировать, чего достигла команда.

«Я с трудом могу поверить в то, как много мы сумели сделать, – начинает он. – Благодаря автоматизации процессов развертывания перенести вычислительные программы в облако было не так сложно. На самом деле все так хорошо работает, что мы рассматриваем вариант превратить внутренние рабочие среды в тестовые и использовать облачный сервер для наших рабочих сред.

Мы начинали формировать отчеты каждый вечер и запускали сотни вычислительных операций. Когда отчеты были готовы, мы останавливали процесс. Это продолжалось последние четыре дня, и все работает хорошо – правда хорошо».

У Брента на лице широкая улыбка, как и у остальных членов команды.

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

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

Я улыбаюсь. Теперь все и правда прекрасно.

«А вот промпредложение для Вэса, – улыбается она, переходя к следующему слайду. – Кажется, что для тебя есть скидка на тормозные диски и топливные присадки. Это тебе интересно?»

Вэс тоже отвечает ей улыбкой: «Неплохо!»

Мэгги объясняет, что все подобные предложения формируются в системе «Феникса», и они лишь ждут, чтобы клиенты наконец смогли ими воспользоваться.

Она продолжает: «Вот мое предложение: я бы хотела устроить e-mail рассылку для одного процента наших клиентов и посмотреть, что случится. День Благодарения через неделю. Если мы проведем пару испытаний и все пойдет хорошо, то на Черную Пятницу мы запустим полную акцию, а ведь это самый горячий день покупок в году».

«Звучит хорошо, – откликаюсь я. – Вэс, есть возражения?»

Вэс качает головой. «С точки зрения отдела IT-сопровождения не могу придумать ни одного довода против. Вся тяжелая работа уже была проделана. Если Крис, Уильям и маркетинг уверены, что код работает, я голосую за».

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

Я улыбаюсь. Хоть раз наше ночное бдение не будет связано с какими-то проблемами. И даже наоборот. Люди останутся работать всю ночь, потому что все идет как надо.

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

Зайдя в свой кабинет, я скидываю тяжелое пальто на стул. И оборачиваюсь, когда слышу, как Патти заходит ко мне, широко улыбаясь: «Ты слышал эти удивительные новости от отдела маркетинга?»

Когда я качаю головой, она нетерпеливо говорит: «Прочитай письмо, которое прислала Мэгги».

Я открываю свой ноутбук и читаю:

От кого: Мэгги Ли

Кому: Крис Аллерс, Билл Палмер

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

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

Профессиональный психолог и коуч Денис Чернаков впервые делится с читателями самыми современными пси...
Свой читатель появился у Саши Филипенко сразу — после успеха «Бывшего сына» и двух следующих романов...
Новая книга от автора бестселлера «Короче, Склифосовский»! Редкий сплав медицинского детектива с суд...
Эта книга - доводы для атеистов, объяснение веры в Бога, карму, астрологию. Также вам откроются тайн...
Аня поступила в школу. Ей там нравится. Добрые учителя. Никаких расследований. Тьфу ты. Накаркала....
Красавица Оланна из богатой семьи никогда не отличалась дерзостью, как ее сестра-двойняшка Кайнене, ...