Получите все материалы с наших тренингов — бесплатно
29 июня, 2022 г.
17 отзывов, в среднем 5 из 5

4 ключевых метрики Потоковой Инженерии (Flow Engineering) для Agile команд

Как «выкатывать» ПО без косяков, быстрее, и надёжней с помощью использования метрик Flow Engineering.

Что такое Потоковая Инженерия (Flow Engineering), и почему это важно для процесса поставки ПО (Software Delivery)

Потоковая инженерия (Flow Engineering) — это наука о создании, визуализации и оптимизации потока ценности от вашей компании к клиентам. Она решает проблему на миллион долларов (скорее всего, даже больше), с которой сталкивается большинство продуктовых компаний: Как нам создать ценность в виде продукта и/или услуги и доставить эту ценность клиентам максимально быстро и без лишних заминок.

С точки зрения управления продуктом, мы можем можем смотреть на то, как быстро мы достигаем удовлетворённости наших клиентов, и принятия ими доставленной им ценности. С инженерной точки зрения, мы можем посмотреть на DevOps метрики, такие как DORA, которые имеют схожий оценочный смысл. А с точки зрения разработки программного обеспечения, мы можем обратить внимание на качество кода и количество добавленных или созданных для продукта «фич».

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

Flow Engineering — это современный подход, рассматривающий доставку ценности (value delivery), как потока от самого начала до конечного результата. Цель этого подхода состоит в том, чтобы сделать этот поток как можно шире, чтобы он позволял беспрепятственно доставлять конечному пользователю (клиенту) максимально возможную ценность.

4 Ключевых Потоковых Метрик для Agile Команд

Оптимизировать Поток нам поможет визуализация наших внутренних процессов разработки/проектирования и процесса доставки ценности. Кроме всего прочего такая визуализация предоставляет возможность видеть наши узкие места (bottlenecks), и точки улучшений экономики продукта.

For measuring software delivery capabilities, it helps to focus on a few North Star metrics, that capture our capabilities as well as impediments. These flow metrics are:

Чтобы как–то измерить и оценить наши возможности по эффективной доставке ПО пользователю, полезно сфокусировать своё внимание на т.н. North Star метриках, которые призваны «высвечивать» какие у нас есть возможности, и какие препятствия мешают нам достигать целей. К таким метрикам относятся:

Скорость

Скорость, с которой мы осуществляем доставку (новой) ценности. Как быстро мы можем выкатить новую фичу? Как долго длится наш cycle time? Очевидно: чем меньше наш цикл разработки (например, размер спринта — прим.переводчика), тем быстрее мы можем доставлять новую ценность клиентам.

Пропускная способность

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

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

Эффективность потока

С каким количеством потерь (временнЫх или ресурсных) или сложностей мы сталкиваемся? Например, сколько незапланированной работы мы выполняем? Сколько ошибок и багов нам приходится устранять из–за недостаточного качества разработки или тестирования? Как часто уже выпущенный продукт нуждается в исправлениях и как быстро мы способны это сделать? Как часто мы пропускаем процессы утверждения или тестирования?

Риски

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

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

Как Замерять Потоковые Метрики

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

Большинство компаний в той или иной форме используют гибкий процесс разработки программного обеспечения. Это может быть работающие в рамках Agile идеологии Scrum–команды, Kanban–процесс или agile в масштабе SAFe. Как правило, в основе таких процессов лежит DevOps инфраструктура, которая управляет процессами планирования улучшений и новых фич, разработки и сборки ПО, а также инструментами для его тестирования и релиза.

Все это порождает большие объемы информации. Например, каждое изменение кода — это целая история о том, что изменилось, где изменилось, сколько времени это заняло, и кто участвовал в каждом этапе. Метаданные изменения включают подробную информацию о том, было ли это изменение кода отревьювленно, кто участвовал в code-review и сколько итераций потребовалось для его утверждения и мержа (merge). Дополнительно собирается и техническая информация о продолжительности и успешности сборки, данные о покрытии релиза тестами, а также время разрешения тикетов и баг–реквестов.

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

  • Систем типа Jira, Monday, или Shortcut;
  • Репозитории с соответствующими метаданными из GitHub, GitLab или Bitbucket;
  • Автоматизированных систем сборки и релиза типа GitHub Actions, GitLab Pipelines или CircleCI.

Ключом к успеху является извлечение всех необходимых данных из разных систем, и грамотное объединение данных с последующим применением аналитики, что позволит увидеть всё, что необходимо для оптимизации процесса доставки ценности.

Работа с Потоковыми Метриками

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

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

  1. Скорость доставки: Сколько и как быстро мы можем доставить?
  2. Качество доставки: Следуем ли мы процессам и достигаем ли целей по качеству?
  3. Устойчивость команды: Обеспечиваем ли мы стабильность наших возможностей и избегаем ли мы выгорания наших разработчиков?

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

Выводы

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

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

Ведем набор на новый поток обучения 2022 года профессиям «Скрам–мастер» и «Продакт–менеджер» — в Digital, со стажировкой и трудоустройством