Синхронизируем Время Выполнения Задач С Jira Заказчика

Один из наших приоритетов — работа с серьёзными проектами, состоящими из потока больших задач.

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

Это необходимо как для самого процесса разработки, так и для дальнейшего анализа проблем.

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

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

Некоторым людям нравится Trello, а другим нужен «швейцарский нож» для управления проектами, такой как Jira. Последняя является самой популярной системой управления проектами, которую используют более 65 тысяч компаний.

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

Для сравнения, облачная версия YouTrack для такого же количества пользователей будет стоить 15 тысяч рублей в месяц, а «ПланФикс» — 9 тысяч рублей.

Учитывать время и управлять проектами можно бесплатно в Битрикс24 (до 12 пользователей), либо в Google таблицах.

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

Каждый из них хочет увидеть время, потраченное на выполнение заданий самостоятельно.

Как правило, над проектом одновременно работают от одного до пяти исполнителей (аналитиков, дизайнеров, верстальщиков, разработчиков, тестировщиков), выполняя несколько задач в день.

Это сотни человеко-часов.

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

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

Синхронизируем время выполнения задач с Jira заказчика

YouTrack и Jira Подобная задача решается путем интеграции системы заказчика с системой подрядчика.

О такой интеграции мы подробно поговорим в статье на конкретном примере взаимодействия.



Особенности используемых систем

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

Для управления проектами и отслеживания времени мы используем трекер ошибок YouTrack от JetBrains. Подробно процесс учета рабочего времени в нашей компании описан в статье «Интеграция Битрикс24 с системой учета рабочего времени в Google Spreadsheet».

У каждой траты времени есть автор, дата, потраченное время и комментарий.

Комментарий к каждой такой записи состоит из описания проделанной работы, XML_ID (уникальный номер записи о потраченном времени в нашей внутренней системе «Потрачено») и версии этой записи для последующей оптимизации изменений.



Синхронизируем время выполнения задач с Jira заказчика

Пример записей о трате времени в YouTrack На стороне заказчика используется система управления задачами и проектами Atlassian Jira. Аналогично в YouTrack создаются задачи, связанные с конкретным проектом, которому приписывается затраченное время.

Отслеживать время в Jira можно как стандартными инструментами, так и с помощью приложений, находящихся в Atlassian Marketplace. Лидером среди приложений для учета рабочего времени является Tempo Timesheets. Возможность подсчитывать затраченное и оставшееся время, делая отдельные записи о времени, затраченном на задачу.



Синхронизируем время выполнения задач с Jira заказчика

Пример записей о трате времени в Tempo При любой интеграции актуален вопрос доступности API. Желательно документально.

По крайней мере рабочий.

У YouTrack и Tempo есть REST API для решения текущей проблемы.

Jira API не использовался, поскольку учет и работа с затраченным временем организованы с помощью Tempo. Мы можем получить нужную нам информацию из двух систем.

Но как все это теперь можно связать?

Возможные схемы реализации обмена данными о потерях времени

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

Записи о потерях времени следует брать с YouTrack и передавать в Jira через систему синхронизации.

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

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

Например, в Trello этого можно добиться с помощью вебхуков.

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

Связь задач в двух системах реализована на стороне YouTrack с помощью настраиваемого поля проекта, куда вручную вводится id задачи из Jira.

Синхронизируем время выполнения задач с Jira заказчика

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

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

Синхронизируем время выполнения задач с Jira заказчика

Схема взаимодействия нашего сервера, YouTrack и Jira

Как это работает сейчас?

Обмен происходит каждую ночь по расписанию.

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



Синхронизируем время выполнения задач с Jira заказчика

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

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

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

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

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

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

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

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

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

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

Теги: #Управление разработкой #Управление проектами #ИТ-инфраструктура #jetbrains #Jira #bug tracker #youtrack

Вместе с данным постом часто просматривают: