Skip to content
Ilya LK Smirnov edited this page May 3, 2024 · 21 revisions

Вводная

Jira Metrics Plugin (далее JMP) - это инструмент для сбора и анализа производственных метрик на основе данных в Jira. Инструмент позволяет легко справляться с такими задачами как:

  • Сбор ключевых метрик потока
  • Анализ и выявление узких горлышек и точек роста процессов
  • Формирование отчетности по производственной системе
  • Принятие решение об изменениях на основе данных

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

Здесь вы можете найти документацию в которой описаны нюансы работы этого инструмента.

Установка

JMP не требует выделенной инфраструктуры, серверов, обслуживания и работает в любом браузере на основе Chromium (Chrome, Edge, Yandex, Opera…) Также вам не потребуется привлекать вашего Jira администратора или ставить задачи на коллег, чтобы начать использовать инструмент.

Актуальная версия расширения распространяется бесплатно и доступна в Интернет Магазине Chrome по ссылке - https://chromewebstore.google.com/detail/jira-metrics-plugin/ehhncnkhbchjllmnbcfebjllhnkgnfpc

Для того, чтобы начать работать с инструментом, просто перейдите по ссылке и нажмите “Установить”

image

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

JMP добавляет две кнопки на экран с доской в Jira:

  • Кнопка - “Analyze Metrics” добавляется в верхний правый угол доски.
  • Кнопка - Metrics добавляется в левое боковое меню.

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

image

Выборка данных и фильтрация

Изначальный скоуп

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

image

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

Для последующих примеров давайте представим, что у вашей доски простой фильтр:

Project = Development

В таком случае плагин по умолчанию запросит все задачи, которые попадают под такой запрос, в рамках этого примера, все задачи из Jira проекта "Development".

Фильтрация

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

  • Колонки доски
  • Выбранный период времени
  • Плавательные дорожки
  • Быстрые фильтры

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

Project = Development AND ($Selected_Columns DURING $Selected_Time_Period AND $Selected_Swimlanes_Filter AND ($Selected_Quick_Filters) )

Фильтрация по колонкам доски

image

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

В каждой колонке доски может быть несколько различных статусов, когда в настройках отчёта мы указываем, какие колонки включать а какие нет, мы добавляем в запрос на получение задач все статусы которые есть в выбранной колонке через выражение "status was in" Например, у нас в колонке доски Delivery есть два статуса "Development" и "Code Review", если это будет единственная выбранная колонка, то мы получим вот такой JQL запрос

Project = Development AND status was in ("Development", "Code Review",)

Фильтрация по периоду времени

image

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

Этот фильтр плотно связан с предыдущим фильтром по колонкам и работает через выражение During ($date_from, $date_to)

Например, если мы выберем диапозон дат с 1 марта 2024 по 1 апреля 2024 года, и оставим выбранной только колонку Development из примера выше то в итоге получим вот такой JQL запрос:

Project = Development AND status was in ("Development", "Code Review",) DURING ("2024-03-01", "2024-04-01")

Фильтрация по плавательным дорожкам и быстрые фильтры

image

В отличие от фильтров выше, дорожки и быстрые фильтры уже имеют "предустановленный" JQL запрос, который просто нужно получить из Jira и добавить к нашему уже существующему выражению.

Допустим мы хотим проанализировать только критически важные задачи которые шли по отдельной плавательной дорожке в которую попадают задачи по JQL Priority = Expedite

А также, только успешно закрыты задачи, а значит подходящие под выражение Resolution = Fixed на которое мы сформировали отдельный быстрый фильтр "Только успешно закрытые"

Если мы выберем эту дорожку и этот фильтр, то получим следующий JQL по которому будет сформирована выборка

Project = Development AND status was in ("Development", "Code Review",) DURING ("2024-03-01", "2024-04-01") AND (Priority = Expedite) AND (Resolution = Fixed)

Резюме по выборке

С помощью фильтров формируется JQL запрос на получение нужной выборки задач из 5ти основных частей:

  • Общий фильтр доски
  • Задачи которые были в выбранных колонках/статусах
  • За выбранный период времени
  • С учётом фильтров свимлейнов
  • С учётом выбранных быстрых фильтров

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

image

Отчёт Cycle Time

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

Отображение задач на гистограмме

По оси X находится время (в днях, неделях или месяцах) за которое решаются задачи

По оси Y находится кол-во задач, которые были решены за указанное время. Чем выше столбец, тем больше задач были решены за это время.

image

На график сразу добавлены две линии

  • Синяя - 50% процентиль. Она указывает на время, за которое решается половина всех задач в системе.
  • Красная - 95% процентиль. Она указывает на время, за которое решается подавляющие большинство задач в системе. Задаче правее этой линии принято называть хвостами или аномалиями, так как они решались дольше всех прочих и требует анализа, что повлияло на столько долгую реализацию.

При наведение курсона на график, появится выделение по столбцу с подсказкой:

image

В этой подсказке будет указано:

    • LeadTime - Сколько времени решалась эта группа задач
    • Tasks - Какое кол-во задач решалось за это время
    • Percentile - Какое кол-во задач решается за это время или быстрее

Как считается время решения?

TL&DR - Как сумма времени, которое задача провела во всех выбранных колонках.

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

image

Например, вы можете выбрать только одну колонку, для примера, пусть она называется Delivery. В одной колонке на доске может находиться несколько статусов, например "Development" & "Code Review". В таком случае, для каждой задачи будет посчитано сумма времени, которое эта задача провела в этих статусах. Каждая задача по которой подсчитана эта сумма располагается на графике, после чего происходит подсчёт процентилей.

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

Важный нюанс Время в самой последней колонке на доске - не учитывается в общем CycleTime, так как подразумевается, что это колонка "Готово" и работы в ней уже не ведутся.

Важный нюанс 2 В отчёте учитываются все задачи которые были на доске за выбранный период, без разницы, закрыты они или нет. Если вы хотите смотреть результаты только по закрытым задачам, мы рекомендуем вам добавить быстрый фильтр "Закрытые задачи" с JQL

Resolution != Unresolved

А если вам нужны данные для отчёта за некий период, например месяц или квартал, то мы рекомендуем использовать быстрый фильтр с следующим JQL

Resolved >= $Start_date AND Resolved < $End_date

Дополнительно

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

image

В ней указано:

  • Total Tasks - Общее кол-во задач попавших в выборку
  • Mean Time - Среднее время время поставки ценности ()
  • Процентили - Уже посчитанные 50, 75, 80, 85, 90, 95, 100 процентили

Под этой табличкой вы можете найти галочку "Show Reports as Table", при нажатие на неё все задачи попавшие в выборку будут выведены табличкой где каждая строка - это ряд на гистограмме. Табличка отсортирована по CycleTime - от самого большого к самому маленькому. За счёт этого, табличку удобно использовать при подготовке к "ревью сервиса поставки", обращая внимание на те задачи из неё, которые дольше прочих поставлялись и потому требуют внимания и анализа.

Отчёт Aging Chart

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

Отображение задач на диаграмме

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

image

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

image

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

image

Расчет статистики (процентилей)

image

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

Пользователи могут выбрать способ расчета статистики (процентилей) для задач:

  • All columns - Учитывается время во всех выбранных колонках.
  • Last Column - Учитываются время во всех выбранных колонках, кроме последней (подразумевается, что это колонка "Готово") и время накопленное в ней исключается из расчёта.

Цветовое кодирование

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

  • Зелёная - Задачи которые накопили времени меньше, чем по 50% процентили и скорее всего не требующие вашего внимания.
  • Красная - Задачи которые накопили больше времени, чем по 50% процентили и скорее всего требуют анализа.

Наглядный пример

image

Высота цветных блоков отличается, чем правее мы смотрим, тем выше заканчивается блок того или иного цвета.

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

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


Выбирая дополнительные процентили для отображения, добавляются дополнительные цвета. Например, если мы выберем две процентили, 50% и 85% то все задачи поделятся на три группы:

  • Зелёная - Задачи которые накопили времени меньше, чем по 50% процентили
  • Оранжевая - Задачи которые накопили времени больше чем по 50% процентили, но меньше чем по 85% процентили
  • Красная - Задачи которые накопили больше времени, чем по 85% процентили

Наглядно:

image

Вы также можете нажать на чекбокс "Show calculation details", чтобы увидеть сырые данные на основе которых производился рассчёт.

Отчёт Cumulative Flow Diagram

//ToDo

Отчёт Predictability

//ToDo

Отчёт Task Table

//ToDo

Полезные ссылки

Ссылка на Chrome Store - https://chromewebstore.google.com/detail/jira-metrics-plugin/ehhncnkhbchjllmnbcfebjllhnkgnfpc

Чат с поддержкой в Telegram - https://t.me/JiraMetrics

GitHub репозиторий - https://github.com/anvarKhakimov/jira-metrics-plugin/