Проект «Феникс». Роман о том, как DevOps меняет би - Страница 105


К оглавлению

105

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

105