2.3

2.3 Скорость потока и распределение потока

Обзор и мотивация

Скорость потока это число элементов потока (тема 2.2), завершённых за данный период, мера пропускной способности Flow Framework. Распределение потока это доля каждого типа элемента потока, функций, дефектов, риска и долга, среди элементов, завершённых за тот же период. Эти две метрики спроектированы так, чтобы читаться вместе: одна только скорость отвечает на «сколько мы отгрузили», а одно только распределение отвечает на «какого рода была эта работа», но ни один вопрос не значит многого без другого. Команда может повысить свою скорость, пока её распределение тихо сдвигается от функций к переделке дефектов, что выглядит как ускорение на диаграмме скорости, а на самом деле является симптомом снижающегося качества.

Это сочетание та же дисциплина, которую тема 1.2 требует для каждого семейства метрик в этой книге: никогда не сообщать число скорости без страховочной метрики, показывающей, чего эта скорость стоила. Скорость потока самое прямое обобщение этой части для метрики пропускной способности, по духу ближе к частоте развёртывания (тема 2.10), чем к любому другому отдельному числу в этой книге, но осведомлённое о типе элемента так, как частота развёртывания никогда не была. Частота развёртывания говорит вам, как часто код достигает продакшена; скорость потока в сочетании с распределением говорит вам, как часто ценность достигает продакшена и какого рода эта ценность.

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

Ключевые принципы

  • Скорость без распределения скрывает то, что на самом деле было отгружено. Растущее число элементов ничего не говорит о том, здорово ли это число, подделано или тихо смещено в сторону самой лёгкой доступной работы.
  • Распределение без скорости скрывает масштаб. Здорово выглядящее процентное разделение мало значит, если вы также не знаете, сколько общей работы оно представляет.
  • Эти две метрики должны сообщаться вместе, всегда. Это прямое применение принципа сочетания со страховочной метрикой из темы 1.2 конкретно к данным потока.
  • Скорость подвержена тому же манипулированию подменой, что и любая метрика подсчёта элементов. Разбиение сложной работы на много мелких лёгких элементов раздувает подсчёт, не доставляя пропорционально больше ценности.
  • Здоровое распределение зависит от контекста, а не является фиксированной целью. Тема 2.2 покрывает это глубоко; скорость и распределение всегда следует интерпретировать против цели, которую подразумевает контекст.

Рекомендации

Сообщайте скорость потока как линию тренда, никогда как число одного периода

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

Никогда не представляйте скорость потока без распределения потока рядом с ней

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

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

Сырой подсчёт элементов относится к однострочному изменению конфигурации и многонедельной архитектурной миграции как к эквивалентам, что приглашает то же манипулирование подменой, которое эта книга уже назвала для частоты развёртывания (тема 2.10): разбиение сложной работы на много мелких элементов раздувает подсчёт, не доставляя пропорционально больше. Там, где размеры элементов сильно различаются, взвешивайте скорость по грубой оценке размера или сложности, или отслеживайте средний размер элемента наряду с сырым подсчётом, чтобы сжимающийся средний размер рядом с растущим подсчётом был видим, а не скрыт.

Следите за распределением потока на предмет дрейфа, а не только его текущего снимка

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

Сравнивайте скорость потока между потоками создания ценности только с настоящей осторожностью

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

Компромиссы: плюсы и минусы

ПодходПлюсыМинусы
Только сырая скорость подсчёта элементовПросто вычислять и объяснятьПодвержена манипулированию подменой; скрывает, какого рода ценность отгружена
Скорость в сочетании с распределениемПоказывает вместе и масштаб, и смесь ценностиТребует дисциплинированной классификации элементов потока (тема 2.2), чтобы быть значимой
Скорость, взвешенная по размеруСопротивляется манипулированию подменой через разбиение элементов по размеруТребует последовательного согласованного метода оценки размера по всей команде
Сравнение скорости между потоками создания ценностиПолезно для решений об инвестициях на уровне портфеляЛегко несправедливо без подтверждения действительно сравнимых определений элементов

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

Вопросы для обсуждения в команде

  1. Когда мы сообщаем скорость потока, показывается ли распределение потока всегда рядом с ней, или скорость иногда стоит отдельно? Число скорости без распределения неполная картина по собственному центральному принципу этой темы. Проверьте ваши фактические дашборды и отчёты на этот пробел.

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

  3. Сравнивали ли мы когда-либо нашу скорость с другой командой, не подтвердив, что наши определения элементов и зернистость действительно совпадают? Несправедливое сравнение здесь может подтолкнуть команду к манипулированию собственными числами просто для того, чтобы выглядеть сравнимой, отражая тот же риск, который эта книга уже называет для частоты развёртывания.

  4. Дрейфовало ли наше распределение потока в одном направлении за последние несколько периодов, и решил ли кто-то это сознательно? Медленный дрейф легко пропустить период за периодом. Постройте несколько периодов вместе и честно поищите тренд, прежде чем предполагать, что текущее разделение стабильно.

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

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

Отраслевой взгляд

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

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

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

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

Примеры

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

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

Бизнес-кейс: мотивация, ROI и TCO

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

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

Антипаттерны и ловушки

  • Сообщение скорости потока без распределения: вектор манипулирования в сердце этой темы. Команда под давлением доставки может повысить подсчёт элементов, предпочитая мелкую лёгкую функциональную работу и избегая более сложных элементов долга, риска или дефектов, или разбивая крупные элементы на много мелких, и диаграмма скорости, показанная отдельно, прочитается как ускорение, а не фактический сдвиг в том, что доставляется. Страховка та же дисциплина сочетания, которую тема 1.2 требует на протяжении всей этой книги: никогда не показывать скорость без распределения и периодически проверять средний размер элемента наряду с подсчётом, чтобы конкретно поймать разбиение.
  • Сравнение скорости между потоками создания ценности с разной зернистостью элементов: производит несправедливое вводящее в заблуждение сравнение.
  • Отношение к распределению одного периода как к стабильному: упускает медленный значимый дрейф, который раскрывает только взгляд на тренд.
  • Позволение только заголовку скорости достигать бизнес-заинтересованных сторон: лишает принцип сочетания всей его защитной ценности.
  • Игнорирование среднего размера элемента, празднуя растущую скорость: упускает специфическую подпись манипулирования подменой.
  • Установление цели скорости без ссылки на распределение: приглашает именно то манипулирование, против которого эта тема предупреждает поимённо.

Модель зрелости

  • Уровень 1, Инициация: Скорость потока, если отслеживается, сообщается отдельно без данных о распределении, и никто не проверял на манипулирование подменой.
  • Уровень 2, Развитие: Некоторые команды отслеживают распределение, но оно не сочетается последовательно со скоростью в отчётности и не рассматривается как тренд.
  • Уровень 3, Стандартизация: Скорость и распределение всегда сообщаются вместе, рассматриваются как тренды, со средним размером элемента, отслеживаемым, чтобы поймать манипулирование подменой.
  • Уровень 4, Управление: Дрейф распределения исследуется проактивно, прежде чем он станет проблемой качества или безопасности, а сравнения скорости между потоками создания ценности делаются только после подтверждения действительно сравнимых определений элементов.
  • Уровень 5, Оркестрация: Скорость и распределение напрямую информируют решения об инвестициях на уровне портфеля, и организация может указать на конкретные случаи, когда дрейф распределения был пойман и исправлен до того, как вызвал видимый сбой.

Идеи для обсуждения

  1. Всегда ли наша отчётность о скорости потока включает распределение, или мы когда-либо показывали одно без другого?
  2. Сдвигался ли наш средний размер элемента потока наряду с изменением скорости недавно?
  3. Узнали бы мы, если бы наше распределение потока устойчиво дрейфовало за последние несколько кварталов?
  4. Что потребовалось бы, чтобы кто-то раздул нашу скорость, не доставляя больше реальной ценности, и заметили бы мы это?

Основные выводы

  • Скорость потока измеряет пропускную способность; распределение потока измеряет, какого рода работу представляет эта пропускная способность. Сообщайте их вместе, всегда.
  • Это сочетание прямое применение принципа страховочной метрики из темы 1.2: никогда не показывать число скорости без контекста того, чего оно стоило.
  • Центральный вектор манипулирования этой темы сообщение одной только скорости, которое может скрыть сдвиг в сторону лёгкой функциональной работы или разбиение элементов, раздувающее подсчёт без доставки пропорциональной ценности.
  • Дрейф распределения наиболее заметен как тренд по нескольким периодам, а не в снимке любого отдельного периода.
  • Сравнения скорости между потоками создания ценности нуждаются в действительно сравнимых определениях элементов, чтобы быть справедливыми; без этого они вводят в заблуждение больше, чем информируют.

Источники и дальнейшее чтение

  • Kersten, Mik. Project to Product: How to Survive and Thrive in the Age of Digital Disruption with the Flow Framework. IT Revolution Press, 2018.
  • Forsgren, Nicole, Jez Humble, and Gene Kim. Accelerate: The Science of Lean Software and DevOps. IT Revolution Press, 2018.
  • Vacanti, Daniel S. Actionable Agile Metrics for Predictability. Actionable Agile Press, 2015.