Время прочтения: 3 мин.

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

В системе таск-трекинга JIRA у каждой задачи есть исполнитель, автор и координатор, причем это может быть один и тот же человек. Также существуют поля, в которых можно указать сразу несколько сотрудников, если задача является командным проектом. Данная информация закрепляется за каждой задачей в JIRA. Если подсчитать, сколько задач закреплено за каждым пользователем и в какой роли он при этом находится, можно составить аналитический отчет. Он отобразит загруженность каждого сотрудника, сколько и каких задач он взял на исполнение, координирование или в скольких задачах он числится как автор. Это позволит составить общую картину эффективности отдела и оптимизировать распределение задач среди сотрудников. Итоговый отчет по сотрудникам можно представить в виде dataframe. Данные из которого для удобства визуализации после обрабатываются в Power BI.

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

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

Отчет формируется с использованием Pandas и JIRA API. В датафрейме собирается отчет, каждой строке которого соответствует один сотрудник. В столбцах указаны списки задач (ID задач через запятую и дата присвоения ей того или иного статуса через слэш) из той или иной категории, например «Тем принято», «В работе задач». Также указывается информация о сотруднике: ФИО, должность, корпоративная почта и.т.д.

О том, как подключаться к серверу, получать от него данные и прочей базовой информации о работе с JIRA API, рассказано в первой статье. Ниже приведен пример кода формирования датафрейма:

ldf.ListDataFrame.add_columns([
    FCol('ID', 'id'),
    FCol('ФИО', 'name'),
    FCol('Почта', 'email'),
    filtrate('Успешно реализовано задач', 'issues', success),
    get_list_date('Успешно реализовано задач'),
    ldf.Column('Должность',   position).process(to_context('position')),
]).data_frame().to_excel('users.xlsx')
Фильтр success, вытягивающий с сервера задачи, соответствующие необходимым критериям:
def success(iss):
    return get_type(iss) == 'Задача' and get_status(iss) == 'Согласован'

Функция фильтрации по входным параметрам. Она возвращает колонку с именем name, в которую будет записано количество задач, соответствующее признакам, указанным в filter. Параметр fld, в который передается ‘issues’ на этапе формирования датафрейма, означает, что пользователь в выбранных задачах является автором.

def filtrate(name, fld, filter):
    return FCol(name, fld).process(lambda c, v: [i for i in v if filter(i)]).process(to_context(name)).process(
        lambda c, v: str(len(v)))

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

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