Русский
Русский
English
Статистика
Реклама

Чем заняты сотрудники? Анализируем Jira Software

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

Данная статья является углублением к предыдущей: Автоматизация аналитики Jira средствами Apache NiFi. Теперь хочу подробнее раскрыть наш взгляд на отчетность по Jira Software и опыт ее реализации при помощи R. Язык тут, конечно же, не догма. Сегодня наше все это концепция.

image

Картинка позаимствована тут.



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

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

Таки да, нам это удалось. Правда, не обошлось без помощи PM-a попервой.

Реорганизация таск-треккера


Разумеется каждая конкретная Jira существенно отличается от какой-либо другой. И наше решение вполне может не быть для вас самым эффективным или же вообще применимым.

Прошу расценивать это лишь как идею организации таск-треккера, на примере нашей аутсорсинговой компании.

Мы сделали всего два движения.

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

О втором чуть подробнее. Нам удасться увидеть общую картину и ответить на стратегические вопросы, если рабочий процесс будет представлен в виде некого потока, в который каждый сотрудник делает свой вклад. Для этого, в нашем случае, идеально подходит концепция IT4IT, со своей операционной моделью, базирующейся на четырехпотоковой цепочке создания ценности:
image
Собственно, что мы сделали. Воспользовавшись IT4IT, добавили такое понятие как компонента задачи в Jira. У нас они следующие:

  • Service to Portfolio (Demand and Selection) стадия раскурки, поиска, выбора сервиса, технологии.
  • Request to Deploy (Plan and Design) обсуждение, планирование разработки, развития услуг, сервисов.
  • Request to Deploy (Develop) разработка услуги, сервиса чего либо.
  • Request to Deploy (Deploy) развертывание чего либо.
  • Request to Deploy (Test) тестирование сервиса, услуги.
  • Request to Fulfill этап эксплуатации разработанных сервисов, предоставление услуг.
  • Detect to Correct (Correct) исправление, доработка внутренних сервисов и услуг.
  • Detect to Correct (Monitor&Feedback) тоже самое, только + общение с клиентом.

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

Аналитика данных в R


Теперь препятствий для реализации отчетности быть не должно. Сформулирую подобие ТЗ.

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

Зная что нам нужно добыть идем выгружать данные. Через Jira API запрашиваем все таски (issue), обновленные на прошедшей неделе. Добываем из них ключи и к каждой таске догружаем историю логирования (worklog) и историю изменений (changelog). Извращения с догрузкой необходимы, чтобы обойти ограничения апишки.

Далее начинается зона ответственности R, т.к предобработка полученых данных это составляющая скрипта генерации отчета.

В ней нету чего-то заумного, необходимо просто распарсить JSON-ы, пришедшие от апи и оставить только необходимые свойства (пункты в Jira). Единственный момент, при обработке changelog-а нам интересны только изменения статуса задачи, остальное можно смело удалять.

Ну и, наконец-то мы подобрались к аналитике.

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

# Открыто тасокthis_week_opened <- jira_changelog_data %>%         filter(issue_type != "Epic") %>%         filter(as.Date(issue_created) >= start_date) %>%         filter(as.Date(issue_created) <= end_date) %>%   select(key, issue_created) %>% unique() %>% nrow()# В работеthis_week_processed <- jira_worklog_data %>% filter(as.Date(started) >= start_date) %>%         filter(as.Date(started) <= end_date) %>%   select(key) %>% unique() %>% nrow()# Закрытоthis_week_closed <- jira_changelog_data %>%         filter(issue_type != "Epic") %>%         filter(as.Date(issue_resolutiondate) >= start_date) %>%         filter(as.Date(issue_resolutiondate) <= end_date) %>%  select(key, issue_created) %>% unique() %>% nrow()# Отправлено в холд / бэклог this_week_holded <- issue_history %>% filter(change_date >= start_date) %>%         filter(change_date <= end_date) %>%filter(toString == "Hold" | toString == "Backlog") %>%   select(key) %>% unique() %>% nrow()


Не напоминает ли вам это псевдокод? А если я скажу что оператор '%>%' передает данные от предыдущей функции к следующей. А последняя модификация во всей цепочке будет сохранена в переменную. Представьте себе, мы только что поднялись на порог вхождения в R!

Вы еще не влюбились в него? Тогда, если позволите, я насыплю еще немного инфы.

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

В базовую поставку R включен основной набор пакетов, а всего по состоянию на 2019 год доступно более 15 316 пакетов.

И последнее на сегодня. В этом году R ворвался в десятку самых популярных языков в мире (пруф). Горжусь им.

Прошу простить мне сие отступление. Об R я могу говорить часами. Просто он насквозь окутан мифами, а я люблю их разрушать хобби, знаете ли.

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

image

Продолжу показывать вам итоговые картинки из этого же реального отчета.

Направление нашей деятельности отражает следующий график. Он также позволяет оценить загруженость сотрудников операционной деятельностью.

image

А вот и разрез всех задач по компонентам. Он и дает ответ на вопрос чем мы занимаемся. Картину дополняю цифрами.

image

Ну и обещанный вклад каждого сотрудника в общую картину, приведенную выше.

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

image

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

Генерация отчета


Настроить автоматическую генерацию отчета, например, по понедельникам из R скрипта можно с помощью пакета cronR, это исключительно просто.

У нас же все сложнее и изящнее. Еженедельную выгрузку данных из Jira API, запуск скрипта генерации отчета и отправку отчета всем сотрудникам по Email мы реализовали с помощью Apache NiFi. Эта тема насколько обширная, что вполне себе заслужила отдельную статью.

Заключение


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

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

Спасибо.
Источник: habr.com
К списку статей
Опубликовано: 17.11.2020 18:17:45
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

R

Управление проектами

Atlassian

Apache nifi

Jira software

Аналитика

Отчетность

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru