В моей практике часто была проблема с тем, что разработчики, аналитики и дизайнеры очень долго проводят Review задачи и из-за этого процесс разработки приостанавливается.
В какой-то момент я решил разобраться с этим и поднял вопрос на ретроспективе. Оказалось, что часто проблема возникает из-за того, что ответственный не увидел задачи или забыл о том, что ее нужно проверить. Для решения этой проблемы мы настроили уведомления в Jira и теперь время на проверку задачи уменьшилось в два раза.
В этой статей я хочу поделиться способом, который позволит вам настроить напоминания о том, что пора проводить ревью задачи с использованием средств Jira из коробки.
0. Описание бизнес процесса
В данной статей я буду ссылаться на обычный бизнес процесс, который мы используем в небольших командах:

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

Этапы добавления нового поля представлены ниже:
Добавление полей
Для этого перейдите в раздел настроек «Задачи».

ВыПерейдите в раздел «Настраиваемые поля».

И нажмите на кнопку «Добавить пользовательское поле».

Можете воспользоваться поиском и найти «Выбор пользователя». Здесь стоит обратить внимание, что в разделе «Стандартные» предлагается выбор одного пользователя, в разделе «Дополнительно» вы можете найти поле с выбором нескольких пользователей.


Введите названия:

Выберите экраны, на которые хотите добавить отображение поля:

Если у вас есть несколько вкладок при создании задачи, вы можете выбрать нужное в выпадающем списке.
2. Алгоритм отметки пройденного ревью
В разработке для того, чтобы отметить, что ревью пройдено, используют пометку «Approve». В Jira нет такого функционала, но мы для этого начали использовать «Голоса»: как только задача полностью готова, ревьюер ставит голос за задачу. Задача засчитывается, когда больше 2 ревьюеров проголосовало за задачу.

3. Создаем фильтр для отбора задач на ревью
Для создания фильтра перейдите в раздел “Задачи” - “Поиск задач”:

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

У вас откроется текстовое поле, в которое потребуется ввести поисковой запрос.

Теперь нам нужно составить запрос. Для этого вспомним с какими условиями мы работаем:
задача на ревью, когда находится в статусе «Ревью»;
задачу нужно показывать, пока я не проголосовал за задачу.
Поисковой запрос выглядит так:
project = CHANGE AND status = "Ревью" AND "Ревьюеры Аналитики" in (currentUser()) AND (voter NOT IN (currentUser()) OR votes = 0) ORDER BY priority DESC, updated DESC
Давайте немного его разберем:
project
- название проекта, в моем случае проект называетсяCHANGE
;статус должен соответствовать статусу ревью:
status = “Ревью”
;в перечне ревьюеров я должен проверить, что задача стоит на мне:
"Ревьюеры Аналитики" in (currentUser())
;-
затем мы должны проверить проголосовали мы или нет
проверяем, что мы есть в списке проголосовавших
voter not in (currentUser())
;если никто не проголосовал, то Jira не создает список пользователей, и из-за этого условие не выполняется. Поэтому важно добавить условие проверки, что если никто не проголосовал, то нам такая задача тоже подходит
votes = 0
.
Дальше можно сортировать как вам потребуется. Я сортирую по приоритету и времени изменения задачи.
В результате у вас отобразится список задач, в которых вы выступаете в качестве ревьюера и в которых вы еще не отдали свой голос.

Затем сохраняем запрос.

Когда будете называть задачу, учтите, что название будет указано в теме письма.
4. Создание уведомлений
Когда вы сохраните фильтр появится кнопка “Детали”. При нажатии на нее вы увидите:

В этом разделе вы можете настроить: доступ к вашему фильтру и “подписки”. Второе нас и интересует.
Подписка представляет собой меню по настройке уведомлений:

Здесь представлены разделы:
Получатели
- кому будут отправлены уведомления. Здесь вы можете выбрать группу пользователей, которым будет приходить рассылка. В моем случае это группа “analytics” - аналитики;Расписание
- в какие дни будет отправлена рассылка. Здесь я выбрал только будние дни, чтобы в выходные не присылались одинаковые письма;Интервал
- как часто будет приходить рассылка. В моем случае письмо интересно один раз утром перед работой.
Мои настройки:

Затем для создания подписки нажмите кнопку “Подписка”.
Небольшое дополнение, если вы не знаете как создавать группы пользователей:
Создание групп пользователей
Для создание групп пользователей перейдите в настройки “Управление пользователями”

Перейдите в раздел “Группы”

Введите название группы и нажмите кнопку «Добавить группу».

Затем найдите новую группу и выберите «Редактировать членов группы».

В открывшемся разделе добавьте нужных пользователей:
Чтобы посмотреть все подписки снова нажмите “Детали” и выберите раздел “Управление подписками”

В открывшемся окне вы увидите созданные подписки:

Здесь отдельно хочу обратить ваше внимание на кнопку «Запустить сейчас». Она позволяет протестировать сценарий до того, как наступит нужное время.
5*. Дополнительный пример запроса для руководителей и Delivery Manager
Меня как Delivery Manager интересует отслеживание задач, которые находятся на ревью, но не меняются уже больше 3 дней.
Для этого я использую такой запрос:
project = CHANGE AND status = "Ревью" AND "Ревьюеры Аналитики " in membersOf ("analytics") AND votes < 2 AND updated < startOfDay("-3") ORDER BY priority DESC, updated DESC
Давайте немного его разберем:
project
- название проекта, в моем случае проект называетсяCHANGE
;статус должен соответствовать статусу ревью:
status = “Ревью”
;в перечне ревьюеров должны быть указаны коллеги из отдела аналитики:
"Ревьюеры Аналитики" in in membersOf ("analytics")
;проверяем, что голосов меньше 2:
votes < 2
. Здесь важно учесть, что у нас принято, что если есть хотя бы 2 подтверждения, то задача считается выполненной;проверяем, что задача не изменялась за последние три дня
updated < startOfDay("-3")
;дальше можно сортировать как вам потребуется. Я сортирую по приоритету и времени изменения задачи.
Заключение
В заключение, хочу отметить, что, несмотря на уход Jira из России, многие компании все еще продолжают использовать ее в своей работе. В связи с этим, я надеюсь, что данная статья поможет упростить процесс отслеживания задач, проходящих этап ревью, и сделает процессы в IT-компаниях более удобными и прозрачными.
3sther
Мелочь, но режет глаз.
Спасибо за статью.
art241111 Автор
спасибо за отзыв!
Режет глаз выделения, правильно понимаю?
3sther
Нет, я про текст на скриншоте: "Голосовать за этот задачу".
"... за эту задачу" явно будет лучше.
art241111 Автор
Хм, интересное замечание.. на самом деле этот текст указан в нашей jira по умолчанию. Видимо где то руссификация подвела