jeudi 23 avril 2015

Automatiser le statut des Features (Epic) dans JIRA

Le besoin 


Qui ? : Le programme manager
Quoi ? : Un board JIRA permettant de visualiser l'avancement des Feature
Pourquoi ? : Eviter la maintenance manuelle d'un fichier Excel

Conditions :
  • Le statut des Features doit se mettre à jour automatiquement en fonction de celui des User Story associées
  • Un champ doit afficher l'avancement % des points Done

La solution mise en place


Pour la solution proposée ici nous avons utilisé les Add-ons gratuits suivant :
La solution consiste en un Board Agile affichant uniquement les Features du projet et leur statut respectif :
  • TO DO : si aucune des User Story associées n'est commencée ou terminée
  • IN PROGRESS : si une au moins des User Story est commencée ou terminée
  • DONE : si toutes les User Story associées sont Done
Un champ scripté qui calcule automatiquement le % des points Done a été ajouté au type Feature et ce champ est configuré pour apparaître sur le Board Agile



Automation du statut des Features


Le plugin Automation permet de déclencher des transitions automatiquement sur la base du résultat d'une requête à un intervalle de temps donné

Nous avons d'abord créé des filtres pour identifier deux ensembles de User Story

Celles qui ne sont plus à faire NOT TO DO

resolution != Unresolved OR status in ("Coding WIP", "Coding done", "Return to dev", "Ready for test", "Testing WIP", "Testing done", Done, "In Progress")

Celles qui ne sont pas terminées NOT DONE

resolution = Unresolved OR status not in (Done, "Testing done") 


Ces deux requêtes nous permettent de créer les 3 requêtes utilisées par l'automation

Feature TO DO
Toutes les Feature qui contiennent des User Story qui ne sont pas pas à faire
issuetype=Feature AND status not in (Todo) AND issueFunction in hasLinks("is Epic of") AND NOT(issueFunction in linkedIssuesOf("filter='NOT TO DO'", "has Epic"))

Feature In PROGRESS
Toutes les Feature qui contiennent des User Story qui ne sont ni à faire ni terminées
issuetype=Feature AND status not in ("In Progress") AND issueFunction in hasLinks("is Epic of") AND issueFunction in linkedIssuesOf("filter='NOT DONE'", "has Epic") AND issueFunction in linkedIssuesOf("filter='NOT OPEN'", "has Epic")

Feature DONE
Toutes les Feature qui contiennent des User Story qui ne sont pas pas terminées
issuetype=Feature AND status not in (Done) AND issueFunction in hasLinks("is Epic of") AND NOT(issueFunction in linkedIssuesOf("filter='NOT DONE'", "has Epic"))


Ajout d'un champ indiquant la progression de l'avancement des Feature


Script Runner permet de créer des Custom Field de type Scripted Field et d'y associer un script Groovy qui à chaque affichage du champ va être executé

Ce script récupère toutes les Issues Jira associées à la feature et compute le % de points Done

Le script doit finir par un return qui renvoie une String affichée dans le champ

Exemple : 12 / 21 (todo/done) - 51% (% pts done)

Pour afficher ce champ dans mon Board Agile, je vais dans Configure / Card Layout et j'ai juste à sélectionner le champ (ici Progression) pour qu'il apparaisse sur mes cartes

Voici le script : 



2 commentaires: