Le guide avancé pour Jira JQL : Comment rechercher des problèmes Jira comme un pro

YorickNon classifié(e)Leave a Comment

JQL advanced guide

JQL, ou Jira Query Language, est un outil flexible qui vous permet de rechercher des problèmes dans Jira et de déterminer avec précision ce que vous recherchez.

Savoir effectuer une recherche efficace dans votre instance de Jira peut littéralement vous faire économiser des heures de travail.

Les utilisateurs chevronnés qui utilisent Jira quotidiennement peuvent déjà maîtriser le langage de requête Jira. Mais des compétences en rédaction de requêtes efficaces peuvent également être très utiles pour les autres membres de l’équipe.

De nombreux utilisateurs Jira non techniques ont tendance à ne pas utiliser pleinement JQL. Des termes tels que opérateurs et mots-clés peuvent sembler un peu effrayants pour des employés moins versés dans la technique. C’était vraiment le cas pour moi quand j’ai commencé à utiliser Jira !

Cependant, cet outil a été conçu pour que tout le monde puisse bénéficier de ses fonctionnalités. Même les utilisateurs sans compétences techniques peuvent s’y habituer s’ils sont guidés dans la bonne direction.

Dans ce guide, nous vous expliquerons tous les concepts fondamentaux à maîtriser pour maîtriser JQL et devenir un chercheur professionnel de Jira.

Qu’est-ce que JQL ?

Jira Query Language (ou JQL) est l’un des outils les plus puissants disponibles dans Jira.

Le système utilise les données suivantes pour filtrer les problèmes. Et, à son tour, vous aide à trouver ce que vous recherchez beaucoup plus rapidement :

  • Des champs
  • Des opérateurs
  • Des valeurs
  • Des mots-clés
  • Des fonctions

Par exemple, si vous souhaitez rechercher tous les problèmes non planifiés, vous pouvez rechercher des problèmes avec un champ d’état non fermé et avec des champs vides pour les liens épiques et les versions de correctifs.

Vous pouvez également déterminer si votre projet pose des problèmes de portée. Vous pouvez restreindre votre recherche aux problèmes qui ne sont pas fermés dans le sprint actuel ET qui ont déjà été affectés à un autre sprint. Cela vous indiquerait combien de problèmes étaient hors de portée lors du dernier sprint et ne pouvaient pas être résolus.

Présentation de l’interface de Jira Query Language

Sous « Issues » (Problèmes) dans le menu déroulant, vous pouvez trouver l’option « Search for Issues » (Rechercher des problèmes) :

Jira Query Language Interface

Cela permet d’ouvrir l’écran de recherche. Par défaut, cet écran vous amène à l’outil de recherche de base. Ce que vous pouvez utiliser pour filtrer les problèmes en utilisant des champs prédéfinis tels que :

  • Status (Statut)
  • Assignee (Responsable de l’attribution)
  • Project (Projet)
  • Contains text (Contient le texte)

Vous remarquerez l’option « Advanced » (Avancé) à droite des filtres :

https://www.idalko.com/wp-content/uploads/2019/02/word-image-13.png

C’est là que vous aurez accès à Jira JQL.

Recherche de base et recherche avancée dans Jira

Les recherches de base dans Jira sont utiles jusqu’à un certain point. Elles sont rapides à remplir et faciles à utiliser.

Cependant, vous en atteindrez les limites assez rapidement, car vous êtes limité par les formulaires existants.

Grâce à la recherche avancée, vous allez créer vos propres requêtes JQL.

Décomposer une requête JQL

Une requête JQL est un ensemble de mots et d’opérateurs qui définissent la manière dont Jira limitera votre recherche.

Dans les recherches de base, les requêtes sont déjà prédéfinies pour vous. Tandis que vous devrez les écrire de toutes pièces dans JQL.

Toutes les requêtes sont constituées de champs, d’opérateurs et de valeurs.

Champs dans le langage de requête Jira

Un champ est un élément d’information qui décrit les problèmes – c’est ce que vous complétez lorsque vous utilisez des recherches de base.

Voici quelques exemples de champs Jira :

  • Issue type (Type de problème)
  • Project (Projet)
  • Priority (Priorité)
  • Fix Version (Version du correctif)
  • Epic tag (Étiquette Epic)

Vous pouvez consulter la liste de tous les champs dans la documentation de Jira.

Les valeurs dans Jira Query Language

Les valeurs sont des points de données dans vos requêtes.

Ce sont essentiellement ce que vous recherchez par rapport à vos domaines.

Par exemple, les valeurs possibles pour le champ Priority (Priorité) seraient :

  • Urgent
  • Élevée
  • Moyenne
  • Faible

Les opérateurs dans Jira Query Language

Les opérateurs sont des signes mathématiques tels qu’égal à (=), supérieur à (>), inférieur ou égal à (<=), etc.

Ils décrivent le lien entre votre domaine et votre valeur.

Par exemple :

Operators in JQL

Dans la recherche ci-dessus, vous recherchez des problèmes avec Epic Name (champ) égal à (opérateur) « Audio Development » (valeur).

Mots-clés dans Jira Query Language

Les mots-clés constituent le langage JQL. Chaque mot-clé a une signification spécifique qui restreint davantage la recherche, comme « AND » et « OR ».

En tapant « AND » dans votre requête, vous obtiendrez des problèmes correspondant aux deux conditions de votre recherche.

Par exemple, cette recherche renverra tous les problèmes qui ont actuellement une priorité élevée et qui ont également le statut « To Do » (À faire) :

Keywords in JQL

D’autre part, « OR » renverra tous les problèmes qui remplissent l’une ou l’autre de vos conditions.

La même recherche que ci-dessus avec un mot clé « OR » renverrait :

  • tous les problèmes hautement prioritaires ;
  • tous les problèmes qui ont un statut « To Do » (À faire) ;
  • et tous les problèmes qui combinent ces deux conditions.

Un didacticiel JQL : Tout rassembler

Maintenant que vous connaissez les bases, passons en revue un exemple JQL de Jira.

Lorsque vous cliquez sur « Advanced Search » (Recherche avancée), vous obtenez une barre de recherche sans filtres prédéfinis.

Une fois que vous avez commencé à taper votre requête, Jira vous dira si votre requête est valide ou non avec une coche verte à gauche. Si vous obtenez un X rouge, cela signifie que votre recherche n’est pas valide :

JQL Tutorial

Si vous avez besoin d’aide pour référencer la syntaxe, vous pouvez toujours cliquer sur le point d’interrogation situé à droite du champ de recherche.

Ce qui est vraiment pratique avec Jira JQL, c’est qu’il vous propose des suggestions automatiques au fur et à mesure de la frappe. Cela vous permet d’obtenir la syntaxe exacte lorsque vous ne la connaissez pas par cœur.

Par exemple, supposons que nous commencions notre requête en cherchant dans le champ « Priority » (Priorité). Vous pouvez taper « Priority » (Priorité) dans le champ de recherche. Et JQL suggérera automatiquement ce qui devrait suivre : un opérateur.

JQL Tutorial example

Vous pouvez ensuite cliquer sur l’un des opérateurs suggérés pour continuer à construire votre requête JQL.

Un exemple de langage de requête Jira utilisant AND

Pour cet exemple, imaginons que nous souhaitions trouver tous les problèmes urgents qui ne sont pas résolus dans un lien Epic spécifique.

Votre requête ressemblerait à ceci :

JQL using AND

Comment cette requête cadre-t-elle avec ce que nous avons appris auparavant ? Prenons chaque section de cette requête et décomposons-la étape par étape :

Priority (Priorité) : Champ

: Opérateur (égal à)

Urgent  : Valeur du champ « Priority »

AND  : Mot-clé

Status (Statut) : Champ

!= : Opérateur (pas égal à)

Done  (Terminé) : Valeur du champ « Status »

AND  : Mot-clé

« Epic Link » (Lien Epic) : Champ

: Opérateur (égal à)

STAN-5 : Valeur du champ « Epic Name » (Nom de l’Epic)

Un exemple JQL pour le mot clé « OR »

Que se passe-t-il si vous recherchez des problèmes urgents qui ne sont pas résolus pour un Epic spécifique, mais souhaitez également voir des problèmes hautement prioritaires ?

Exécutons à nouveau la même requête, mais cette fois en utilisant « OR » :

JQL using OR

Le reste de la requête reste identique, à l’exception de l’ajout d’un mot clé « OR » et d’une requête pour les problèmes de haute priorité.

Utilisation des fonctions Jira JQL pour les recherches avancées

Vous pouvez faire beaucoup avec les champs, les valeurs, les opérateurs et les mots-clés. Mais si vous souhaitez exploiter une logique complexe et facilement accessible, vous avez besoin de fonctions.

Une fonction est un calcul prédéfini que les utilisateurs peuvent intégrer à leur requête pour renvoyer certaines valeurs.

Elles sont toujours représentées par un mot suivi de parenthèses contenant des champs ou des valeurs.

Par exemple, si nous voulions trouver tous les problèmes liés dans un autre problème, nous pourrions utiliser la fonction linkedIssues () :

JQL Functions for advanced searches

La valeur entre parenthèses est le problème que nous recherchons pour les liens.

Toutes les fonctions JQL n’ont pas besoin d’avoir une valeur entre parenthèses. Par exemple, si vous souhaitez savoir quels problèmes sont affectés à un sprint terminé, vous devez saisir les éléments suivants :

sprint in closedSprints();

Les fonctions Jira JQL sont particulièrement puissantes lorsqu’elles sont combinées avec les autres éléments de JQL.

Supposons que j’essaie de rechercher les problèmes urgents qui doivent être réglés dans les deux jours d’un projet (par exemple, cet article) et attribués à un utilisateur spécifique (moi). La fonction endOfDay () serait utile ici.

La requête ressemblerait à ceci :

due < endOfDay(“+2”) AND assignee = francis AND project = “BLOG” AND priority = Urgent

J’ai ajouté +2 à la fonction endOfDay () car je devais savoir ce qui devait arriver dans deux jours. Alors que la fonction JQL ne renverrait que ce qui est dû à la fin de la journée en cours.

Comme vous pouvez le constater, nous avons 3 mots clés « AND » séparant 4 conditions différentes pour notre requête JQL. Si nous devions afficher cette information dans un graphique, cela ressemblerait à ceci :

Due Date (Date de l’échéance)Assignee (Responsable de l’attribution)Project (Projet)Priority (Priorité)
Dans 2 joursFrancisBLOGUrgent

Remarque : Pour obtenir une liste de toutes les fonctions disponibles, ainsi que de la syntaxe appropriée ainsi que des champs et des opérateurs pris en charge, vous pouvez vous reporter à la page de référence d’Atlassian.

Tri et Délimitation JQL : réduisez vos données.

Bien que Jira JQL soit assez bon pour affiner une multitude de problèmes, votre requête renvoie parfois un volume de problèmes simplement trop important.

À ce stade, la délimitation et le tri entrent en jeu pour vous aider à obtenir les informations dont vous avez besoin, dans la priorité dont vous avez besoin.

Délimitation

La délimitation implique de cibler votre requête de manière spécifique afin que la recherche ne renvoie que les informations qui vous concernent.

Il peut souvent être fastidieux de commencer par une requête longue et complexe lorsque vous effectuez votre recherche. Vous pouvez donc commencer par une recherche large et réduire à partir de là.

Voici un exemple.

Commençons par une requête très générale: toutes les questions en suspens d’un projet spécifique:

Project = “BLOG” AND status = open

Cela va générer un grand nombre de problèmes, voyons donc le sprint actuel :

Project = “BLOG” AND status = open AND fixVersion = “Current Sprint”

Imaginons que nous voulions savoir quels problèmes étaient urgents ou hautement prioritaires dans notre sprint actuel et nous avons été déplacés du dernier sprint pour savoir si des problèmes urgents étaient négligés. Vous pouvez restreindre comme ceci :

Project = “BLOG” AND status = open AND fixVersion = “Current Sprint” AND fixVersion WAS “Last Sprint” AND (priority = Urgent OR priority = High)

Avec la recherche ci-dessus, vous obtiendrez une vue très spécifique des problèmes prioritaires ou urgents reportés du dernier sprint.

Cela vous permettra d’enquêter sur la fréquence à laquelle cela se produit et pourquoi.

Tri

Par ailleurs, le tri JQL vous permet de classer la liste des problèmes retournés d’une manière spécifique à l’aide du mot clé « ORDER BY ».

Voici ce que je veux dire.

Si vous souhaitez que la requête ci-dessus soit commandée par le responsable d’attribution, vous pouvez l’ajouter comme suit :

Project = “BLOG” AND status = open AND fixVersion = “Current Sprint” AND fixVersion WAS “Last Sprint” AND (priority = Urgent OR priority = High) ORDER BY assignee

Si vous souhaitez trier vos problèmes en utilisant plus d’un champ – par exemple, par responsable de l’attribution et par date d’échéance – vous devez répertorier vos champs de tri par ordre de priorité :

ORDER BY assignee, duedate

Dans la requête ci-dessus, Jira renverrait d’abord une liste de problèmes triés par responsable d’attribution, puis triés par date d’échéance pour tous les problèmes concernant le même responsable d’attribution.

Astuces JQL intelligentes

Cela couvre les bases de l’utilisation du langage de requête Jira.

Cependant, de nombreuses autres fonctionnalités vous permettront d’économiser encore plus de temps et de tracas.

Expliquons quelques astuces JQL intelligentes.

Enregistrement de filtres JQL

Pas besoin de retaper les mêmes filtres encore et encore. Si vous avez besoin de rechercher la même requête régulièrement, vous pouvez l’enregistrer pour une utilisation ultérieure.

Vous pouvez configurer vos filtres pour qu’ils apparaissent sur votre tableau de bord. De cette façon, vous aurez accès à vos résultats de recherche en un seul coup d’œil.

Pour enregistrer votre filtre actuel, cliquez sur le bouton « Save As » (Enregistrer sous) situé en haut à gauche. Vous serez invité à nommer votre filtre.

Saving JQL Filters

Notez que cette fonctionnalité est également disponible pour les recherches de base.

Partage de vos requêtes JQL

Une fois le filtre créé, vous pouvez le sélectionner pour le partager avec d’autres utilisateurs.

Vous pouvez le faire de plusieurs façons :

  • Utilisez le bouton « Share » (Partager), en haut à droite
  • Exportez le filtre dans un autre format en utilisant le bouton « Export » (Exporter) (à côté de « Share » (Partager))
  • Modification des autorisations sur votre filtre pour ajouter plus d’utilisateurs

Sharing JQL Queries

Abonnements planifiés

Un abonnement obligera Jira à exécuter des requêtes JQL de manière planifiée et à vous envoyer les résultats par courrier électronique.

Vous éviterez de vous connecter régulièrement à Jira uniquement pour effectuer une requête vous-même.

Vous pouvez même envoyer vos abonnements à d’autres utilisateurs.

Lorsque vous configurez un nouvel abonnement, vous pouvez choisir de les planifier selon un intervalle spécifique, comme indiqué ci-dessous :

Scheduled Subscriptions

Cela est particulièrement utile pour :

  • La création de rapports sur une base régulière
  • Garder une trace des problèmes critiques
  • Obtenir la visibilité des nouveaux problèmes entrants

Nom du filtre cohérent

Lorsque vous vous retrouvez avec plusieurs filtres, il est important d’utiliser une nomenclature de dénomination cohérente.

Par exemple, vous ne voulez pas que vos noms de filtres ressemblent à ceci :

  • OrderedByDueDate_ClosedSprint_BlogWritingEpic
  • AudioDevEpic_OrderedByAssignee_CurrentSprint

En regardant les deux noms de filtres ci-dessus en un coup d’œil, il est très difficile de les organiser, car ils semblent être nommés de manière aléatoire.

Utilisez une nomenclature spécifique pour suivre vos filtres. Et assurez-vous que le reste de votre équipe fait de même.

Cela garantit que tout le monde comprend le rôle d’un filtre spécifique. Et évite aux autres utilisateurs de créer des filtres en double s’ils ont oublié le point d’un filtre déjà existant.

Par exemple, si nous devions renommer les deux filtres ci-dessus, nous pourrions utiliser la nomenclature suivante :

Sprint_Epic_OrderedBy

Cela nous donnerait les noms suivants :

  • ClosedSprint_BlogWritingEpic_OrderedByDueDate
  • CurrentSprint_AudioDevEpic_OrderedByAssignee

Vous vous remercierez plus tard si vous recherchez des filtres spécifiques !

Compléments JQL

Si vous maîtrisez les bases de JQL, Atlassian Marketplace propose plusieurs plug-ins prêts à être installés pour améliorer votre expérience de recherche :

  • JQL Tricks Plugin : Ce plugin offre plus de 50 fonctions supplémentaires. Il vous permet également de limiter la fonctionnalité du plug-in aux groupes sélectionnés et / ou de limiter les fonctions individuelles aux projets sélectionnés.
  • JQL Search Extensions : Ces ajouts de mots-clés faciles à utiliser vous permettent de rechercher des problèmes, des commentaires, des sous-tâches, des pièces jointes, des versions, des Epics et des liens. C’est actuellement l’extension de recherche la plus populaire pour Jira Cloud.
  • JQL Booster Pack : Avec ce plug-in, vous aurez plus de 15 fonctions pour étendre vos capacités de recherche. Celles-ci incluent des fonctions liées aux utilisateurs pour mieux contrôler l’équipe, obtenir une vue d’ensemble des activités récentes de vos utilisateurs et des fonctions pour supprimer les versions archivées.
  • JQL Functions Collection : Les fonctions supplémentaires disponibles dans ce plugin permettent des fonctionnalités plus complexes utilisant des formats de chaîne et de date.
  • Groups and Organisations JQL : Avec deux paires de fonctions simples à utiliser, vous pouvez faire correspondre les valeurs de champs personnalisés à un ou plusieurs groupes avec les groupes d’utilisateurs ou le champ Organisations avec les organisations auxquelles un utilisateur appartient.
  • Scripted JQL Functions : Ce plugin pratique vous permet d’exploiter les fonctions JQL sans avoir à apprendre le SDK Atlassian. C’est à la fois une bibliothèque de fonctions JQL que vous pouvez modifier/étendre et un moyen simple de créer vos propres fonctions JQL.

Conclusion

Ceci conclut les bases de JQL !

J’espère que vous savez maintenant comment définir et trier les bases de données Jira, maintenant que nous avons couvert les éléments suivants :

  • L’anatomie d’une requête JQL
  • Comment utiliser des mots-clés et des opérateurs pour affiner votre recherche sur plusieurs champs
  • Comment analyser et trier pour tirer le meilleur parti de JQL
  • Comment enregistrer des filtres et des abonnements pour gagner du temps lors de vos futures recherches

Notez également que Jira 8.0 arrive à grands pas et ajoutera des fonctions JQL supplémentaires, telles que issueLinkType et updatedBy – alors faites bien attention à cette mise à jour !

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *