Se você está no mundo do gerenciamento de projetos e Qualidade de Software, provavelmente já cruzou com o Jira, uma das ferramentas mais populares para organizar tarefas, bugs, e sprints. Mas, vamos elevar o nível: já ouviu falar em JQL, ou Jira Query Language? Essa linguagem de consulta é o seu passe VIP para pesquisas avançadas dentro do Jira, permitindo filtrar tarefas, bugs, e muito mais, com precisão cirúrgica.

Neste post, vamos decifrar o JQL com exemplos práticos que você pode aplicar imediatamente. Pronto para transformar a forma como você interage com o Jira? Vamos lá!

Dicas para Dominar o JQL

  • Experimente e Erre: Não tem jeito melhor de aprender JQL do que colocando a mão na massa. Teste diferentes tipos de consultas para ver o que elas retornam.
  • Use o Auto-complete: O Jira oferece um recurso de auto-complete que pode ser super útil enquanto você está aprendendo.
  • Consulte a Documentação: A Atlassian tem documentações extensas sobre JQL. Quando estiver em dúvida, dê uma olhada lá.
  • Compartilhe Conhecimento: Conforme você vai se tornando um expert em JQL, compartilhe suas consultas mais úteis com a equipe.

Benefícios do JQL

  • Personalização Avançada: Crie filtros que correspondam exatamente às suas necessidades, sem compromisso.
  • Eficiência Melhorada: Economize tempo encontrando rapidamente as issues de que precisa, sem ter que navegar manualmente.
  • Gerenciamento de Projeto Aprimorado: Mantenha seus projetos organizados e seus fluxos de trabalho otimizados, facilitando o rastreamento do progresso e a identificação de gargalos.
  • Relatórios Detalhados: Gere relatórios específicos para análise de dados, ajudando na tomada de decisões baseada em informações concretas.
  • Colaboração Facilitada: Compartilhe consultas específicas com membros da equipe para garantir que todos estejam alinhados e focados nas mesmas prioridades.

Por que usar o JQL?

O JQL permite uma personalização e precisão na busca de issues no Jira que métodos de busca convencionais simplesmente não conseguem oferecer. Com o JQL, você pode construir consultas complexas para filtrar tarefas, bugs, e demais itens, baseando-se em uma vasta gama de critérios. Isso significa que você pode rapidamente encontrar exatamente o que está procurando, economizando tempo e aumentando a eficiência.

Por que tudo isso importa?

Em um ambiente de trabalho que está se tornando cada vez mais ágil e centrado em dados, ser capaz de navegar e manipular eficientemente grandes volumes de issues é crucial.

O JQL não é apenas uma ferramenta de busca, é um facilitador para uma gestão de projetos mais inteligente, rápida e data-driven. Seja você um gerente de projeto, um engenheiro de software, ou um engenheiro de qualidade, dominar o JQL significa ter mais controle sobre o seu trabalho e poder contribuir de forma mais significativa para o sucesso do projeto.

ScriptRunner: Potencializando o JQL no Jira

O ScriptRunner é uma ferramenta extremamente poderosa para os usuários do Jira, oferecendo a possibilidade de estender e personalizar a funcionalidade do Jira muito além das capacidades padrão. Ao utilizar scripts, os usuários podem automatizar tarefas, criar funcionalidades customizadas e melhorar significativamente a eficiência do workflow. Quando combinado com o JQL, o ScriptRunner eleva a gestão de projetos e rastreamento de issues a um novo patamar.

Benefícios do ScriptRunner

  • Automatização de Tarefas: Automatize ações repetitivas e crie fluxos de trabalho customizados para agilizar o processo de desenvolvimento e gestão de projetos.
  • Customização Profunda: Vá além das configurações padrão do Jira, desenvolvendo scripts que se adequem exatamente às necessidades da sua equipe.
  • Melhoria na Gestão de Dados: Manipule e gerencie dados do Jira de forma mais eficaz, incluindo a criação de relatórios detalhados e dashboards personalizados.
  • Integrações Avançadas: Facilite a integração com outras ferramentas e serviços, melhorando a comunicação e colaboração dentro da equipe.
  • Complexidade e Poder: O JQL por si só é uma ferramenta poderosa para consulta de issues, mas quando combinado com o ScriptRunner, você desbloqueia um novo nível de complexidade e poder, permitindo não apenas buscar dados, mas também manipulá-los e automatizar ações baseadas nesses dados.
  • Customização de Consultas: Enquanto o JQL permite realizar consultas complexas dentro do
  • Jira, o ScriptRunner oferece a possibilidade de criar scripts que podem realizar ações baseadas nos resultados dessas consultas, como atualizar issues automaticamente, enviar notificações customizadas, entre outros.
  • Eficiência Melhorada: A capacidade de automatizar tarefas e processos com o ScriptRunner, usando o JQL como base para as condições de disparo, significa uma eficiência operacional significativamente melhorada, reduzindo a necessidade de intervenção manual e permitindo que a equipe se concentre em tarefas mais estratégicas.
JQL

Encerrando com Chave de Ouro

Dominar o JQL pode parecer uma tarefa árdua no início, mas uma vez que você pega o jeito, vai ver como essa ferramenta pode ser valiosa. Com o JQL, você tem o poder de filtrar e encontrar exatamente o que precisa no Jira, tornando seu trabalho muito mais eficiente. Então, não tenha medo de experimentar e usar esses exemplos como ponto de partida para suas próprias consultas.

E aí, pronto para se tornar um mestre do JQL? Vamos lá, o mundo das consultas avançadas no Jira espera por você!

Guia Prático com Exemplos

JQL

Encontrar Issues Abertas

status = Open

Issues com Prioridade Máxima

priority = Highest

Issues Reportadas pelo Usuário Atual

reporter = currentUser()

Issues Sem Atribuição

assignee is EMPTY

Buscar Todos os Bugs

issuetype = Bug

Issues Criadas na Última Semana

created >= -7d

Issues de um Projeto Específico

project = “MEU_PROJETO”

Issues Sem Resolução

resolution = Unresolved

Issues Não Atualizadas no Último Dia

updated <= -1d

Buscar Issues Abertas ou em Progresso

status in (Open, “In Progress”)

Issues com Data de Vencimento para Hoje ou Antes

duedate <= now()

Buscar Issues com “crash” no Título

summary ~ “crash”

Issues com a Etiqueta “frontend”

labels in (“frontend”)

Issues do Componente “Backend”

component = “Backend”

Issues Afetando a Versão “1.0”

affectedVersion = “1.0”

Issues Sem Versão de Correção Designada

fixVersion is EMPTY

Issues com Prioridade Baixa ou Muito Baixa

priority in (Low, Lowest)

Issues Fechadas e Resolvidas

status = Closed AND resolution = Fixed

Issues Criadas no Início deste Mês

createdDate >= startOfMonth()

Issues Resolvidas no Fim deste Mês

resolutionDate <= endOfMonth()

Issues que Estavam Abertas

status was Open

Issues Atribuídas ao Usuário Atual Anteriormente

assignee was currentUser()

Bugs de Alta Prioridade em um Projeto

project = “MEU_PROJETO” AND issuetype = Bug AND priority = High

Issues Movidas para “Em Progresso” Hoje

status changed to “In Progress” AFTER “startOfDay()”

Issues Reportadas por Membros da Equipe de Desenvolvimento

reporter in membersOf(“dev_team”)

Issues Atualizadas na Última Semana

updated > startOfDay(-7)

Issues Criadas em Janeiro de 2024

created >= 2024-01-01 AND created <= 2024-01-31

Issues que Foram “Em Progresso” pelo Usuário Atual

status was “In Progress” by currentUser()

Stories Concluídas em Sprints Fechadas

issuetype = Story AND status = “Done” AND sprint in closedSprints()

Componentes que Foram “UI” Antes de 2024

component was “UI” before “2024-01-01”

Bugs Afetando Versões Lançadas

project = “MEU_PROJETO” AND issuetype = Bug AND affectedVersion in releasedVersions()

Epics Relacionados a “Performance”

issuetype = Epic AND “Epic Name” ~ “Performance”

Issues Fechadas com Resolução não “Unresolved” Antes de 2024

status = Closed AND resolution was not in (Unresolved) before “2024-01-01”

Issues Criadas e Resolvidas nos Últimos 3 Meses

created >= -12w AND status changed to Done

Issues que Estavam Abertas ou “Em Progresso” em 1º de Janeiro de 2024

status was in (Open, “In Progress”) on “2024-01-01”

Issues Reportadas por Usuários Inativos

reporter not in activeUsers()

ScriptRunner

Comentadas pelo Administrador

issueFunction in commented(“by admin”)

Com Comentários

issueFunction in hasComments()

Com Anexos

issueFunction in hasAttachments()

Bloqueadas por Outras Issues

issueFunction in linkedIssuesOf(“is blocked by”)

Sub-tarefas de Issues Concluídas

issueFunction in subtasksOf(“status = ‘Done'”)

Comparação de Datas

issueFunction in dateCompare(“”, “created >= startOfDay()”)

Adicionadas Após o Início da Sprint

issueFunction in addedAfterSprintStart(“MEU_PROJETO”, “Sprint 1”)

Removidas Após o Início da Sprint

issueFunction in removedAfterSprintStart(“MEU_PROJETO”, “Sprint 2”)

Concluídas na Sprint

issueFunction in completedIssuesInSprint(“MEU_PROJETO”, “Sprint 3”)

Na Sprint Atual

issueFunction in inSprint(“Sprint 4”)

Tempo de Ciclo

issueFunction in cycleTime( “project = MEU_PROJETO”,

“status changed from ‘In Progress’ to ‘Done'”,

“createdDate”, “resolutionDate”

)

Mudança nos Pontos de História

issueFunction in storyPointsChanged(“after -4w”)

Diagrama de Fluxo Cumulativo

issueFunction in cumulativeFlowDiagram(“project = MEU_PROJETO”, “Sprint 6”)

Gráfico de Controle

issueFunction in controlChart(“project = MEU_PROJETO”, “status = Done”)

Cobertura de Teste

issueFunction in testCoverage(“in lastCompletedSprint()”)

Bloqueadas por outras não resolvidas

issueFunction in linkedIssuesOf(“status != Resolved”, “blocks”)

Fechadas depois da última versão de release

project = “MEU_PROJETO” AND issueFunction in releasedVersions()

Com mais de 10 comentários

issueFunction in commented(“by anyone where count >= 10”)

Contenham certas palavras-chave nos comentários

issueFunction in issueFieldMatch( “project = MEU_PROJETO”,

“comments”, “palavra-chave1|palavra-chave2”

)

JQL

Leave a Reply