Третья Канбан-метрика - 2. Run Chart

Третья Канбан-метрика - 2. Run Chart

Продолжаем цикл статей про метрики, нужные менеджерам для управления рабочим процессом. В первой части мы поговорили про Scatterplot, а сейчас наконец узнаем, что такое Run Chart и чем он может быть полезен.

Как строится Run Chart? На Run Chart отображаются наблюдаемые данные во временной последовательности.

То есть, у нас есть две оси: календарное время, и значения какого-то параметра, и мы строим график, точки которого показывают значение параметра на конкретный момент времени.

Кажется, что этот график - разновидность Scatterplot, но есть разница в способе отображения: Run Chart является линейным графиком, в котором все точки соединены линиями, а Scatterplot - точечный график, без линий.

Третья Канбан-метрика - 2. Run Chart

Другим отличием от Scatterplot является наличие на Run Chart средней линии. Она нужна, чтобы увидеть характер колебаний измеряемой величины относительно центральной тенденции.

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

Кроме того, медиана легко интерпретируется: 50% данных находятся выше медианы, и 50% — ниже. Это упрощает анализ данных и позволяет легче выявлять тренды и изменения.

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

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

Встречаются и другие варианты выбора центральной тенденции для Run Chart. В литературе по контролю качества, предлагают в качестве меры центральной тенденции сперва установить так называемую “базовую медиану”, которая показывает, как ведёт себя система до начала реализации каких-либо улучшений в ней.

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

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

Run Chart применяется для следующих целей:

  • Управление качеством: анализ стабильности процесса;
  • Мониторинг производительности: выявление изменений в параметрах производительности, трендов, сдвигов;
  • Обнаружение отклонений: идентификация точек, где произошли значительные изменения.

Lead Time Run Chart

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

Lead Time Run Chart с медианной линией
Lead Time Run Chart с медианной линией

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

Правила анализа Run Chart

В литературе встречается 3 эмпирических правила, которые позволяют проанализировать Run Chart, и при этом применимы для задач в IT.

Правило 1. Сдвиг данных (data shift)

Если на графике Run Chart мы видим серию из 6 или более последовательных точек, которые лежат по одну сторону от медианы, не пересекая ее, то это показывает, что произошел сдвиг данных (data shift). При этом, точки, которые попали на медиану не добавляются к серии, и не прерывают ее.

Вот пример Lead Time Run Chart на котором видно, что в период с 6 по 15 марта была завершена серия из 6 задач, причем время завершения всех 6 задач было больше медианы. Это, скорее всего, свидетельствует о том, что на эти задачи повлияла не случайность, а какая-то систематическая причина. Аналогична и ситуация с серией в районе 2 мая.

Больше 6 последовательных точек над медианой или под ней обозначают сдвиг данных, и какую-то системную причину
Больше 6 последовательных точек над медианой или под ней обозначают сдвиг данных, и какую-то системную причину

В контексте Run Chart сдвиг данных - это последовательность значений, которая указывает на изменение в процессе, вызванное какими-то систематическими, а не случайными причинами.

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

По определению медианы, можно ожидать, что любая точка данных с вероятностью 50% будет выше медианы, и с той же вероятностью 50% она может быть ниже медианы. Тогда, для любого независимого случайного события с двумя возможными исходами, где каждый исход равновероятен, вероятность того, что один и тот же исход произойдет шесть раз подряд, составляет менее 2%. Следовательно, такая последовательность событий, скорее всего, вызвана какими-то систематически повторяющимися причинами, а не случайными колебаниями процесса. Чем больше точек подряд находятся на одной стороне от медианы, тем сильнее доказательство сдвига.

Конечно, тут очень важно подчеркнуть, что для того, чтобы это правило работало, нужно, чтобы данные были одной природы.

В контексте разработки программного обеспечения было бы некорректно размещать на диаграмме Lead Time Run Chart вперемешку данные о дефектах, продуктовых доработках, исследованиях и исправлении технического долга. Это данные по задачам разной природы, из разных источников, и способ решения для каждой из них тоже разный.

Если мы разместим такие данные на одном графике, то к примеру, можем увидеть серию из 6 точек лежащую ниже линии медианы, и сделать вывод о том, что “Правило 1” сработало. Но в реальности в этой серии могут быть смешаны данные по задачам разных типов, и никакой системной причины которая бы их объединяла быть просто не может.

Это все равно, что сравнивать время приготовления обеда с временем написания отчета о проделанной работе и временем забивания гвоздя во время ремонта. Почти невероятно, чтобы все эти три вида деятельности объединяла какая-то общая, системная причина, одновременно влияющая на все три случая.

Правило 2. Тренды

Тренд на Run Chart – это пять или более последовательных точек, значения которых либо постоянно увеличиваются, либо постоянно уменьшаются. Если значения двух или более последовательных точек одинаковы, то их при игнорируют при подсчете, поскольку они не добавляют информации о направлении тренда. Например, если после трех последовательных увеличений следуют две одинаковые точки, они не влияют на определение тренда, поскольку не нарушают последовательность изменений вверх или вниз

5 и более последовательных точек, значения которых возрастают или убывают, образуют тренд
5 и более последовательных точек, значения которых возрастают или убывают, образуют тренд

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

Правило 3. Астрономическая точка

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

Обратите внимание, что в каждом наборе данных будут наибольшее и наименьшее значение, однако это не означает, что они являются астрономическими.

Чтобы точка считалась астрономической, должно быть выполнено два критерия:

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

В то время как Правила 1 и 2 основаны на теории вероятности, Правило 3 является субъективным и подчеркивает важность визуального анализа данных на Run Chart.

Необычно выделяющееся значение - астрономическая точка
Необычно выделяющееся значение - астрономическая точка

На это графике значение по середине картинки явно выделяется, как астрономическая точка. Любой, кто посмотрит на этот график, согласится, что такой пик – это необычно большое значение, которое явно отличается от остального набора данных.

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

Ограничения применения Run Chart

Run Chart предназначены для раннего обнаружения сигналов улучшения или ухудшения процесса со временем. Однако на основе Run Chart нельзя понять, является ли поведение процесса статистически предсказуемым? Для этой задачи надо использовать контрольные карты Шухарта.

Попытки сделать вывод о статистической предсказуемости процесса на основе Run Chart заведомо обречены на провал, потому что в этой диаграмме просто нет элементов, которые могли бы помочь сделать такой вывод.

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

В Run Chart таких элементов просто нет, а наличие линии центральной тенденции недостаточно, чтобы сделать вывод о контролируемости (то есть, статистического предсказуемости) рабочего процесса.

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

Run Chart легко строить и просто интерпретировать. Поскольку улучшения происходят со временем, построение данных во времени с использованием Run Chart является простым способом объективной оценки влияния изменений на параметры процесса. Но он не является контрольной картой, поэтому лучше не применять к ней таких слов.

Run Chart и Временной ряд

В русском переводе Kanban Guide название графика Run Chart перевели как “временной ряд” (time series). Насколько это корректно?

Можно ли считать Run Chart временным рядом, вопрос дискуссионный. С одной стороны, оба графика строятся одинаково: по оси X метки времени, а по оси Y - какой-то измеряемый показатель.

Но есть разница в количестве отображаемых данных, и способах анализа. Давайте разберемся.

Особенности временных рядов

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

Анализ временных рядов чаще всего применяют в следующих сферах:

  • Экономика и финансы: Анализ временных рядов для прогнозирования рыночных тенденций.
  • Научные исследования: Изучение природных явлений, таких как климатические изменения.
  • Бизнес-аналитика: Прогнозирование продаж, спроса на продукты, трафика и других показателей

Биржевые трейдеры собаку съели на анализе временных рядов. У них тут и линии тренда, и скользящее среднее, и чего только нет.

Биржевые трейдеры обожают временные ряды и отлично умеют их анализировать
Биржевые трейдеры обожают временные ряды и отлично умеют их анализировать

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

Так трясло планету последние 50 лет
Так трясло планету последние 50 лет

А на картинке ниже изображен временной ряд, который отображает процент задержанных рейсов по месяцам с 1988го по 2013 года. Довольно хорошо видны волны спадов и падений, как по годам, так и по месяцам внутри года. Такой график может много рассказать об истории отрасли, и закономерностях которым она подчиняется

Процент задержанных авиарейсов по месяцам
Процент задержанных авиарейсов по месяцам

Можно ли подобное увидеть на Run Chart? Наверно можно, но трудно себе представить, чтобы мы строили Lead Time Run Chart за период 25 лет и получили от этого какую-то практическую пользу.

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

Lead Time Run Chart обычно строят а разрезе. месяца или квартала, максимум полугодия. Рассмотрение более длительного периода потребует введения множества поправок для учета смены состава команды, окружения, технологий и так далее.

То есть, несмотря на то, что Run Chart и Временной ряд строятся на одних и тех же данных и по одинаковым правилам, есть существенная разница в том, для чего эти графики используются, что на них анализируется., и какие выводы можно сделать.

На этом про Run Chart все, а в следующей статье мы поговорим о том, что такое Control Chart и почему многие путают Run Chart и Control Chart.

Больше полезных материалов о метриках можно найти по ссылке
Для дальнейшего погружения в теме метрик полезно почитать:

PS Перепечатка даннной статьи или ее части возможна только с согласия автора

33
Начать дискуссию