Redmine Estimated Plugin - система узгодження оцінки в Redmine | блог Evergreen 8 Redmine Estimated Plugin - система узгодження оцінки в Redmine | блог Evergreen 9 Redmine Estimated Plugin - система узгодження оцінки в Redmine | блог Evergreen 10

Redmine Estimated Plugin – система узгодження оцінки в Redmine

#SaaS

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 і взяти участь в розробці та доопрацюванні на вільних засадах – будемо раді.  

02.10.2016
Зображення, використані в статті, були взяті з відкритих джерел і використовуються як ілюстрації.
Хочете обговорити ваш проект або замовити розробку?
Надіслати
Цей сайт є українською мовою. Ви можете переключити мову у меню, або зробити це зараз.