Comment concevoir un code de qualité grâce au Lean Management ?

Comment concevoir un code de qualité grâce au Lean Management ?

September 27, 2022

Je m’appelle Amine et je suis développeur full stack JavaScript chez Wishow.
Aujourd’hui, je voulais vous faire un retour d’expérience sur ce combo de méthodologies que j’ai trouvé absolument révolutionnaire !

L’idée est simple : il s’agit d’emprunter des principes de la méthodologie du Lean Management afin de les appliquer dans un projet agile Scrum. Quel est le but ? L’objectif est d’améliorer le travail d’équipe et la montée en compétences des équipes techniques.

Dans cet article, je vais surtout vous détailler certains principes du Lean Management que j’ai eu l’occasion de mixer dans un projet Agile Scrum. A chaque fois, je vous ferai un retour d’expérience personnel sur les avantages que j’ai retirés de chaque principe.

En effet, ce n’est pas nouveau d’adapter la méthode Agile Scrum en fonction de l’environnement de travail de l’entreprise et des personnes qui composent la team tech.

Quels sont les principes du Lean Management que j’ai eu l’occasion de mêler à la méthode agile Scrum ?

La standardisation des tâches

La standardisation des tâches est un principe emprunté au Lean Management dont l’objectif est de créer des standards unifiés autant pour le code que pour l’organisation de la team.

Comment cela se concrétise ?

Au début du projet, le Product Owner et l'équipe technique préparent une documentation partagée avec les standards qui seront utilisés dans le projet. Cette documentation est mise à jour dès la rencontre d’une difficulté qui a été résolue pendant le sprint et qui est susceptible d’être rencontrée à nouveau par l’équipe technique.

Voici quelques exemples des standards qui peuvent être mis en place :

-des règles uniformes pour bien rédiger un ticket
-des règles de nomination des branches et commits git
-des règles de création d'un merge request
-la nomination des variables et la nomination des couleurs dans le code
-créer des codes snippet
-l’utilisation de la méthode de résolution de problème PISCAR (Le Problème - L’impact - Standard - Causes - Action - Résultats attendus)


Mon retour d’expérience : Grâce à la standardisation des tâches, je me suis senti moins frustré car je pouvais me repérer dans le projet et avec l’équipe facilement car on avait tous la même façon de travailler et d’écrire le code. Cela permet également de s’adapter aux bugs rencontrés et d’éviter à l’équipe technique de les reproduire.

La granularité des tickets, un des principes fondateurs du Lean Management

La granularité du ticket est une découpe fine des tickets. Cette fine granularité garantit issue du Lean Management offre une meilleure qualité du travail car chaque partie d’un projet, aussi petite soit-elle, sera forcément analysée, tant sur le plan technique que métier.

En effet, le découpage fin des tickets garantit également :
- une meilleur qualité de code tout en facilitant les code review
- de minimiser les retours de validation et les rectifications car plus la tâche est petite, moins il y a de chance de faire des erreurs
- Moins de stress pour les développeurs qui ont plus de satisfaction à terminer des tâches rapidement et en prendre de nouvelles
- Faciliter le chiffrage des tickets : plus le ticket est petit, plus tu peux estimer son niveau de difficulté et lui attribuer un chiffrage précis.
- Faciliter l'intégration des nouveaux devs et surtout les juniors en pouvant leur assigner des tâches précises, avec un chiffrage bas qui sont adapté avec leur niveau et leur compréhension du projet

La production lissée

Durant chaque Sprint, les développeurs doivent comptabiliser un nombre de points définis à l’avance. Dans le Lean Management, l’objectif est d’avoir une courbe lissée, pour permettre à l’équipe d’avoir la même charge de travail tous les jours et de pouvoir gagner en vélocité.

Le découpage fin des tickets a pour avantage d’améliorer l'estimation des tickets, ce qui permet à l'équipe de bien définir sa charge de travail journalière dans un sprint.
Comment ?
En s’attribuant un nombre de points précis atteignable, ce qui permet d'avoir une production lissée, c'est-à-dire d’avoir le même nombre de points effectués par jour.

L’objectif de ce principe du Lean Management, c’est que sprint après sprint, l'équipe gagne en maturité et dans ce cas, le nombre de points à atteindre par jour augmente.

Mon retour d’expérience : Quand j’avais le covid, j’étais coincé chez moi dans ma chambre et je terminais mes tickets assez rapidement, ce qui faisait qu’à 15h-16h, j’allais piocher dans le backlog d’autres tickets. C’est à ce moment là que j’ai remarqué que j’étais monté en vélocité. Je ne l’aurais pas forcément remarqué aussi vite simplement avec la méthode Agile Scrum. J’ai donc ressenti une grande fierté de voir ma marge d’amélioration.

La Burndown Chart

La burndown chart est le contrôle visuel sous forme de graphe de l’avancé du sprint en cours. Ce graphique est accessible à tout le monde et se met à jour automatiquement en fonction des tickets déplacés en “Done” par les développeurs. Le contrôle visuel journalier de la burndown chart est l’un des principes majeurs du Lean Management.

En effet, les développeurs ont un objectif journalier de nombre de points à atteindre. Avec la mise en place d’un rituel quotidien de contrôle de la burndown chart, les développeurs peuvent savoir s'ils sont sur le bon chemin pour atteindre le sprint goal, ou voir facilement s’ils ont du retard. Cela permet aussi de comprendre si le nombre de points définis par jour est adapté ou non à la vélocité de l’équipe technique et de pouvoir rectifier le tir.

Mon retour d’expérience : cela donne une véritable motivation de voir visuellement le nombre points comptabilisés, surtout lorsqu’ils sont plus élevés que l’objectif journalier ! Ce contrôle visuel permet facilement de se repérer dans le sprint et de se challenger pour répondre à l’objectif !

Développer l’expérience individuelle (time-box) et prendre le temps nécessaire à la réflexion grâce à ce principe du Lean Management

La formation continue des équipes techniques est un point CENTRAL du Lean Management. En effet, avant d’entrer dans les détails du projet, l’équipe technique dispose d’une matrice de compétences pour connaître à l’avance toutes les technos qui seront utilisées durant le projet ! Cela permet d’avoir une vision globale des technos à maîtriser ou à apprendre.

Durant le Sprint Planning, Le Product Owner créer des tickets nommés “time-box” pour que les développeurs se consacrent obligatoirement des temps de formations. Ces créneaux sont considérés comme une tâche à part entière du Sprint. En plus de ces tickets, la team consacre 30 minutes/jour pour partager des connaissances techniques.

Mon retour d’expérience : Le fait que le temps de formation soit considéré comme une tâche à part entière, cela m’a enlevé un stress. En effet, quand je ne connaissais pas quelque chose ou que je bloquais pendant le sprint, je savais que j’avais le temps de monter en compétences sur le sujet grâce à ces time-box & aux 30 minutes quotidiennes.

L’engagement du client, un point central du Lean Management

Dans le Lean Management, le Product Owner veille à ce que le client soit présent minimum à une cérémonie de démo sur 2. Aussi, chaque jour, lorsque le Product Owner met à jour le board et la BurnDown Chart, un mail est automatiquement envoyé au client avec l’avancement, les éventuels problèmes et leurs PISCAR pour montrer que l’équipe technique traite actuellement le problème et cherche une solution.

Mon retour d’expérience : Puisque le client est réactif au projet, les développeurs sont rassurés car ils savent que les problèmes doivent être résolus dans la foulée et que les dettes techniques ne seront pas remises au lendemain. Cela permet d’éviter des mauvais feedbacks du client par la suite, et une certaine frustration de sa part si quelque chose ne fonctionne pas pendant le rendu final.

Formulaire d’évolution par le Product Owner

Durant la cérémonie de la Rétrospective, le Product Owner remplit un formulaire d’évaluation (évolution technique, évaluer le rendement de l’équipe, etc…) sur tout le projet en cours. Cela permet notamment de voir si l’équipe technique augmente en vélocité. Dans ce cas, certains développeurs peuvent recevoir une prime. C’est donc un vecteur supplémentaire de motivation pour les membres de l’équipe.
Retour d’expérience : Ce formulaire m’a beaucoup aidé à m’évaluer sur le plan personnel et collectif. Je pouvais aussi avoir une vue d’ensemble sur l’intégralité du projet, et non pas que sur la partie technique. Enfin, je pouvais connaître les points de force et de faiblesses des membres de l’équipe et je pouvais comprendre où m’améliorer pendant le prochain sprint. Bon, et être récompensé pour un effort fourni, c’est quand même motivant ;)

Conclusion sur l'intégration des principes du Lean Management

L’intégration de ces principes du Lean Management à la méthode Agile Scrum prend du temps au démarrage. Mais une fois que la machine est lancée, c’est vraiment un des cadres de travail que j’ai le plus apprécié de ma vie ! Je recommande à fond !

Related Posts