Redmine Estimates  – это плагин к трекеру Redmine который упрощает жизнь и экономит время менеджеров проектов и менеджеров управляющих технической поддержкой.

С чего всё начиналось: как возникла идея написать систему согласования оценки для Redmine

Идея плагина возникла когда на задачах технической поддержки мы постоянно сталкивались с тем что оценку должны давать несколько специалистов, например: дизайнер, front-end разработчик и back-end разработчик и в процессе выполнения задачи и поступления дополнительных пожеланий от заказчика возникает необходимость в дооценке. А дальше при согласовании месячного отчета начинают возникать вопросы, почему задача оцененная в 2 часа по факту заняла 10 часов, ведь это становится видно только в конце месяца.

Как удобно согласовывать оценки в задачах и дооценивать их по ходу выполнения чтобы это было просто и понятно и команде и клиенту?

Первая же идея, которая пришла в голову — ограничить одну задачу техподдержки одним видом деятельности и каждое новое пожелание вести отдельной задачей и всё это связывать через подзадачи. Но такая реализация в Redmine крайне неудобная, порождает сложности и необходимость контролировать что у тебя происходит в 10 задачах вместо одной.

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

В итоге всё свелось к тому что до разрботки Redmine Estimates мы просто вели всё в комментариях, примерно так, и это было крайне неудобно:

Раньше мы вели оценки в комментариях к задачам

Как ставили задачу по разработке Redmine плагина для согласования оценки

Задачу ставили так:

  • Оценка теперь как и затраченное время, дробится на разные виды деятельности. Общее поле "оценка" считается как сумма оценок по всем видам деятельности
  • На странице редактирования оценки список несогласованных позиций оценки - вот так

Прототип интерфейса системы согласования оценки в Redmine

  • Когда мы обновляем задачу или нажимаем "добавить оценку", открывается форма редактирования задачи, в ней добавляется графа согласования оценки.
  • Оценки хранятся в базе в отдельной таблице аналогично time_entries (встроенная сущность "Затраченное время" в Redmine). 
  • При любом обновлении оценок поле "оценка" задачи обновляется как сумма всех оценок привязанных к этой задаче. Как обновлять - при сохранении, при открытии или как-то еще - вопрос к размышлению.
  • Кнопка "Согласовать" в таблице оценок доступна только определенным ролям (менеджер, клиент). Идеальная реализация - сделать в rm отдельное право доступа чтобы можно было его выставлять в управлении ролями.
  • Когда происходит согласование оценки, должно быть видно кто и когда её согласовал.
  • Подтвержденные записи удалять и редактировать не может никто (кроме администратора)! 
    После подтверждения даем 1 минуту в течении которой можно опять нажать кнопку и подтверждение пропадёт, после 1 минуты или если перезагрузил страницу - всё, отменить подтверждение нельзя.
  • Если есть несогласованная оценка возле поля оценка появляется иконка warning и надпись "есть несогласованная оценка". Это поле должно быть доступно для фильтра в списке задач.
  • Редактировать и удалять записи согласования оценки (не подтвержденные) могут:
    • тот, кто её сделал
    • администраторы
    • сделать в Redmine отдельное право доступа чтобы можно было его выставлять в управлении ролями.

Реализация или что Redmine Estimates умеет сейчас

Задача почти год лежала на полке ожидая своего часа, но наконец, в июле 2016 года, мы поручили разработку нашему тогда R&D Developer'у Николаю Михно.

Николай Михно, разработчик

Не буду долго описывать как это реализовывалось, опыта в разработке под Redmine у нас было мало, у Николая опыта в Ruby не было вообще, и мы, похоже, собрали все шишки, какие было можно собрать на этом пути.  Но мы это сделали! Плагин назвали Redmine Estimates.

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

Redmine Estimates - множественные оценки одной задачи

Подтвержденные оценки по умолчанию скрываются, но можно посмотреть все оценки если нажать "Показать подтвержденные оценки"

Redmine Estimates - показать подтвержденные оценки

Право на подтверждение оценки, редактирование записей оценки выставляется отдельным полем в разделе "Администрирование".

Redmine Estimates - настройка прав доступа

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

В общем списке задач можно вывести поля "Всего часов оценок" и "Всего подтвержденно оценок" и использовать их как фильтры.

Redmine Estimates - сумма оценок и подтвержденные оценки в списке задач

Планы на ближайшее будущее

В ближайшем будущем планируем доделать то, что не готово в текущем релизе:

  • Уведомления о подтверждении оценки и соответствующая запись в Journal
  • Запрет на редактирование подтвержденных оценок
  • Признак "Есть неподтвержденные оценки" и соответствующая иконка warning
  • Вычистить код от упоминаний time_entries на базе которых мы делали плагин

Где скачать плагин и как установить?

Ссылка на репозиторий GitHub: https://github.com/nmikhno/redmine_estimates

Разработчик плагина: Николай Михно

Инструкция по установке там же. Полностью Open Source, таким и останется.

Разработан и тестировался для Redmine 2.1, желающие портировать на другие версии Redmine и поучаствовать в разработке и доработке на свободных началах приветствуются. 

03.10.2016
Рейтинг: 0 / 5 (0)