Зачем выкатывать обновления каждый день

Эксперт рассказывает, какие тренды сейчас актуальны в разработке продуктов
4 минуты25676

Эта статья ― лишь небольшая часть того, что Сергей Артюхов рассказал в интервью для нашего проекта GeekSpeak, доступного только студентам платных программ GeekBrains.
 

Сергей Артюхов ― консультант по организационным изменениям. Занимается всем, что связано с производственным процессом: как работают «айтишники», как настроены CI/CD-процессы, как нововведения доходят до пользователей. Его главные навыки ― анализ, оптимизация и организация работы внутри этого процесса. Работал в Сбербанке, М.Видео, КРОК и других крупных компаниях. 

Почему между заказчиком и исполнителем теряется информация

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

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

Зачем надо выкатывать обновления ежедневно

Основной тренд, который наблюдается приблизительно с 2016 го года — это переход на так называемые Agile-рельсы. Это когда мы не пытаемся сделать большой объем в годовом или полугодовом цикле, а хотим делать что-то каждые n-недель. В индустрии сложилась практика, что этот период — две недели. Но не обязательно. У меня были команды, которые работали и каждую неделю что-то выкатывали, а в какой-то момент мы дошли до состояния, когда настроили все процессы CI/CD-тестирования, все автоматизировали, и релизы были каждый день. 

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

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

Что такое элитные компании

Исследования DORA (DevOps Research and Assessment) говорят, что они проанализировали достаточно большое количество компаний и видят, что есть «медленные» компании, их становится все меньше и меньше. Медленные — те, у которых цикл поставки от года. Потом есть средние — это полгода. 

Поставка продукта ― то как быстро мы поставляем и как часто. Как быстро мы заканчиваем делать что-то, что непосредственно находится в поставке. Эти две метрики — deployment frequency (частота поставки) и lead time for changes — время от первого коммита до момента, когда мы все собрали, протестировали и выкатили в промо. И есть некоторые «быстрые» компании или команды, которые работают на цикле продолжительностью в неделю-две. 

Но в нескольких последних DevOps-отчетах стали упоминаться «элитные» компании: у них lead time — день, deployment frequency — каждый день или даже чаще. Вот это состояние, к которому необходимо прийти. 

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

Почему нужно ускорять поставку 

Бывает такая ситуация, что вроде написано ТЗ и все понятно, и «с той стороны» заказчик абсолютно согласен со всем, что там написано. Все подписали, у нас есть договор, мы пошли работать. Проходит полгода или год, и, даже если мы успели в срок, что в ИТ, прямо скажем, не так уж часто происходит, мы приносим работу, а заказчик говорит: «Ребята, здорово, что вы пришли, но, к сожалению, бизнес изменился. И то, что вы принесли, уже не актуально». Но у нас есть контракт, обязательства — человек должен заплатить. Чтобы снизить такие риски, вероятность того, что мы сделаем не то, нужно ускорять поставку. Чтобы можно было чаще инспектировать направление движения к цели и саму цель, и корректировать при необходимости. 

Почему необходимо экспериментировать 

До этого у нас росла сложность, а теперь у нас растет не только сложность, но и неопределенность. Если бы кто-то мог сказать: «Сделай вот это и получишь Убер или Нетфликс, или Фейсбук» — надо идти сделать. Станем все миллионерами. 

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

Полная версия интервью доступна только студентам GeekBrains

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

К каждому интервью прилагаются полезные материалы, которые спикеры советуют для саморазвития: книги, фильмы, лекции, презентации, подкасты и многое другое.

Посмотреть расширенное интервью и получить подборку материалов могут только студенты платных программ GeekBrains. Хотите стать одним из них? Выберите свою программу обучения здесь.


 

программированиеуправление
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!