Привет! У нас в Спортмастере очень большая экспертиза в части работы с инструментами JIRA. Про доски, спринты и все прочее все наверняка знают и часто применяют. Мы хотим рассказать о других интересных плагинах, которые мы используем в рамках управления продуктом, начнем с JIRA Structure.
Зачем это нужно?
Structure — плагин для Jira, позволяющий гибко настраивать и управлять Jira-задачами любого типа.
Основные возможности:
Настраивать отображение задач в виде иерархии, с любой глубиной вложений, группировкой, сортировкой и прочим.
"На лету" редактировать поля задачи
Отображать любые поля задач и кастомизировать их
Визуализировать в различных режимах
Экспортировать структуру в excel/pdf или диаграмму Ганта в pdf/svg
С чего начать? Создаём структуру!
Создаём новую структуру
Заходим в Jira, в верхнем меню выбираем "Структура" → "Создать структуру"
Далее в мастере создания структуры выбираем и вводим данные.
Выбираем пустую структуру (либо взять готовый шаблон)
Вводим название и уровень доступа и нажимаем "Создать".
В результате получаем пустую таблицу с базовым набором трансформаторов.
Profit!Теперь нужно заполнить структуру.
Разбираем интерфейс
Панель инструментов:
Базовые действия с задачами в структуре:
Ручное добавление задач
Сворачивание и разворачивание сгруппированных элементов структуры
Перемещение между собой
Копирование, вырезание, вставка, удаление
Автоматическое добавление задач
Экспорт и настройка раскладки (Раскладка и представление) - две таблицы, гант, ресурсы
Управление доступом, выбор других структур
Трансформаторы, поиск, виды (ассоциированные или базовые)
Поля структуры
Управление трансформаторами
Настройка доступов
По умолчанию доступ к структуре закрыт. Чтобы настроить его, нужно:
В левом верхнем углу нажать на название структуры
Выбрать "Управление структурой"
Дальше в списке выбрать свою структуру и нажать "Изменить"
Настроить уровни доступа.
Она пустая! Что делать? Заполнить
Заполнить структуру можно двумя основными способами.
Вручную - там можно чётко контролировать попадание задач в структуру.
Автоматически (например, по JQL-запросу) - вариант для автопополнения структуры задачами по условиям
Добавление задач вручную
Вот как добавить задачи вручную:
В правой части нажимаем на три точки и выбираем "Две таблицы".
После этого экран разделится на две части, и в правой части будет доступно поле для ввода JQL-запроса.
Вводим запрос и получаем результат, из которого выбираем те задачи, которые будут участвовать в структуре
Выбор производим:
По одному, выбрав круглый чекбокс слева от задачи
Пачками, используя shift
Все задачи из запроса, используя ctrl+a
Зажатием 8 точек слева от чекбоксов с помощью drag and drop переносим задачи в левое окно, где находится структура.
Из структуры таким же способом можно выбрать и убрать лишние задачи (крестик сверху или delete)
После завершения переноса можно вернуть обратно вид "Одна таблица".
Автоматическое добавление задач
Наиболее удобный способ заполнять структуру, с помощью автоматизации.
В верхней панели инструментов нажимаем "Автоматизация" → "+" → "Вставить"
Из списка выбираем наиболее подходящий способ:
JQL-запрос
Доска
В результате получаем все задачи из JQL-запроса или доски. Все новые задачи по этому запросу будут автоматически добавляться в структуру.
Получился Excel? Настраиваем структуру
В полученной таблице (структуре) можно добавить любое поле, растягивать его, сортировать и быстро его изменять.
Для добавления, в правом верхнем углу таблицы нажимаем "+" и ищем / выбираем нужные поля.
Для настройки нужно нажать на стрелку в углу нужного поля (содержимое настроек отличается от типа поля), где:
Переименовать
Донастроить отображение
Удалить
Наиболее удобные поля для меня:
Тема - Видеть название, чтобы понять о чём задача
Статус - Видеть текущий статус
User Priority – Приоритет задач
Комментарий - Видеть последний комментарий (Например, актуальный статус)
Компоненты (на время настройки, описано в разделе трансформирования)
Метки (на время настройки, описано в разделе трансформирования)
Start Date - Видеть и изменять
End Date - Видеть и изменять на год вперёд
Кастомные поля (Описано в соответствующем разделе статьи)
Удобно же.
В структуре можно производить стандартные действия с задачей по нажатию на три точки в конце каждой задачи. Например, добавлять новый комментарий.
Также можно изменять значения почти любого поля, не проваливаясь в каждую задачу. Для этого двойным кликом нажимаем на нужное поле задачи и вводим/выбираем значение.
Всё ещё Excel! Трансформируем структуру
К структуре можно применить "трансформаторы". Это основной инструмент, структурирующий список задач. Трансформаторы удобны тем, что их можно включить, выключить, отсортировать, преобразовать в быстрые и всё это делается в два клика, что позволяет быстро управлять видом структуры.
Какие бывают типы трансформаторов?
Каждый тип трансформации имеет соответствующую иконку, это позволяет ориентироваться в настроенных трансформациях.
Иконка | Тип трансформатора | Описание | Комментарии, применения |
Filter - Отфильтровать | Позволяет по атрибуту спрятать лишние задачи | ||
Sort - Отсортировать | Позволяет по атрибуту изменить порядок задач | При добавлении двух и более трансформаций, возможно реализовать вложенные сортировки: сначала по одному атрибуту, а внутри по другому атрибуту. Примеры далее. | |
Group - Сгруппировать | Позволяет объединить задачи по Jira полю | При добавлении двух и более трансформаций, возможно реализовать вложенные группировки: сначала по одному атрибуту, а внутри по другому атрибуту. Примеры далее. | |
Extend - Дополнить | Позволяет добавить задачи из других проектов | Для проявления задач из других проектов, например проявить вложенные задачи, связанные задачи (смежные, ОМНИ), подзадачи, задачами и иметь быстрый доступ к ним. |
Создаём свои трансформации
Добавление трансформатора "Отфильтровать"
В правом верхнем углу выбираем иконку "Трансформация".
Ниже выбираем "Добавить трансформацию" и в выпадающем списке выбираем тип трансформатора.
Затем выбираем условия и задаём их
Для примера выбираем первый тип "Отфильтровать"
Выбираем "JQL-запрос"
Вводим JQL-запрос, например:
Фильтрация по статусу (не открыт)
status not in (Открыт, Закрыт)
И видим, что все задачи в структуре отфильтрованы по JQL запросу (Исчезли задачи в статусе "Открыт" и "Закрыт")
Добавление трансформатора "Сгруппировать"
Добавим ещё один трансформатор "Сгруппировать"
Группировка происходит по любому Jira-полю
В результате видим отфильтрованные и сгруппированные задачи, по полю "Компонент". В верхней панели видно два созданных и применённых трансформатора.
Добавление обычного трансформатора "Дополнить"
Показываем задачи в эпике
Выбираем тип трансформатора "Дополнить"
Выбираем "Под всеми"
В результате видим все задачи из другого проекта, которые относятся к этому эпику (речь про задачи с этим EpicLink)
Показываем связанные задачи с определённым типом связи
Аналогичное дополнение можно использовать для отображения связанных задач, например is contained in (актуально для ОМНИ эпиков).
Выбираем "Дополнить" → "Связанные задачи".
Указываем тип связи Contains и направление "is contained in".
Видим связанную задачу к эпику
Преобразование трансформатора в быстрый
Любой трансформатор можно преобразовать в быстрый, с понятным названием. Это необходимо для быстрого управления, доступа, комбинированию и т.п.
Вот как это сделать:
При создании нового или при наличии существующего выбрать трансформатор и сохранить его.
Ввести название
В верхней панели выбрать иконку быстрых трансформаций и найти созданную трансформацию.
Можно её нажать, тем самым применив к структуре.
В строке трансформаторов "Быстрые" трансформаторы с закруглёнными краями, и их всегда можно найти в списке быстрых трансформаций и оттуда же включить или выключить.
Предыдущую простую трансформацию "Отфильтровать" с JQL-запросом можно удалить, нажав на крестик.
Таким образом можно включать или отключать быстрые трансформаторы, менять их последовательность применения, добавлять новые трансформаторы. Это позволяет гибко перегруппировывать задачи, делать вложенные группировки, сортировки и т.п.
Примеры комбинации трансформаторов
Пример использования разной последовательности одних и тех же трансформаторов типа "Группировка" "По статусу" и "По исполнителю". Аналогичные перераспределения можно делать с любым типом трансформатора.
В данном случае, задачи сначала сгруппированы по статусу, а внутри статуса по исполнителю | Здесь отображён разрез исполнителя, а внутри исполнителя задачи сгруппированы по статусу |
Пример вложенной сортировки сначала по "Исполнителю", а затем по "Компоненту"
Ещё один пример, где я трансформатором "Группировка" разделил направления, а внутри разделы моего продукта:
Первая группировка по "Компоненту", а внутри по "Меткам". По этой причине эти поля больше не требуется видеть в таблице, но они могут понадобиться для быстрого заполнения, если появилось много "пустых" задач.
Сохранение вида
Обязательно нужно сохранять настроенные поля, трансформаторы и другие настройки для вашей структуры, чтобы этот вид был доступен всем по ссылке.
Для этого, нажимаем на кнопку выбора вида и нажимаем "Сохр. как...". Вводим название и сохраняем. Теперь настройки не потеряются.
Красивое! Продаёте? Нет, только добавляем раскладки
В структуре возможные различные отображения, кроме структурированного списка трансформаторами.
Самое актуальное для меня - диаграмма Ганта.
Чтобы включить эту раскладку нужно:
Нажать на три точки в правом верхнем углу
Выбрать Gantt Chart
Заполнить базовые настройки и нажать "Create Gantt chart"
В правой части экрана появится диаграмма Ганта.
В верхней панели доступны кнопки:
Настройки - настройки, которые производили при создании диаграммы
Песочница - позволяет "поиграться" с различными версиями планирования
Today - быстрый переход по графику на "сегодня"
Увеличение/уменьшение и быстрые настройки шага графика
Двигая элементы можно:
Интерактивно двигать задачи по графику, тем самым автоматически сдвигая Start date / End date
Двигать начало или конец работ по задаче, также автоматически меняя Start date / End date
Финал! Кастомизируем
По различным условиям можно добавлять кастомные поля и программировать их.
Условия работают на основе полей задач.
Добавление кастомного поля в структуру
Сначала в структуру нужно добавить новое поле с типом "Формула":
В правом верхнем углу таблицы нажать плюс
Ввести "Формула" и выбрать поле
Указать название поля и проверить, что тип "Формула" и отображение выбрано Wiki-разметка.
В текстовом поле вводить код с условиями.
Для удобства можно развернуть поле во весь экран, нажав "Полный экран".
Особенности синтаксиса
Синтаксис:
Оператор, открывающая скобка, условие, точка с запятой, результат, точка с запятой, закрывающая скобка. В последней строке с условием, или в единственной строке в конце точки запятой не требуется (перед закрывающей скобкой).
Используемые операторы: 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. Тут точки с запятой нет (!).
)
Визуализируем прогресс по каждой задаче
Другой тип поля - прогресс, позволяет визуализировать прогресс на основе затраченного времени, статуса, пользовательского поля и прочее
В данном случае я проставил % выполнения в зависимости от движения эпика по статусу, где на допоток выделяется меньше ёмкости, чем на статус в потоке, на который выделено 30% прогресса.
Ищем поле "Формула"
Вводим название поля
Выбираем Тип "Прогресс"
Выбираем На основе "Статус"
Прописываем % под необходимые статус (Можно не использовать все статусы)
В результате получаем зелёный прогресс-бар.
Другие примеры с использованием Wiki-разметки.
Это всё?
Почти. Есть ещё ряд возможностей, которые я ещё не успел детально разобрать, может быть, напишу о них в следующий раз, а пока можно почитать детали в WIKI.
WIKI-документация (english).
Джалсанов Роман
лидер продукта «Client Service Manager»