ГлавнаяБлогИнструменты

10 полезных JQL-запросов для Scrum-команд

14.10.2025

Jira Query Language (JQL) — мощный инструмент для поиска и фильтрации задач, который делает работу Scrum-команды в Jira действительно эффективной. Если вы только начинаете осваивать JQL или хотите использовать более продвинутые сценарии для анализа спринтов, контроля багов и повышения прозрачности, эта статья будет вашей рабочей шпаргалкой. Ниже рассмотрены примеры, которые регулярно применяют ведущие Scrum-команды мира. Каждый пример снабжен описанием, реальным кейсом применения и советами для настройки под ваш процесс.

Что такое JQL и зачем он Scrum-команде?

JQL — это язык запросов Jira, предназначенный для гибкого поиска задач по различным критериям: статус, исполнитель, тип, срок, приоритет и т.д. В Scrum-команде JQL применяется для:

  • автоматизации отчетности по спринтам;
  • выделения blockers и срочных задач;
  • анализа загруженности по ролям и сотрудникам;
  • аудита фиксации времени и сопровождения ретроспектив.

В отличие от базовых фильтров, JQL даёт неограниченную гибкость, помогает формировать персональные и командные дашборды, делает Scrum прозрачным как для руководителя, так и для всей команды.

Базовая структура JQL-запроса

Запрос JQL состоит из «поля» (field), «оператора» (operator) и «значения» (value). Примеры:

  • assignee = currentUser() — покажет задачи, назначенные текущему пользователю;
  • status = "In Progress" — задачи в статусе «В работе»;
  • project = "MyProject" AND type = Bug AND updated >= -7d — баги, модифицированные за неделю.

Помимо простых условий, JQL поддерживает сложные логические операторы AND, OR, NOT, вхождения в множества IN и спецфункции ORDER BY, CHANGED и др.

Кейсы применения JQL для Scrum

Каждая команда может создавать свои фильтры в соответствии с рабочими ритуалами. Но есть универсальные сценарии для эффективного Scrum-процесса:

  1. Контроль объема невыполненной работы (Backlog Health);
  2. Мониторинг состояния задач по спринту;
  3. Отслеживание blockers и зависимостей;
  4. Анализ накопленного технического долга;
  5. Аудит исторических изменений статусов задач;
  6. Оценка скорости (velocity) и выполнения обязательств;
  7. Выявление просроченных/почти просроченных задач;
  8. Оценка качества ведения user stories и багов;
  9. Анализ загруженности команды;
  10. Автоматизация ежедневных стендапов и отчетов.

10 полезных JQL-запросов: с примерами и пояснениями

1. Все задачи текущего спринта

sprint in openSprints()

Показывает все задачи открытого сейчас спринта для вашей доски.

Кейс: Стандартный фильтр для трекинга задач на планерках или в дашборде спринта. Можно добавить уточнения AND assignee = currentUser() — чтобы видеть только свои задачи.

2. Незавершённые задачи прошлого спринта (carry-over)

sprint in closedSprints() AND resolution = Unresolved

Используйте для разбора хвостов после завершения спринта и анализа причин переноса.

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

3. Блокирующие задачи (blockers) в работе

priority = Blocker AND status != Done AND sprint in openSprints()

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

4. Все баги открытого спринта

issuetype = Bug AND sprint in openSprints()

Высвечивает весь перечень дефектов, требующих внимания в рамках спринта. Можно кастомизировать по статусу или компоненту.

5. Новые задачи, созданные за последние N дней

sprint in openSprints() AND created >= -3d

Отражает задачи, которые добавили (например, unplanned work) после старта спринта — полезно для оценки scope creep и его влияния на delivery.

6. Просроченные задачи спринта

duedate < now() AND sprint in openSprints() AND status != Done

Парамедик-фильтр для ежедневных standup — отслеживает "висяки", которые могут поставить под угрозу выполнение общекомандного коммита.

7. Истории, перешедшие в "Done" за N дней

issuetype = Story AND status CHANGED TO Done AFTER -3d AND sprint in openSprints()

Позволяет отслеживать завершённые user stories за интересующий временной отрезок внутри спринта.

8. Все задачи этого эпика

"Epic Link" = EPIC-123

Меняет EPIC-123 на ключ нужного эпика. Фильтр помогает при планировании, review и декомпозиции работы по крупным бизнес-темам.

9. Задачи без оценки (Story Points)

sprint in openSprints() AND "Story Points" is EMPTY

Удобный инструмент для подготовки к планированию, чтобы команда заново оценивала забытые/новые задачи.

10. Список задач, по которым не велась активность N дней

updated <= -7d AND sprint in openSprints() AND status != Done

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

Таблица всех JQL-запросов и целей

ЗапросНазначениеКогда использовать
sprint in openSprints()Отображение всех задач активного спринтаПланирование, ежедневные стендапы
sprint in closedSprints() AND resolution = UnresolvedВыделение невыполненных задач прошедших спринтовРетроспектива, анализ коммита
priority = Blocker AND status != Done AND sprint in openSprints()Текущие Blocker-задачиФокусировка на срочных проблемах
issuetype = Bug AND sprint in openSprints()Список багов активного спринтаКонтроль тестирования, bugfix
sprint in openSprints() AND created >= -3dНовые задачи за последние 3 дняОценка scope creep
duedate < now() AND sprint in openSprints() AND status != DoneПросроченные задачиКонтроль дэдлайнов
issuetype = Story AND status CHANGED TO Done AFTER -3d AND sprint in openSprints()Завершённые пользовательские историиАнализ velocity, итоги спринта
"Epic Link" = EPIC-123Задачи определённого эпикаПланирование и срезы по фичам
sprint in openSprints() AND "Story Points" is EMPTYЗадачи без оценкиПодготовка к планированию
updated <= -7d AND sprint in openSprints() AND status != DoneДолго не обновляющиеся задачиАнтипаттерны, вовремя обнаруживать блокеры

Полезные лайфхаки по JQL

  • Используйте ORDER BY — сортируйте задачи по дате создания, уровню приоритета или исполнителю, чтобы делать дашборды более наглядными;
  • Через CHANGED и WAS можно искать задачи, статус которых менялся в заданный период или переходил в определённое значение;
  • Параметр currentUser() делает фильтры универсальными для каждого; membersOf("<group>") — для фильтрации по командам;
  • Добавляйте комментарии к сохранённым фильтрам, чтобы коллеги быстрее ориентировались в их логике;
  • Не бойтесь комбинировать фильтры, делать сложные AND/OR-запросы — это не только удобно, но и сокращает время поиска нужной информации.

Расширенные примеры: JQL для интеграции и автоматизации

Сложные команды Jira/Aтлантиан часто используют кастомные поля, автоматизацию через ScriptRunner, Automation for Jira или third-party плагины Jira Marketplace. JQL хорошо интегрируется с большинством из них.

  • status changed FROM "To Do" TO "In Progress" AFTER -2d — задачи, перешедшие в работу за последние 2 дня (мониторинг начала работ по таскам).
  • labels = "needs-review" AND assignee in membersOf("reviewers") — все задачи с маркировкой ревью, назначенные ревьюерам.
  • project = Development AND type = Bug AND status IN ("To Do", "In Progress") — баги в проекте "Разработка", ожидающие или находящиеся в работе.
  • sprint in openSprints() AND timespent > 28800 — задачи, на которые потрачено больше 8 часов в текущем спринте (контроль перегруза).

С помощью JQL можно также строить триггеры для автоматизации задач, например — автоуведомления при появлении новых blockers, отслеживание SLA или автоматическое создание subtasks по условиям статуса.

JQL для ретроспектив, обзоров и репортов

Рекомендации по применению готовых фильтров для ретроспектив, demo и отчетности:

  • Создайте фильтр carry-over задач (query 2) и используйте Saved Filter Gadget для вывода на dашборде;
  • Ведите историю изменений по Story Points за каждый спринт через CHANGED и WAS;
  • Делайте выборки "самые долго закрываемые задачи" — status = Done ORDER BY resolutionDate - created DESC;
  • Используйте фильтры по bugs для анализа эффективности тестирования и процесса устранения дефектов;
  • Покажите дашбордами количество задач без оценки и незавершенные задачи по категориям.

Часто задаваемые вопросы по JQL

Можно ли искать по кастомным полям?
Да, большинство полей любого типа (например, Story Points, Custom Priority, Components) доступны для JQL-фильтрации, если включены в схему проекта.

Как фильтровать задачи определённой Scrum-команды?
Используйте групповые фильтры (assignee in membersOf("scrum-team")) либо указывайте поле Team, если оно используется (Team = "Alpha Team").

Как исключить задачи из определённых спринтов?
AND sprint NOT IN (23, 24) или AND sprint not in closedSprints().

Что делать, если запрос долго выполняется?
Уточните фильтр, избегайте объединения большого числа OR, старайтесь не использовать слишком широкие условия (например, только по дате обновления).

Можно ли сохранять и делиться фильтрами?
Да, сохранённые фильтры доступны для оформления совместных дашбордов, рассылки или вставки в Confluence.

JQL Cheat Sheet: шпаргалка для Scrum-команды

  • assignee = currentUser() — только ваши задачи
  • project = "ИмяПроекта" — все задачи проекта
  • status = "In Progress" — в работе
  • priority = High AND status not in (Resolved, Closed) — приоритетные задачи
  • due < now() — просроченные задачи
  • created >= -7d — созданы за неделю
  • order by created DESC — сортировать по дате создания (сначала свежие)

Рекомендации по внедрению JQL в работу Scrum-команды

  • Не ограничивайтесь только стандартными фильтрами Jira — настройте фильтры под нужды вашей команды.
  • Интегрируйте JQL-запросы в ежедневные ритуалы: планирование, стендапы и ретро.
  • Создавайте Saved Filters и используйте их на Jira dashboards, чтобы оперативно видеть KPI по спринтам.
  • Вовлекайте команду: делитесь фильтрами, объясняйте логику — это снижает хаос и повышает прозрачность на всех этапах.
  • Периодически пересматривайте и обновляйте используемые фильтры: Scrum-процесс должен быть живым!

Заключение

Правильный подбор JQL-запросов — не просто техническая настройка, а основа прозрачности, совместной работы и эффективности Scrum-команды. Используя примеры из этой статьи, вы сможете быстрее находить нужную информацию, ускорить планирование, упросить daily, повысить качество отчетности и, главное, дать команде больше самостоятельности и контроля над процессом. Если хочется узнать больше о кастомных сценариях поиска, автоматизации отчётности или глубокой аналитике Scrum — команда PMHub поможет подобрать инструменты “под ключ”.

Получить консультацию

Популярные статьи по теме

Посмотреть все статьи