Scrum est mort. Vive le Kanban

J'utilise la méthode de gestion de projet Scrum depuis le tout début de ma carrière. J'ai étudié Scrum à l'université. À l'époque, il était considéré comme la meilleure méthode de gestion du développement logiciel. Quand j'ai commencé à travailler, j'aimais tout ce qui concernait Scrum: les réunions quotidiennes, la planification, les flashbacks, les sprints, etc. Au final, j'ai mis en pratique ce qu'on m'avait appris. Mais après quelques années, j'ai commencé à remarquer quelque chose: dans les derniers jours du sprint, tout le monde se précipite pour terminer tout ce qu'il a fait au cours des deux semaines précédentes, en essayant d'éviter de transférer des tâches vers le futur. Souvent, ceux qui ont fait cela ont pris des risques inutiles.











Pourquoi? Certaines tâches ne peuvent-elles pas attendre la semaine prochaine? Est-ce si important de tout finir avant le week-end? Non, ce n’est pas si important. Et tout cela est dû au fait que "Effectuer des tâches est mauvais".



Scrum n'est plus tout à fait une méthodologie de développement Agile



J'en suis venu à la conclusion que l'accent est trop mis sur le processus de travail dans Scrum. Ou, du moins, les gens y prêtent trop d'attention, ce qui se traduit par:



  • Il est normal de terminer la user story le dernier jour du sprint. Mais terminer le travail lundi prochain est déjà un «transfert de tâches».
  • - ( , ), , , , , .
  • , , , . , , , ( , ).


En conséquence, il s'est avéré que Scrum ne nous aidait plus à atteindre l'objectif. Cette méthode de gestion de projet nous limitait désormais.



Avec tout ce qui précède, je peux constater que les membres de mon équipe ont commencé à se sentir insatisfaits de ce qui se passait. Cela a affecté la qualité de ce que nous avons créé. Les programmeurs étaient plus soucieux de respecter les délais que d'atteindre le niveau de qualité souhaité.



À ce stade, nous avons commencé à chercher d'autres moyens d'organiser le travail, à la recherche d'un autre cadre agile qui conviendrait mieux à notre façon de travailler.



Ensuite, nous avons trouvé Kanban (kanban).



Qu'est-ce que Kanban?



Kanban est une méthode de gestion de la production née chez Toyota dans les années 1950. À l'époque, Toyota utilisait un tableau à trois colonnes: planifié, en cours, terminé. Ce cadre a permis à Toyota d'allouer plus efficacement les ressources dans les situations où des goulots d'étranglement surgissaient quelque part le long de la chaîne de production.



Puis, lorsqu'il est devenu clair que l'utilisation de Kanban pouvait augmenter la vitesse de développement de logiciels, Kanban a été transféré dans l'arène technologique.



Comparaison des frameworks Scrum et Kanban



Ces dernières années, Scrum et Kanban se sont battus pour devenir le principal framework agile. Malgré le fait que Scrum occupe la première place , le kanban se répand de plus en plus. Et si vous les compariez?



Si nous prenons Scrum comme base et le comparons avec Kanban, nous obtenons ce qui suit:



  • , ().
  • .
  • «». , .
  • , , .
  • () -.


Une comparaison plus détaillée entre Scrum et Kanban peut être trouvée ici .



Kanban donne à l'équipe de développement un niveau de flexibilité assez élevé. Les user stories, en comparaison avec Scrum, sont exécutées de manière plus libre. Mais la liberté est la responsabilité. Bien que Kanban n'oblige pas les développeurs à s'engager toutes les deux semaines, l'utilisation de cette méthode de gestion du développement a ses propres contrôles. Il s'agit, par exemple, de mesures telles que le temps de cycle et le débit du système.



Tout est question de métriques



Il est impossible d'évaluer l'efficacité (ou l'inefficacité) du travail sans mesures spécialisées. Jetons un coup d'œil aux métriques utilisées dans Scrum et Kanban.



▍Scrum Metrics



Lors de l'application de Scrum, les métriques et graphiques suivants sont utilisés:



  • (velocity). , .
  • , , (commitment vs. done). , , .
  • (Burndown Chart). , .


Il est peu probable que ces mesures vous aident à améliorer votre flux de travail.



La «vitesse» ne mesure pas la vitesse à laquelle les sous-systèmes de produits finis sont libérés. Cette métrique ne mesure que le nombre d'étapes de travail terminées pertinentes pour une user story. Si une histoire prend plus de temps que prévu, cette métrique n'a pas de sens.



«Le rapport entre l'engagement du développeur et le volume de tâches accomplies» ne doit pas du tout être considéré comme une mesure. Cette «métrique» compare l'engagement aux résultats. Inutile de dire que cela peut amener les gens à fermer et à rouvrir des tâches juste pour les faire.



Le diagramme de burnout est quelque chose auquel je n'ai personnellement jamais prêté beaucoup d'attention. Cela est principalement dû au fait que ces graphiques ressemblent souvent à celui ci-dessous.





Diagramme de burnout



Pourquoi en est-il ainsi? Supposons que vous commenciez avec un tableau vierge et que vous commenciez à travailler en parallèle, par exemple avec trois user stories. Ces histoires sont susceptibles d'être travaillées au même rythme, c'est pourquoi vous pouvez voir des mouvements descendants aussi puissants dans le diagramme d'épuisement professionnel. De plus, s'il n'y a qu'un seul testeur dans l'équipe qui doit tester les résultats du travail sur toutes les tâches, alors il sera le goulot d'étranglement de l'équipe.



▍Métriques Kanban



Je pense que les métriques sont les atouts les plus importants de Kanban. Kanban dispose de nombreuses métriques différentes pour vous aider à mieux comprendre ce qui se passe au sein de votre équipe. Par exemple:



  • Débit d'équipe Nombre de user stories terminées au cours d'une période donnée.
  • Temps d'un cycle Le nombre de jours nécessaires pour terminer le travail d'histoire depuis le début du travail. Des mesures telles que les intervalles de confiance sont utilisées ici. Le plus courant est la confiance à 85%.
  • Diagramme de flux cumulatif Un tel diagramme vous permet de visualiser le processus de résolution des problèmes en fonction des user stories. Ce diagramme devrait ressembler à celui illustré ci-dessous.




Organigramme cumulatif



Il existe un plugin pour Jira qui vous permet de profiter de toutes ces métriques. Ceci est ActionableAgile pour Jira - Agile Metrics . Il aide à explorer les mesures pertinentes pour les performances de l'équipe en utilisant la même plate-forme que celle utilisée pour gérer le travail.



Adaptation Kanban



L'utilisation de kanban "pur" ne prévoit pas certaines des opérations requises lors de l'utilisation de scrum. Mais cette méthode de gestion de projet est suffisamment flexible pour permettre, si de telles actions semblent utiles, de s'ajouter au workflow.



Les rétrospectives sont l'un des types de réunions les plus importants. C'est lors de ces réunions que les membres de l'équipe peuvent parler de ce qu'ils ont accompli, de ce qui ne s'est pas très bien passé et de ce qui peut être amélioré. Une rétrospective est un événement calme où vous pouvez parler de vos problèmes et féliciter ceux qui ont fait un excellent travail pour leur succès.



Bien que les flashbacks ne soient pas nécessaires dans Kanban (ils ont lieu à la fin de chaque Sprint dans Scrum), nous les avons trouvés intéressants et n'avons pas voulu les ignorer. En fait, nous avons même commencé à les faire chaque semaine, plutôt que toutes les deux semaines comme nous le faisions auparavant. Cela nous a permis de réagir plus rapidement en cas de problème. Nous utilisons également ces réunions pour analyser les métriques de l'équipe et vérifier les flux de travail pour les problèmes et les goulots d'étranglement.



Nous avons sauvé un élément supplémentaire de nos temps Scrum, ce qui est facultatif lors de l'utilisation de Kanban. Il s'agit d'estimer le temps nécessaire pour travailler sur une user story. Cela se fait au cours de la clarification des tâches qui entrent dans l'histoire. Scrum utilise ces estimations pour mieux comprendre ce qui rentrera dans le sprint. Vous pourriez penser que puisqu'il n'y a pas de sprints dans Kanban, l'évaluation de l'histoire n'est pas nécessaire. Mais en fait ce n'est pas le cas.



L'estimation du temps nécessaire pour terminer une user story permet de s'assurer que tous les membres de l'équipe ont la même compréhension de l'étendue des tâches à accomplir tout en travaillant sur l'histoire. Si quelqu'un donne à l'histoire une note de 8 et quelqu'un de 3, il est évident que nous devons continuer à discuter de cette question. Quelqu'un peut, lors de l'évaluation du moment, prendre en compte certains problèmes que d'autres ne connaissent pas. Dans la compréhension de quelqu'un, la portée du travail de user story devrait inclure quelque chose que les autres ne considèrent pas comme tel.



En fait, tout cela pousse les membres de l'équipe à discuter.



Lorsque quelque chose comme cela se produit, il devient évident que tout le monde n'a pas une compréhension claire de la quantité de travail à effectuer en fonction d'une certaine user story.



Un autre scénario courant ressemble à ceci: toute l'équipe attribue une note assez élevée à la pénibilité de l'histoire (généralement tout ce qui est supérieur à 8 points). Cela parle d'incertitude. Cela signifie soit que nous parlons de beaucoup de travail, soit de résoudre des problèmes très difficiles, ce qui rend les membres de l'équipe désagréables. Dans un tel cas, il est préférable de diviser la user story en plusieurs histoires plus petites et de définir plus clairement les objectifs du travail.



Résultat



Scrum restera à jamais dans nos cœurs comme la première méthodologie agile largement répandue. Mais à mesure que les entreprises évoluent vers des schémas de déploiement continu, l'utilisation de sprints limités dans le temps n'a plus de sens.



Il y aura toujours des projets spéciaux dans lesquels Scrum pourra bien performer. Cependant, étant donné que les entreprises utilisent de plus en plus des méthodologies agiles, Kanban s'imposera progressivement, remplaçant Scrum.



Qu'est-ce qui vous convient le mieux? Scrum ou Kanban?






All Articles