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

Kate

Administrator
Команда форума
Одним из наших приоритетных направлений является работа с серьезными проектами, состоящими из потока крупных задач.

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

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

Некоторым по душе Trello, а другие хотят «швейцарский нож» в управлении проектами по типу Jira. Последняя — самая популярная система управления проектами, которую используют более 65 тысяч компаний. Однако такое решение сильно «кусается» в цене - в среднем 25 тыс. рублей в месяц за 50 пользователей. Для сравнения облачная версия YouTrack для того же количества пользователей будет обходиться в 15 тыс. рублей в месяц, а Планфикс в 9 тыс. рублей. Вести учет времени и управлять проектами можно и бесплатно в Битрикс24 (до 12-ти пользователей), или в Google-таблицах.

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

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

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

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

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

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

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

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

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

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

Пример записей о трате времени в Tempo
Пример записей о трате времени в Tempo
При любой интеграции актуален вопрос наличия API. Желательно документированного. Хотя бы рабочего… У YouTrack и Tempo есть REST API для решения текущей задачи. API Jira не использовалось, т.к. учет и работа с потраченным временем организована с помощью Tempo.

Получить нужную нам информацию из двух систем мы можем. Но как теперь все это связать?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Соавтор статьи: Егор Борисовский.

Источник статьи: https://habr.com/ru/post/563240/
 
Сверху