Одним из наших приоритетных направлений является работа с серьезными проектами, состоящими из потока крупных задач.
Чтобы совершенно не утонуть в скоплении работ разного приоритета в серьезных проектах всегда используют системы управления задачами. Это нужно как для самого процесса разработки, так и для дальнейшего анализа проблем.
Рынок инструментов управления проектами и задачами предлагает обширный функционал и поддержку популярных методологий разработки. У каждой компании свой способ считать время сотрудников.
Некоторым по душе Trello, а другие хотят «швейцарский нож» в управлении проектами по типу Jira. Последняя — самая популярная система управления проектами, которую используют более 65 тысяч компаний. Однако такое решение сильно «кусается» в цене - в среднем 25 тыс. рублей в месяц за 50 пользователей. Для сравнения облачная версия YouTrack для того же количества пользователей будет обходиться в 15 тыс. рублей в месяц, а Планфикс в 9 тыс. рублей. Вести учет времени и управлять проектами можно и бесплатно в Битрикс24 (до 12-ти пользователей), или в Google-таблицах.
Обычно у заказчика и подрядчика разные системы и разный способ считать время. Каждый из них желает видеть потраченное время на выполнение задач у себя.
Как правило, над проектом работают от одного до пяти исполнителей (аналитиков, дизайнеров, верстальщиков, разработчиков, тестировщиков) одновременно, выполняющих по несколько задач в день. Это сотни человеко-часов. Можно, связать системы управления задачами заказчика и подрядчика посредством ручного переноса данных из одной в другую, но это очень долго и больно.
А если над проектом работает не один подрядчик? И каждый из них пользуется разными инструментами учета времени?
Подобную проблему решает интеграция системы заказчика с системой подрядчика. Про такую интеграцию подробно расскажем в статье на конкретном примере взаимодействия.
Особенности используемых систем
Для одного из наших проектов стояла задача разработать сервис, синхронизирующий потраченное время по задачам между нами и заказчиком.
Для управления проектами и учета времени мы используем баг-трекер YouTrack компании JetBrains. Процесс учета времени у нас в компании подробно описан в статье «Интеграция Битрикс24 с системой учета времени в Google Spreadsheet» .
У каждой траты времени есть автор, дата, потраченное время и комментарий. Комментарий к каждой такой записи состоит из описания проделанной работы, XML_ID (уникальный номер записи о трате времени в нашей внутренней системе «Потрачено») и версия этой записи для последующей оптимизации изменений.
Со стороны заказчика используется система управления задачами и проектами Jira компании Atlassian. Аналогично с YouTrack создаются задачи, относящиеся к конкретному проекту, к которым относится потраченное время.
Вести учет времени в Jira можно с помощью стандартных средств, а также и с помощью приложений, расположенных в Atlassian Marketplace. Лидер среди приложений для учета времени — Tempo Timesheets. Умеет считать потраченное и оставшееся время с помощью внесения отдельных записей о трате времени к задаче.
При любой интеграции актуален вопрос наличия API. Желательно документированного. Хотя бы рабочего… У YouTrack и Tempo есть REST API для решения текущей задачи. API Jira не использовалось, т.к. учет и работа с потраченным временем организована с помощью Tempo.
Получить нужную нам информацию из двух систем мы можем. Но как теперь все это связать?
Возможные схемы реализации обмена данными о тратах времени
Для учета времени не нужно переносить данные из системы заказчика подрядчику. Записи о трате времени должны браться из YouTrack и передаваться в Jira через систему синхронизации.
Дальше стоит определиться с частотой актуализации данных. Если важен обмен в режиме реального времени, то сначала стоит проверить, поддерживает ли такую возможность сервис из которого эти данные берутся. Например, в Trello такое можно реализуется помощью вебхуков. Для текущей задачи моментальное обновление данных не сильно важно, поэтому время синхронизируется один раз в сутки ночью.
Связь между задачами в двух системах реализована на стороне YouTrack с помощью кастомного поля для проекта, где вручную проставлялся id задачи из Jira.
Во время синхронизации сначала выбираются доступные к синхронизации задачи из Youtrack, а потом для каждой из них записи о тратах времени за последний месяц. Для полученных задач ищутся аналоги в Jira. Затем записи о трате времени для каждой из задач сопоставляются с теми, которые есть в Jira.
Данные поддерживаются в актуальном состоянии за счет использования версионирования записей с помощью Потрачено. Если данные расходятся, то сравниваются версии записей и добавляются новые, либо удаляются лишние из Jira.
Как это работает сейчас?
Обмен выполняется каждую ночь по расписанию. Также была разработана отдельная страница с ограниченным доступом, на которой можно запустить процесс обмена и посмотреть отчет о его результатах.
В процессе каждого обмена логируются все операции изменения данных в системе заказчика и возникающие ошибки. Логи хранятся структурировано с привязкой к дате и времени, что дает легко отследить историю изменений.
В отдельные настройки вынесены проекты и задачи, доступные для обмена и те, которые исключены из него.
В результате время синхронизируется для двух наших проектов, обрабатывая потраченное время для сотни задач каждый день. Заказчик получает информацию по потраченном времени в автоматическом режиме, а менеджер проекта избавлен от ручного переноса этой информации из одной системы в другую.
Подобная система поможет облегчить и работу с подрядчиками над крупными проектами и процесс анализа потраченного времени для заказчика.
Разработчики будут продолжать вести учет времени в своей системе, а заказчик видеть результаты в другой, что поможет сосредоточиться на проекте и эффективнее решать задачи.
Мы как опытный веб-интегратор поможет связать используемые вами инструменты управления проектами в единое целое. Если есть вопросы либо возникнут проблемы при настройке, то задавайте вопросы в комментариях.
У нас большой опыт работы с нагруженными, масштабными, проблемными и просто растянутыми по времени проектами, и мы готовы поделиться им с вами!
Соавтор статьи: Егор Борисовский.