Jira Structure: как мы в SM Lab используем плагины для управления продуктом

Привет! У нас в Спортмастере очень большая экспертиза в части работы с инструментами JIRA. Про доски, спринты и все прочее все наверняка знают и часто применяют. Мы хотим рассказать о других интересных плагинах, которые мы используем в рамках управления продуктом, начнем с JIRA Structure.

9ef25a390cc5ff0243a16d9d7f5b8fc3.png

Зачем это нужно?

Structure — плагин для Jira, позволяющий гибко настраивать и управлять Jira-задачами любого типа.

Основные возможности:

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

  • «На лету» редактировать поля задачи.

  • Отображать любые поля задач и кастомизировать их.

  • Визуализировать в различных режимах.

  • Экспортировать структуру в excel/pdf или диаграмму Ганта в pdf/svg.

С чего начать? Создаём структуру!

Создаём новую структуру

  1. Заходим в Jira, в верхнем меню выбираем »Структура» → »Создать структуру» 

83178bbbc441778ec918b5fa67cd1771.png

  1. Далее в мастере создания структуры выбираем и вводим данные. 

    1. Выбираем пустую структуру (либо взять готовый шаблон) 

9fc9a540fe0767db1489826fa5e348f0.png

  1. Вводим название и уровень доступа и нажимаем »Создать». 

d2cd0cad6ca2f7b7e58004120542752f.png

  1.  В результате получаем пустую таблицу с базовым набором трансформаторов. 

98fcc2b8a0708a78836ced85ff99b955.png

  1.  Profit! Теперь нужно заполнить структуру.

Разбираем интерфейс

bd102d5482945cab790b53ce41ca4d90.png

Панель инструментов:

  1. Базовые действия с задачами в структуре:  

    1. Ручное добавление задач;

    2. Сворачивание и разворачивание сгруппированных элементов структуры;

    3. Перемещение между собой;

    4. Копирование, вырезание, вставка, удаление;

    5. Автоматическое добавление задач.

  2. Экспорт и настройка раскладки (Раскладка и представление) — две таблицы, гант, ресурсы.

  3. Управление доступом, выбор других структур.

  4. Трансформаторы, поиск, виды (ассоциированные или базовые).

  5. Поля структуры.

  6. Управление трансформаторами.

Настройка доступов 

По умолчанию доступ к структуре закрыт. Чтобы настроить его, нужно:

  1. В левом верхнем углу нажать на название структуры.

  2. Выбрать «Управление структурой».

  3. Дальше в списке выбрать свою структуру и нажать »Изменить».

  4. Настроить уровни доступа.

1c0446fcaa53236d5886997e04f4a57c.png1475b83129f7ad1a73eabf19e0ea50be.png

Она пустая! Что делать? Заполнить

Заполнить структуру можно двумя основными способами.

  • Вручную — там можно чётко контролировать попадание задач в структуру.

  • Автоматически (например, по JQL-запросу) — вариант для автопополнения структуры задачами по условиям.

Добавление задач вручную

Вот как добавить задачи вручную:

  1. В правой части нажимаем на три точки и выбираем «Две таблицы».

  2. После этого экран разделится на две части, и в правой части будет доступно поле для ввода JQL-запроса.

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

  4. Выбор производим:  

    1. По одному, выбрав круглый чекбокс слева от задачи;

    2. Пачками, используя shift;

    3. Все задачи из запроса, используя ctrl+a.

7b5ed08ed84d33774bdaf69a81b32c1a.png

  1. Зажатием 8 точек слева от чекбоксов с помощью drag and drop переносим задачи в левое окно, где находится структура.

7084386f91d65f3df8c9640e4d5902b5.png

  1. Из структуры таким же способом можно выбрать и убрать лишние задачи (крестик сверху или delete)

  2. После завершения переноса можно вернуть обратно вид «Одна таблица».

Автоматическое добавление задач

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

  1. В верхней панели инструментов нажимаем »Автоматизация» → »+» → »Вставить».

9764ac04c862a68823c9269c8a56720a.png

  1. Из списка выбираем наиболее подходящий способ:  

    1. JQL-запрос;

    2. Доска.

bb9434da494ce327c524cfc2246b5d93.png

  1. В результате получаем все задачи из JQL-запроса или доски. Все новые задачи по этому запросу будут автоматически добавляться в структуру. 

4d040defc9471734f7b83fc810b32be5.png

Получился Excel? Настраиваем структуру

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

08d2cbb450feb3b591501391dc57aa9b.png

  • Для настройки нужно нажать на стрелку в углу нужного поля (содержимое настроек отличается от типа поля), где:  

ada6bf4cb734975a2541f48a30ccd556.png

  • Удалить;

ff312368e61c72a32e98ac61b88d63d8.png

Наиболее удобные поля для меня:

  • Тема — Видеть название, чтобы понять о чём задача;

  • Статус — Видеть текущий статус;

  • User Priority — Приоритет задач;

  • Комментарий — Видеть последний комментарий (Например, актуальный статус);

  • Компоненты (на время настройки, описано в разделе трансформирования);

  • Метки (на время настройки, описано в разделе трансформирования);

  • Start Date — Видеть и изменять;

  • End Date — Видеть и изменять на год вперёд;

  • Кастомные поля (Описано в соответствующем разделе статьи).

Удобно же.

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

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

    c958b0b6b4b31d5ff3b72d3efc67ce2f.png

Всё ещё Excel! Трансформируем структуру

К структуре можно применить «трансформаторы». Это основной инструмент, структурирующий список задач. Трансформаторы удобны тем, что их можно включить, выключить, отсортировать, преобразовать в быстрые и всё это делается в два клика, что позволяет быстро управлять видом структуры.

Какие бывают типы трансформаторов?

Каждый тип трансформации имеет соответствующую иконку, это позволяет ориентироваться в настроенных трансформациях.

Иконка

Тип трансформатора

Описание

Комментарии, применения

Filter — Отфильтровать

Позволяет по атрибуту спрятать лишние задачи

Sort — Отсортировать

Позволяет по атрибуту изменить порядок задач

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

Group — Сгруппировать

Позволяет объединить задачи по Jira полю

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

Extend — Дополнить

Позволяет добавить задачи из других проектов 

Для проявления задач из других проектов, например проявить вложенные задачи, связанные задачи (смежные, ОМНИ), подзадачи, задачами и иметь быстрый доступ к ним.

Создаём свои трансформации

Добавление трансформатора «Отфильтровать»

  1. В правом верхнем углу выбираем иконку »Трансформация».

  2. Ниже выбираем »Добавить трансформацию» и в выпадающем списке выбираем тип трансформатора.

  3. Затем выбираем условия и задаём их.

d4500a55aab42a55a761d82f2afc54a8.png

  1. Для примера выбираем первый тип «Отфильтровать».

  2. Выбираем «JQL-запрос».

b06cd19a7cae91d70348dc4f4f546daa.png

  1. Вводим JQL-запрос, например:  

Фильтрация по статусу (не открыт) 

status not in (Открыт, Закрыт).

  1. И видим, что все задачи в структуре отфильтрованы по JQL запросу (Исчезли задачи в статусе »Открыт» и »Закрыт»).

1fd7300389373ed6fa0ba031d59af11e.png

Добавление трансформатора «Сгруппировать»

  1. Добавим ещё один трансформатор »Сгруппировать». 

47f64248aeb7c8884d035ecca7134b25.png

  1. Группировка происходит по любому Jira-полю.

c1d505c71ff03daea9748ddc14ef2c93.png

  1. В результате видим отфильтрованные и сгруппированные задачи, по полю «Компонент». В верхней панели видно два созданных и применённых трансформатора.

Добавление обычного трансформатора «Дополнить»

Показываем задачи в эпике.

  1. Выбираем тип трансформатора «Дополнить» .

0c9d08bb64d0a9eb8183026d018954a0.png

  1. Выбираем «Под всеми».

b3145744c34908565c2f6c250ea4eef7.png

  1. В результате видим все задачи из другого проекта, которые относятся к этому эпику (речь про задачи с этим EpicLink).

66fc049ba57385ba22ed59109013f822.png

Показываем связанные задачи с определённым типом связи

Аналогичное дополнение можно использовать для отображения связанных задач, например is contained in (актуально для ОМНИ эпиков).

  1. Выбираем «Дополнить» → «Связанные задачи».

  2. Указываем тип связи Contains и направление «is contained in».  

071d0a4c4915de75e239ce17cb245195.png

  1. Видим связанную задачу к эпику.

16221f25edbbeb3a89a2cb966f785b00.png

Преобразование трансформатора в быстрый

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

Вот как это сделать:

  1. При создании нового или при наличии существующего выбрать трансформатор и сохранить его. 

90f8cccfbb0aa69d596a8ee599aae178.png

  1. Ввести название.

8ab585aeffcf70bbe9230d030fd789e3.png

  1. В верхней панели выбрать иконку быстрых трансформаций и найти созданную трансформацию. 

5b504ab0ba0bd7d2a93d93361f7cfd85.png

  1. Можно её нажать, тем самым применив к структуре.

  2. В строке трансформаторов «Быстрые» трансформаторы с закруглёнными краями, и их всегда можно найти в списке быстрых трансформаций и оттуда же включить или выключить. 

4ca3d9b86368b3bc63d547b718037ed3.png

  1. Предыдущую простую трансформацию »Отфильтровать» с JQL-запросом можно удалить, нажав на крестик.

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

Примеры комбинации трансформаторов

  1. Пример использования разной последовательности одних и тех же трансформаторов типа «Группировка» »По статусу» и »По исполнителю». Аналогичные перераспределения можно делать с любым типом трансформатора. 

В данном случае, задачи сначала сгруппированы по статусу,

а внутри статуса по исполнителю

Здесь отображён разрез исполнителя,  

а внутри исполнителя задачи сгруппированы по статусу

  1. Пример вложенной сортировки сначала по »Исполнителю», а затем по »Компоненту» 

ae73e7ea5266bf8b63958390f417d592.png

  1. Ещё один пример, где я трансформатором »Группировка» разделил направления, а внутри разделы моего продукта:

    1. Первая группировка по »Компоненту», а внутри по »Меткам». По этой причине эти поля больше не требуется видеть в таблице, но они могут понадобиться для быстрого заполнения, если появилось много «пустых» задач. 

Сохранение вида

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

Для этого, нажимаем на кнопку выбора вида и нажимаем »Сохр. как…». Вводим название и сохраняем. Теперь настройки не потеряются.

79304f6b9ef4fcd145a8528be6bdff10.png

Красивое! Продаёте? Нет, только добавляем раскладки

В структуре возможные различные отображения, кроме структурированного списка трансформаторами.

Самое актуальное для меня — диаграмма Ганта.

Чтобы включить эту раскладку нужно:

  1. Нажать на три точки в правом верхнем углу.

  2. Выбрать Gantt Chart.

db82c8e888ba43215f35cbb7c60c5547.png

  1. Заполнить базовые настройки и нажать «Create Gantt chart».

62eea61f4f4372e83e2918d984fb62d3.png

  1. В правой части экрана появится диаграмма Ганта. 

    1. В верхней панели доступны кнопки:  

      1. Настройки — настройки, которые производили при создании диаграммы;

      2. Песочница — позволяет «поиграться» с различными версиями планирования;

      3. Today — быстрый переход по графику на «сегодня»;

      4. Увеличение/уменьшение и быстрые настройки шага графика.

c0ea3c49e7144166a36b2fffc6be1c96.png

  1. Двигая элементы можно:  

    1. Интерактивно двигать задачи по графику, тем самым автоматически сдвигая Start date / End date;

    2. Двигать начало или конец работ по задаче, также автоматически меняя Start date / End date.

Финал! Кастомизируем

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

Условия работают на основе полей задач.

Добавление кастомного поля в структуру

Сначала в структуру нужно добавить новое поле с типом »Формула»:

  1. В правом верхнем углу таблицы нажать плюс.

  2. Ввести »Формула» и выбрать поле.

eae3d2aa404449bcbd3e5e4b8e63ccd7.png

  1. Указать название поля и проверить, что тип »Формула» и отображение выбрано Wiki-разметка

404370a98baf8269789eac1840b26c2b.png

  1. В текстовом поле вводить код с условиями. 

    1. Для удобства можно развернуть поле во весь экран, нажав «Полный экран».

Особенности синтаксиса

Синтаксис:

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

Используемые операторы: AND, CONCAT, ELSE, IF, NOT, OR, UNDEFINED, WITH

IF (

  (условие 1) ;"результат 1" ;

  (условие 2); "результат 2"                ←в последней строке ";" не требуется 

)

Подробнее про синтаксис в wiki

Примеры:

Примеры кастомных полей.

Два примера с программированием и один пример с прогрессом:

Добавляем значение поля со своим лэйблом по заданному условию.

Простой пример с названием:

if (

( (flagged = "Impediment") ); "{panel}{color:red}Заблокировано{color}{panel}"

)

Добавляем проверки на Start Date / End Date (пример был взят из чьей-то структуры в СМ):

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

  • Если эпик не закрыт и не отложен и end date указан и просрочен (= сегодня), то отображается крестик.

  • Если эпик открыт и Start date указан и просрочен, то отображается восклицательный знак.

  • Если эпик не закрыт и не отложен и не указан start date/ end date, то отображается соответствующая надпись S (start) или E (end).

Проверка дат:

if(

( (status != "Закрыт" AND status != "Отложен") AND (EndDate > 0) AND (EndDate-TODAY() < 0) ); "(x)"; //Если эпик не закрыт и не отложен и end date указан и просрочен (= сегодня), то отображается (Х)

( (status = "Открыт") AND (StartDate > 0) AND (StartDate-TODAY() < 0) ); "(!)"; //Если эпик открыт и Start date указан и просрочен, то отображается (!).

( (status != "Закрыт" AND status != "Отложен") AND EndDate = null AND StartDate = null AND issuetype != null); "{panel}{color:red}S{color}{panel}{panel}{color:red}E{color}{panel}" //Если эпик не закрыт и не отложен и не указан start date/ end date, то отображается S или E. Тут точки с запятой нет (!).

)

На первой строке просрочен End date, на четырёх странах они не указаны, на предпоследней указан End date и просрочен.На первой строке просрочен End date, на четырёх странах они не указаны, на предпоследней указан End date и просрочен.Настроенное кастомное полеНастроенное кастомное поле

Визуализируем прогресс по каждой задаче

Другой тип поля — прогресс, позволяет визуализировать прогресс на основе затраченного времени, статуса, пользовательского поля и прочее.

В данном случае я проставил % выполнения в зависимости от движения эпика по статусу, где на допоток выделяется меньше ёмкости, чем на статус в потоке, на который выделено 30% прогресса.

  1. Ищем поле »Формула»;

  2. Вводим название поля;

  3. Выбираем Тип »Прогресс»;

  4. Выбираем На основе »Статус»;

  5. Прописываем % под необходимые статус (Можно не использовать все статусы);

9cffa2281b917473c8ecf9d920c666f2.png

  1. В результате получаем зелёный прогресс-бар. 

e70a3e91440518676aee08e80a4c1040.png

Другие примеры с использованием Wiki-разметки.

Это всё?

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

WIKI-документация (english).

c129df765b34df532a4f0d80f7d5ca1b.pngДжалсанов Роман

лидер продукта «Client Service Manager»

© Habrahabr.ru