agile scrum kanban gestion de projet github git node cli - 04 Jul 2017

GAD : Github Agile Dashboard

Thomas JARRAND
Écrit par Thomas JARRAND

Comment j'ai créé un petit outil en ligne de commande pour m'aider dans mon quotidien agile

Sur notre projet du moment, notre équipe utilise beaucoup GitHub comme support agile.

De manière assez similaire à ce que Maxime a mis en place de son coté.

En bref :

Ça nous convient bien et GitHub nous fournit un aperçu de l’avancée de la milestone (et donc du sprint) en cours :

github-milestone

Le problème, c’est que GitHub ne connait pas notre convention décrivant la valeur en point des stories et ne peut donc pas l’exploiter.

L’avancement proposé en nombre de ticket clos n’est pas représentatif de l’avancement en terme de points, qu’on doit obtenir en additionnant les points de toutes les issues.

Et puis un jour, on en a eu marre de faire ces totaux à la main 😇

GAD, notre ligne de command agile

Alors j’ai pris un moment pour faire un petit outil en ligne de commande qui ferait ce travail pour nous.

À partir de ces données, il est très simple de classer les stories du sprint en cours par état (todo, doing, ready-to-review et done) et de calculer les sommes de points respectives.

Comme toutes ces données sont horodatées, on a même de quoi générer un petit burndown chart !

Dans le répertoire de notre projet, si on tape gad sprint, on obtient :

gad sprint

Dès que nous avons identifié un besoin qui revenait souvent, on a rajouté une commande à GAD :

Combien de points reste-t-il dans le backlog ?

gad backlog

Est-ce qu’il y a des PR que je n’ai pas encore review ?

gad review

Faire son propre CLI avec Node

GAD est codé en Node, mais de nombreux languages seront capables de répondre à une telle problématique.

Node fournit quelques outils pratiques pour réaliser rapidement un petit outil en ligne de commande :

Note : lorsqu’il est exécuté, gad récupère de précieuses informations, grâce à git, comme l’url du repository (git -C . config --get remote.origin.url) ou l’utilisateur GitHub courant (git config --global github.user)

Ce qu’on en retire

Retour sur investissement

La première version fonctionnelle de GAD était prête après une petite après-midi de travail et accélérait déjà quelques tâches rébarbatives de notre quotidien agile. Un investissement vite “remboursé” !

Les joies simple de la ligne de commande

gad sprint devient petit à petit un réflexe (comme git status) et nous permet d’avoir un rapide aperçu de l’avancement du sprint, directement dans le terminal, sans même avoir besoin de prendre en main la souris 😬

L’avantage de la ligne de commande, c’est qu’on bénéficie directement de la puissance du terminal :

Est-ce que la story #42 à bien été réalisée dans le dernier sprint ?

gad changelog --sprint=-1 | grep 42

😎

Et moi dans tout ça ?

GAD n’est probablement pas l’outil qui va révolutionner votre façon de travailler et multiplier la productivité de vos équipes, notamment car il a été conçu sur-mesure pour nos besoins et notre façon de travailler.

Mais puisqu’il est open-source, je vous propose tout de même de l’essayer ou de jeter un oeil à son code.

Je vous invite aussi à être attentif·ve :

Vous repérez une tâche que vous répétez tous les jours et pour laquelle l’humain n’a pas de valeur ajoutée ? Alors pourquoi ne pas développer votre propre utilitaire en ligne de commande pour adresser le problème et observer son adhésion par le reste de votre équipe ! 🙌