Тема 64 из 91· Разработка ПО и цифровая доставка
Метрики потока (Flow Metrics)
Метрики потока измеряют, как работа движется через систему поставки: время цикла, время выполнения, пропускную способность, незавершённую работу (work in progress, WIP) и эффективность потока. Ими управляет закон Литтла — та же математика очередей, что управляет больничными койками и листами ожидания.
Почему это важно
Большая часть времени поставки — это не работа, а ожидание. Исследования эффективности потока в интеллектуальном труде регулярно обнаруживают, что над элементами активно работают только 5–15% от их прошедшего времени; остальное — очереди. Это значит, что самое дешёвое ускорение — устранение очередей, а не найм — именно то понимание, которое обнаружили больничные программы потока пациентов применительно к койкам. Для всего, что имеет стоимость задержки, метрики потока показывают, где накапливается эта стоимость.
Математика
Время цикла = t(завершено) − t(начато)
Время выполнения = t(доставлено) − t(запрошено) (включает очередь до начала работы)
Пропускная способность = завершённых элементов / период
WIP = элементы, начатые, но не завершённые
Эффективность потока = активное время / (активное + время ожидания) × 100
Закон Литтла: средний WIP = пропускная способность × среднее время цикла
(эквивалентно: время цикла = WIP / пропускная способность)
Закон Литтла — это рычаг: при фиксированной пропускной способности сокращение WIP пропорционально сокращает время цикла. Он же управляет больницами: занятые койки = поступления/день × длительность пребывания.
Практический пример
У команды 40 элементов в работе, и она завершает 10/неделю: время цикла = 40/10 = 4 недели. Они вводят лимиты WIP, сокращая WIP до 15: время цикла = 15/10 = 1,5 недели — те же люди, та же пропускная способность, поставка на 62% быстрее, чисто за счёт дисциплины очереди.
Оценено через CoD: если элементы в среднем несут £3 000/неделю стоимости задержки, каждый элемент теперь проводит в очереди на 2,5 недели меньше: 10 элементов/неделю × 2,5 × 3 000 = £75 000/неделю устранённой стоимости задержки — от изменения политики, не стоящего ничего.
Больничное зеркало: 40 поступлений/день × 6,0 дней длительности пребывания = 240 коек; сократите неклиническое ожидание внутри длительности пребывания до 5,6 дня, и высвобождаются 16 коек (длительность пребывания) — тот же закон, тот же рычаг.
Связь с разработкой программного обеспечения
Метрики потока — общий язык между инженерией поставки и операциями здравоохранения:
- Бенчмарки подэтапов PR (LinearB, ~8 млн PR): элитное время подбора < 7ч, ревью < 6ч, полный цикл < ~26ч — время подбора — это чистая очередь, первое, на что стоит нападать.
- Листы ожидания — это бэклоги; RTT — это время выполнения; занятость коек — это WIP. Улучшения переносятся в обоих направлениях: лимиты WIP ↔ сглаживание поступлений; инструментирование времени в очереди ↔ отслеживание этапов пути.
- Эффективность потока ниже 15% нормальна в обоих доменах, и оба это скрывают, потому что люди заняты, пока работа ждёт — измеряйте часы работы, а не работников.
Подводные камни
- Культ утилизации: доведение утилизации работников до 100% нелинейно взрывает время очереди (M/M/1: ожидание ∝ ρ/(1−ρ)) — причина, по которой больницы с занятостью 95% встают в затор, а команды с загрузкой 95% буксуют.
- Средние по скошенным распределениям: время цикла имеет тяжёлый хвост; прогнозируйте по процентилям (p85), а не по средним.
- Сокращение WIP отклонением работы выше по потоку с называнием этого улучшением потока — спрос не исчез, он встал в очередь за пределами границы измерения (больничная версия: машины скорой помощи, ждущие снаружи ED).
Источники
- Little's Law and flow metrics overviews. https://agility-at-scale.com/safe/lpm/flow-metrics/ ; https://getdx.com/blog/flow-metrics/
- LinearB engineering benchmarks. https://linearb.io/resources/engineering-benchmarks
- Reinertsen DG, The Principles of Product Development Flow.