Описательная статистика для менеджера. Часть 1. Центральная тенденция - понимаем чего ожидать на самом деле

Описательная статистика для менеджера. Часть 1. Центральная тенденция - понимаем чего ожидать на самом деле

Сегодня мы начнем погружаться в описательную статистику применительно ко времени выполнения задач (Lead Time).

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

Содержание

Ищем "простые цифры", чтобы описать сложный процесс

Давайте честно: обычно архив выполненных задач из трекера — это огромная куча записей с которой непросто разобраться. Сотни, тысячи строк с разными полями - название, заказчик, временя выполнения (Lead Time) и так далее.

Пытаться разобраться в них «в сыром виде» — всё равно что пытаться понять сюжет «Войны и мира», разглядывая буквы в случайном порядке.

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

Описательная статистика помогает быстро ответить на вопросы:

  • Как мы работаем обычно?
  • Где нас подстерегают риски?
  • Какова динамика изменений?
  • На что обязательно надо обратить внимание?

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

  1. Центральная тенденция — попытка понять, какова наша «норма» (спойлер: это не среднее арифметическое).
  2. Квантильные оценки — язык, на котором нужно давать обещания заказчику.
  3. Вариация — насколько сильно наш процесс «штормит» и «колбасит».
  4. График плотности распределения — как выглядит «анатомия» наших сроков (и почему она кривая).
  5. Мультимодальность — детектор лжи, который показывает, где вы смешали в кучу мух и котлет.
  6. Экстремальные значения (аномалии) — те самые «черные лебеди», игнорирование которых, рушат карьеры менеджеров.

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

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

1. Центральная тенденция. Поиски "нормальности"

Обычно говорят, что Центральная тенденция показывает то, что "типично" или "нормально" для данного рабочего процесса.

Но как как можно объяснить что такое "типичная" работа в нашем рабочем процессе? Что это, если приложить к распределению времени выполнения задач (Lead Time)?

Я думаю, в терминах менеджмента, это ответ на вопрос: "Сколько времени обычно занимает средняя по сложности задача, при условии штатной работы нашего рабочего процесса, в отсутствии рисков, с которыми наша рабочая система не умеет справляться, или делает это очень долго?"

Попробую объяснить на примере.

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

  1. Центральная тенденция будет показывать время поездки «в штатный режиме», без неожиданностей на дорогах, которые трудно решить. То есть, дорога загружена как обычно в будние дни, вы соблюдаете правила, иногда стоите на красных светофорах, пропускаете пешеходов. Никаких аварий, но и никакой магии.

    Если перекладывать на язык менеджмента, то это время, за которое ваша рабочая система обрабатывает типичную, среднюю задачу без форс-мажоров, но с учетом всех стандартных очередей и переключений контекста, которые и так присущи вашему рабочему процессу.
  2. Левее Центральной тенденции будут расположены самые быстрые поездки по этому маршруту. Это может быть «зеленая волна» - когда вам везет, и на всех перекрестках вы попадаете на зеленый сигнал светофора. Или все уехали в отпуска, и на дорогах мало машин. Или вдруг стал доступен короткий маршрут через железнодорожный переезд, который в 2 раза сокращает время в дороге. И в результате, вы доехали необычно быстро. Главное тут слово - необычно! Не типично. Не как всегда. Но в лучшую, более быструю сторону. И поэтому время поездки оказалось меньше значения Центральной тенденции.

    Если переложить такую ситуацию на реалии менеджмента, то слева от Центральной тенденции находятся либо очень простые, маленькие задачи с которыми ваша система умеет быстро справляться, либо этим задачам почему-то дико повезло и они быстро проскочили какие-то очереди, ожидания, согласования и так далее (мгновенное согласование, авто-тесты прошли с первого раза), или в них не сработали те риски, которые ожидались. В общем, мы тут молодцы, или нам сильно повезло.
  3. Справа от Центральной тенденции находится так называемый "хвост" нетипично долгих поездок от дома до работы. Это зона нарастающих рисков, с которыми неизвестно как справиться или может быть даже невозможно справиться (остается их только принять). Или это могут быть риски, для решения которых нужно потратить существенное время. Это ситуации, когда на единственном мосту случилась авария, или перекрыли полосу из-за проезда правительственной делегации, или пошел сильный снег, а вы прокололи колесо, и запаски нет. Или вам позвонили из дома, и сказали срочно возвращаться, потому что нужна помощь. И тогда текущая поездка на работу отменяется, вы ищете разворот и едете обратно. А иногда перед офисом надо заехать еще куда-то, и ваш маршрут сложнее чем обычно.
    Все эти ситуации и риски могут случаться одновременно, накладываясь друг на друга и удлиняя время поездки. И чем разрушительнее риск, или чем больше рисков одновременно случилось - тем длиннее будет ваша поездка.

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

Вывод: Центральная тенденция времени выполнения задач, показывает нормальный, типичный уровень работы вашей рабочей системы (отдела, команды, подразделения и тд).
Если значение этой метрики растет — значит, весь ваш рабочий процесс почему-то стал работать медленнее, если уменьшается - значит и весь рабочий процесс работает быстрее.

Главная ошибка при работе с Центральной тенденицией

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

Мы все учили это в школе: сложи все числа, подели на их количество — профит!

Задача А: 2 дня.

Задача Б: 3 дня.

Среднее: 2.5 дня.

Вроде работает?

И вот тут менеджеры совершают классическую ошибку. Они пытаются делать прогнозы и давать обязательства для Заказчика на основе такой Центральной тенденции.

Но представьте ситуацию: вы приходите в магазин одежды, хотите подобрать свой размер. И вдруг обнаруживаете, что в этом магазине вся одежда только одного размера - M (Medium)!

В ответ на ваше недоумение. продавец вам говорит "Исходя из статистики всех жителей Земли, средний размер одежды для людей вашего возраста - Medium (M). Поэтому вся одежда в моем магазине - только этого размера. Покупайте, не прогадаете. Сядет как влитая».

Звучит как бред, верно?

Но почему-то, когда менеджер приходит к заказчику и говорит: «В среднем мы делаем задачу за 2.5 дня», все кивают и радостно записывают этот срок в планы.

А потом случается реальность. И оказывается, что «в среднем» мы молодцы, а по факту — сроки сорваны, заказчик в ярости, а команда в огне.

В чем главная ошибка?

Центральная тенденция Lead Time покажет типичный, усредненное время выполнения задачи, когда не сработало ни одного значительного риска, и задачи были обычными - не слишком сложными, но и не слишком простыми. То есть Центральная Тенденция - нужна для того, чтобы сделать вывод о том, насколько быстро или медленно работает наш рабочий процесс в штатном режиме.

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

Для того, чтобы давать прогноз по времени выполнения (Lead Time) одной Центральной тенденции - не достаточно! Это надо запомнить!

Реальный прогнозный Lead Time это не одно число, а диапазон чисел с разными вероятностями рисков.

Вопрос только в том, на какой уровень рисков согласен Заказчик?

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

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

1) Центральной тенденции, как базиса для прогноза;

2) Выбранного уровня рисков, на который согласен Заказчик, и который диктует смещение прогнозной величины относительно Центральной тенденции;

А коридор значений Lead Time нам покажет другая описательная статистика - вариация. Ее мы рассмотрим в следующих статьях из цикла.

Как вычислить Центральную тенденцию?

Во всех учебниках по статистике обычно предлагают на выбор две метрики в качестве меры Центральной тенденции.

1) Среднее Арифметическое значение (mean)

2) Медиана (median)

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

Среднее Арифметическое - непоседа в качестве центра

Для очень многих случаев, Среднее арифметическое (mean) отлично подходит в качестве Центральное тенденции. Особенно когда мы анализируем какие-то природные явления - рост людей, вес яблок, количество дождей в Африке и так далее.

График распределения для этих данных выглядит как симметричный «колокол» Гаусса, где Среднее арифметическое (mean) действительно показывает наиболее типичный и ожидаемый результат, на который можно спокойно ориентироваться "в долгую".

Более того, в этом случае, другие метрики - Медиана (median) и Мода (mode) - будут совпадать со Средним арифметическим (mean), что добавляет надежности этому параметру

Арифметическое среднее точно посередине нормального распределения
Арифметическое среднее точно посередине нормального распределения

Почему Среднее (mean) врет при разработке ПО?

Но при разработке ПО (и вообще в задачах интеллектуального труда) частотное распределение времени выполнения задач (Lead Time) асимметрично, и не похоже на Гауссово (нормальное)

Распределение Lead Time в этом случае почти всегда "смещенные вправо" (right skewed) - то есть у них есть «хвост» из больших значений справа, и "горб" из множестве небольших значений слева.

Типичное распределение Lead Time для задач интеллектуального труда (и для разработки ПО в частности)
Типичное распределение Lead Time для задач интеллектуального труда (и для разработки ПО в частности)

И для такого распределения Среднее арифметическое (mean) будет показывать цифру совершенно оторванную от реальности, и никак не будет соответствовать штатному режиму работы при отсутствии рисков. Скорее всего его занесет куда-то вправо, в зону рисков.

Почему Среднее арифметическое (mean) сместится вправо? Потому что при его расчете учитываются все значения, и если в выборке есть очень большое значение, многократно больше остальных, то оно перевесит в общей сумме, и значение Среднего арифметического (mean) сместится в его сторону.

Давайте на примере.

Представьте, что ваша команда закрыла 8 задач, причем вам повезло, и каждую из задач команда закрыла за 2 дня (Красавчики!)

Считаем Среднее Арифметическое:

8*2 / 8 = 2 дня.

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

Теперь у нас в статистике следующие данные:

  • 8 задач с Lead Time 2 дня каждая
  • 1 задача с Lead Time 60 дней (явный выброс)

Получается классическое смещенное распределение - большинство значений находятся слева в "горбе" (8 задач по 2 дня), а одно значение в 60 дней формирует "хвост".

Считаем Среднее Арифметическое:

(8*2 + 60) / 9 = 8,4 дня

То есть Среднее Арифметическое резко "скакнуло" в сторону выброса, увеличившись в 4 раза (с 2 до 8,4)

А что полезного нам описывает это число в 8,4 дня?

  • Разве оно описывает те 8 быстрых задач по 2 дня?
    Нет, для них это слишком долго (почти в 4 раза больше реальности!).
  • Или оно описывает ту долгую задачу в 60 дней?
    Нет, до неё слишком далеко.

Среднее арифметическое в качестве Центральной тенденции для смещенного вправо распределения не показывает НИ-ЧЕ-ГО.

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

Запомните: Среднее арифметическое (mean) катастрофически чувствительно к выбросам - то есть к большим единичным значениям в "хвосте".
Одна-единственная «забытая» в In Progress задача, которую закрыли спустя полгода, способна сместить вашу Центральную тенденцию в сторону нетипичных задач.

И если вы выберете Среднее значение (mean) в качестве Центральной тенденции, то вы будете слишком часто реагировать на выбросы, и тогда есть риск "не увидеть лес за деревьями".

Медиана (Median) - флегматик по жизни

Если Среднее арифметическое (mean) — это тот парень, который пытается угодить всем и в итоге врет, то Медиана (median) — это честный циник, который стоит на своем, и его трудно поколебать

Медиана (median) — это число, которое делит отсортированный ряд данных ровно пополам.

Вернемся к нашему примеру: 8 задач за 2 дня, 1 задача за 60 дней.

Чтобы найти медиану, отсортируем все значения по возрастанию:

2, 2, 2, 2, | 2 | 2, 2, 2, 60

Значение ровно по середине этого отсортированного ряда - и есть Медиана (median).

В нашем случае, медиана — 2 дня.

(А если количество чисел в ряду четное, то обычно берут среднее арифметическое между соседними значениями из середины)

Что это значит на языке менеджмента? Это значит, что 50% задач мы делаем за 2 дня или быстрее.

Медиана (median) отсекла тот самый «адский выброс» в 60 дней и показывает нам типичный опыт, который равен 2 дням

То есть Медиана (median) гораздо более устойчива к выбросам, чем Среднее Арифметическое. И в качестве Центральной тенденции Медиана позволяет гораздо более увереннее ответить на вопрос «Как мы работаем, если не произошло ничего экстраординарного и ничего не сломалось?».

Свойство метрики быть устойчивым к выборосам называется "робастность"

И кажется, что для Центральной тенденции чем более робастная метрика, тем лучше. Но есть и обратная сторона.

Робастность метрики

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

Но обратная сторона робастности - отсутствие реакции на значимые изменения. Иногда это может вводить в заблуждение.

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

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

Между Сциллой Среднего и Харибдой Медианы

Если вам нужно нечто среднее между чувствительностью среднего (mean) и робастностью медианы (median), то можно присмотреться к следующим вариантам:

  • усеченное среднее;
  • винзорированное среднее;
  • среднее после отсечения редких аномалий по 95% и 1% перцентилю;

Усеченное среднее

Что смещает среднее и медиану? Выбросы. Они могут быть как в меньшую, так и в бОльшую сторону.

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

Описательная статистика для менеджера. Часть 1. Центральная тенденция - понимаем чего ожидать на самом деле

Выкидываем из выборки 2 самых маленьких значения, и 2 самых больших (см картинку выше)

А по оставшимся значениям посчитаем среднее арифметическое:

Описательная статистика для менеджера. Часть 1. Центральная тенденция - понимаем чего ожидать на самом деле

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

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

Применяемая в JIRA Control Chart "скользящее среднее" - это разновидность "усеченного среднего", которая рассчитывается как среднее значение по N ближайших точек слева и справа относительно текущей. Если потратить время, то можно подобрать такое число N, которое обеспечит вам почти идеальный баланс между робастностью и чувствительностью. И тогда усеченное средне может стать для вас идеальной метрикой центральной тенденции

Винзорированное среднее

А что если мы не будем выбрасывать самые маленькие и самые большие значения, а заменим их на ближайшие к ним, и посчитаем среднее?

Описательная статистика для менеджера. Часть 1. Центральная тенденция - понимаем чего ожидать на самом деле

На картинке видно - мы заменили крайние значения на ближайшие к ним, и посчитали среднее. Так мы защитились от выбросов, но не уменьшили размер выборки.

Этот метод так же более робастный чем среднее, но более чувствителен чем усеченное среднее

Среднее после отсечение редких аномалий

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

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

Чисто математически, есть алгоритмы как это делать, но проще воспользоваться здравым смыслом, зная природу наших данных - время выполнения (Lead Time).

Можно определить, что:

  • Верхняя граница выбросов для Lead Time, это 95й перцентиль Lead Time. С этим подходом соглашается большинство классиков Канбан-метода: Дэвид Андерсон, Клаус Леопольд, Даниэль Ваканти, Майк Барроуз и тд.
  • Нижняя граница.... вот тут возможны варианты, и каких-либо устоявшихся ориентиров нет.
    Я думаю, что так как Lead Time мы обычно измеряем в днях (24 часа), то значение, которое будет сильно меньше 1 часа вполне можно считать за границу отсечения снизу. Обычно при продуктовой разработке ПО (не support), даже hotfix нереально "выкатить на прод" быстрее чем за 15 минут - это примерно 1% от 24 часов

Сами решайте, хотите ли вы учитывать нижний предел в 1% Lead Time или это слишко накладно для расчетов. Мне кажется, что это не всегда нужно, но можно и заморочиться.

А вот выявление выбросов по верхнему пределу в 95% Lead Time кажется вполне оправданным вариантом.

Таким образом, сперва выявляем все значение больше или равные 95% перцентилю Lead Time, и меньше или равные 1% перцентилю Lead Time.

А дальше применяем одно из двух:

  • либо отсекаем все выявленные выбросы - и вычисляем усеченное среднее
  • либо винзорируем выявленные выбросы - и вычисляем винзорированное среднее

Получится метрика, которая будет робастнее обычного Среднего (mean), но чувствительнее Медианы (median). Этот метод более гибкий, так как основана на выявлении выбросов по перцентилям, а не через выбрасивание фиксированного количества значений по краям ряда.

Только для техно-гиков. Trimean — «Скрытый бриллиант» для анализа Lead Time

В прошлых частях мы договорились: Среднее арифметическое (mean) — слишком чувствительно к хаосу, Медиана (median) — наш бро (она честная и всегда стоит на своем).

Но есть одна проблема. Медиана — парень простой, иногда даже слишком. Она смотрит строго в центр и игнорирует всё, что происходит слева и справа. Ей всё равно, сжаты ли ваши задачи в плотный кулак или размазаны, как масло по бутерброду. Лишь бы середина была на месте.

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

Если вы хотите найти настоящую системную норму — то есть понять, как работает ваш процесс, когда в него не попадают «атомные бомбы» внешних блокировок и рисков — вам нужен инструмент потоньше.

Знакомьтесь: Trimean (Среднее Тьюки). Метрика, которую знают только гики, но которая должна быть на дашборде у каждого Delivery-менеджера.

Кто придумал Trimean? (Минутка истории)

Эту метрику ввел в обиход Джон Тьюки (John Tukey) — настоящая рок-звезда статистики XX века. Он работал в Принстонском университете и в Bell Labs, где занимался исследованиями, связанными с компьютерами и анализом данных. Активно участвовал в разработке алгоритмов и методов, которые легли в основу программирования, как дисциплины

Чтобы вы понимали масштаб личности: это тот самый человек, который придумал слово «bit» (бит информации) и слово «software» (программное обеспечение). А еще он подарил миру график Box Plot («Ящик с усами»), который вы наверняка видели в Excel.

В своей книге «Exploratory Data Analysis» (1977) Тьюки воевал с академической статистикой, оторванной от реальности. Он искал способы описывать «грязные» данные реального мира — такие, которые (сюрприз!) не подчиняются нормальному распределению. Прямо как наш Lead Time.

В чем суть Trimean?

Тьюки рассуждал так:

  1. Среднее плохое, потому что одна задача в с большим значением дней ломает всю статистику.
  2. Медиана (50-й перцентиль) хороша, но она игнорирует значимые изменения распределения.
  3. Давайте возьмем лучшее от обоих миров!

Он предложил формулу, которая учитывает не только самый центр, но и «плечи» распределения — то есть зону, где живет основная масса ваших типичных задач - в первом и четвертом квартиле распределения (от 25% до 75%).

В статистике деление распределения на периоды по 25% называют "квартилями", и обозначают по номерам:

Q1 - первый квартиль - от 0% до 25%

Q2 - второй квартиль - от 25% до 50%

Q3 - третий квартиль - от 50% до 75%

Q4 - четвертый квартиль - от 75% до 100%

Тьюки предлагает взять зону распределения между 25% и 75% в качестве основного "тела" распределения, в котором ситуация более стабильна, чем по краям, и основываясь на этой зоне, рассчитать Центральную тенденцию

Формула Trimean для расчета Центральное тенденции

Trimean = (Q1 + 2 * Median + Q3)/4

Где:

  • Q1 (25-й перцентиль): Ваши самые быстрые и легкие задачи.
  • Median (50-й перцентиль): Ваша классическая норма.
  • Q3 (75-й перцентиль): Ваши сложные, но все еще штатные задачи.

Что здесь происходит?

Мы берем мнение «Оптимиста» (Q1), мнение «Пессимиста» (Q3) и дважды учитываем мнение «Реалиста» (Медиана). А потом усредняем.

Формула для расчета Trimean в Excel

Если задумаете расчитать эту метрику в Excel то вот вам готовая формула (из расчета что ряд данных находится в колонке A):

=(КВАРТИЛЬ.ВКЛ(A:A; 1) + 2*МЕДИАНА(A:A) + КВАРТИЛЬ.ВКЛ(A:A; 3)) / 4

Формула расчета Trimean в русском Excel

Для Google Spreadsheet формула Trimean на английском:

=(QUARTILE.INC(A:A; 1) + 2*MEDIAN(A:A) + QUARTILE.INC(A:A; 3)) / 4

в Google Spreadsheet

Зачем Trimean менеджеру? (Сценарий применения)

Представьте, что у вас есть две команды. Вы смотрите на их отчеты за квартал:

  • Команда А: Медиана Lead Time = 5 дней.
  • Команда Б: Медиана Lead Time = 5 дней.

На первый взгляд — команды работают одинаково. Но вы чувствуете подвох. Команда А работает как часы, а Команду Б постоянно лихорадит, хотя в "середину" они попадают.

Давайте копнем глубже и посчитаем Trimean.

Данные Команды А (Стабильные):

  • 25% задач (Q1) = 4 дня
  • 50% задач (Median) = 5 дней
  • 75% задач (Q3) = 6 дней
  • Trimean = (4 + 2*5 + 6) / 4 = 20 / 4 = 5 дней
  • Вывод: Trimean совпадает с Медианой. Система идеально сбалансирована.

Данные Команды Б (Скрытые проблемы):

  • 25% задач (Q1) = 2 дня (быстро делают мелочевку).
  • 50% задач (Median) = 5 дней (как у всех).
  • 75% задач (Q3) = 18 дней (много задач застревает в вязком процессе).
  • Trimean = (2 + 2*5 + 18) / 4 = 30 / 4 = 7.5 дней

Инсайт! Медиана (5 дней) врала вам, что у Команды Б всё нормально. Trimean (7.5 дней) показывает истинное лицо системы. Он "почувствовал" этот тяжелый хвост справа (до 75-го перцентиля), но не сломался от него, как обычное среднее.

Чувствительность Trimean

В классической формуле используются пороги 25% и 75% - это значит, что Trimean не заметит изменений, пока они не начнут превышать порог в 25% (сверху или снизу). После этого начинается заметный рост метрики, сигнализируя, что в системе произошли какие-то значимые изменения

Модификации Trimean

Формулу Trimean можно менять, выбирая другие перцентили.

В Канбан-методе мы привыкли в качестве прогноза использовать 85% перцентиль (P85) - то есть отсекать 15% сверху.

Можно рассчитать Trimean используя 15% как порог отсечения и сверху и снизу:

Trimean = (P15% + 2 * Median + P85%)/4

Где:

  • P15% (15% перцентиль)- самые быстрые задачи.
  • Median (50-й перцентиль): Ваша классическая норма.
  • P85% (85% перцентиль) - самые сложные и рискованные задачи

В этом случае порог "срабатывания" Trimean уменьшится до 15%

Сравнение Trimean с другими метриками

Если мы вернемся к идее что для понимания системы нам нужно знать и типичное ее поведение, и зону рисков, то:

  1. Среднее арифметическое собирает на себя все грехи: и системные проблемы, и форс-мажоры (выбросы) и реагирует изменением значения
  2. Усеченные и винзорированные метрики предлагают закрыть глаза на выбросы и сделать вид, что их нет.
  3. Медиана часто слишком оптимистична, и не реагирует ни на что.
  4. Trimean — исходит из предположения, что в центре распределения (между Q1 и Q3) находятся типичные задачи, которые были сделаны в штатном режиме, и игнорирует самые дикие выбросы (всё, что больше Q3 и меньше Q1, имеет малый вес или отсекается).

Итог: Хотите знать, на что реально способна ваша команда в штатном режиме, даже если есть угроза «черных лебедей»? Выбирайте Trimean в качестве Центральной тенденции. Это достаточно робастная (устойчивая) оценка центральной тенденции для распределений с хвостом, которые мы видим в Jira каждый день. И в то же время она сохраняет достаточную чувствительность к выбросам, чтобы реагировать на качественные изменения в рабочей системе.

Сравнение динамики метрик Центральной тенденции в зависимости от количества выбросов

Я решил провести расчет: при каком количестве выбросов в выборке происходит точка перелома (breakdown point) метрик перечисленных выше, и их значение резко меняется, сигнализируя о значимых изменениях в системе

Я взял ряд из 200 значений - назвал его R0

А затем создал на основе R0 еще 8 рядов в каждом из которых был возрастающий процент

  • R1 - 1% выбросов
  • R5 - 5% выбросов
  • R10 - 10% выбросов
  • R15 - 15% выбросов
  • R20 - 20% выбросов
  • R25 - 25% выбросов
  • R30 - 30% выбросов
  • R40 - 40% выбросов

И для каждого ряда посчитал следующие метрики:

  • Среднее
  • Медиана
  • Усеченное среднее
  • Винзорированное среднее
  • Усеченное среднее по персентилям (95% и 1%)
  • Винзорированное среднее по персентилю (95% и 1%)
  • Trimean
  • Trimean 15-85 ( для расчета выбран диапазон 15%-85% )

Затем для каждого их рядов R0...R40 я посчитал значение каждой метрики, и вычислил разницу со значениями метрик для ряда R0.

Получилась таблица показывающая насколько менялась каждая метрика при увеличении количества выбросов

Точный расчет можно посмотреть по этой ссылке

Описательная статистика для менеджера. Часть 1. Центральная тенденция - понимаем чего ожидать на самом деле

Что можно сказать глядя на это график:

1) Среднее арифметическое растет при появлении любого нового выброса но особенно ускоряется после 25%

2) Винзоризированное среднее и усеченное среднее повторяет динамику Среднего, почти не отличаясь от него. Думаю, дело в том, что мы выбрали небольшое количество выбрасиваемых значений слева и справа - всего по 2 штуки с каждой стороны на 200 значений выборки. Возможно, если бы мы взяли бОльшее количество значений для отбрасывания, то эта метрика была бы менее чувствительна, чем истинное Среднее арифметическое.

3) Винзоризированное среднее по перцентилям (95% и 1%) спокойнее реагирует на 1% и 5% выбросов, но дальше начинает расти быстрее Среднего, а сопл 25% выбросов начинает резко расти вверх

4) Усеченное среднее по перцентилям (95% и 1%) ведет себя странно. Слабый рост до уровня 10% выбросов, а потом практически постоянные значения до 25% выбросов, после чего.... падение значения метрики! Кажется, что эта метрика после 25% выбросов "посчитала", что наступила новая норма типичных значений и перестала реагировать на прирост выбросов.

5) Медиана - показывает самую слабую динамику изменений на всем расчетном диапазоне. И даже 40% выбросов не сильно меняет ее значение.
Это объяснимо, так как Медиана смотрит на 50% перцентиль, а его значение поменяется только тогда когда процент выбросов превысит 50% от общей выборки.

6) Классический Trimean на основе Q1 и Q3 - умеренно реагирует на прирост количества выбросов вплоть до 25%, а потом резко растет, подавая сигнал об изменении Центральной тенденции.

7) Модифицированный Trimean 15-85 на основе P15% и P85% - умеренно реагирует на рост количества выбросов до уровня 15%, а потом показывает такой же резкий рост, как и классический Trimean

Выводы из сравнения метрик:

  • Среднее арифметическое "паникует" начиная с 1% выбросов, что на мой взгляд рановато.
  • Усеченное и винзоризированное среднее не сильно отличаются истинного среднего, и тоже "паникуют" начиная с 1% выбросов. Возможно, дело в слишком малом количестве отброшенных точек. Подбор оптимального значения может исправить эту ситуацию, и сделать эти метрики более робастными.
  • Винзоризированное среднее по перцентилям (95% и 1%) - срабатывает при пороге 5% выбросов - что тоже кажется рановато.
  • Медиана - не реагирует на изменения пока они не затронут 50% значений. Так можно проспать все на свете, в том числе и революцию.
  • Усеченное среднее по перцентилям (95% и 1%) - бесполезно
  • Классический Trimean и Модифицированный Trimean - показывают самое адекватное соотношение робастности, и чувствительности. Причем есть потенциал "донастройки" этой метрики путем подбора нужных перцентилей в формуле

Пороги выбросов

При каком пороге выбросов Центральная тенденция должна сигнализировать об изменениях в рабочем процессе - зависит от специфики ваших задач.

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

Для Технической поддержки (Support) ситуация иная. Скорость реакции на инциденты, и решение проблем пользователя - является приоритетом. Поэтому в идеале количество выбросов (долгих задач) не должно превышать 5-10%

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

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

Итоги первой части

  1. Главная мысль: для выбора центральной тенденции нужно хорошо подумать. Подумать о том, что для вашей системы "типичное" поведение, какие у нее статистические характеристики, на каких распределениях вы будете его считать.

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

  2. Перестаньте отвечать на вопрос заказчика «Сколько эта задача займет в среднем времени?». В наших реалиях «среднего» не существует.
  3. Для быстрой оценки состояние рабочей системы можно использовать Медиану (50-й перцентиль). Это ваша точка отсчета. Но не будьте наивны, давая Заказчику прогноз по Медиане — это обещание с вероятностью 50/50. Как в том анекдоте про динозавра: либо встречу, либо нет.
  4. Усеченное и винзорированное среднее, среднее за вычетом 95% перцентиля обладают чуть лучшей робастностью чем Среднее, но более гибкие и чувствительные, чем Медиана.
    Применяемая в JIRA Control Chart "скользящее среднее" - это разновидность "усеченного среднего", которая рассчитывается как среднее значение по N ближайших точек слева и справа относительно текущей. Если потратить время, то можно подобрать такое число N, которое обеспечит вам почти идеальный баланс между робастностью и чувствительностью
  5. Ну, а если вы техно-гик, который готов сделать все “по фэн-шую”, невзирая на сложность расчетов, то пользуйтесь Trimean - она представляет собой почти идеальный баланс между робастностью и чувствительностью к выбросам.

Ну а все-таки, что нужно чтобы давать уверенные прогнозы Заказчику? Как мы говорили выше, нужно знать Центральную тенденцию, как базис, и разброс рисков, чтобы дать прогноз.

То есть нам надо смотреть еще и на Вариацию и заглянуть дальше середины — в мир Квантилей и Персентилей. Но об этом — в следующей части.

Полезные материалы

Задайте вопрос автору статьи в его канале "Данные в действии"

Что еще почитать в ожидании следующей части статьи:

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