Scrum à l'échelle
Prérequis et objectifs
1. Prérequis
Avoir assimilé les six premiers chapitres.
Avoir lu le guide Nexus est préférable.
2. Objectifs
À la fin de ce chapitre, vous serez en mesure de :
Travailler avec plus d’une seule équipe de développement sur un produit.
Mieux comprendre l’organisation des évènements Scrum avec plusieurs équipes.
Mieux gérer le Backlog de produit avec de nouvelles techniques de management visuel.
Scrum et SAFe
En France, le Product Owner est confronté à une réelle difficulté lorsqu’il cherche à acquérir les compétences nécessaires pour gérer des produits nécessitant d’impliquer plusieurs équipes. Ces difficultés sont accrues s’il souhaite faire valider ses compétences par une certification Scrum.
La principale difficulté réside dans le fait qu’il est rare de pouvoir pratiquer véritablement en entreprise les théories recommandées par Scrum. La plupart des entreprises ont mis en place une méthode ou une organisation personnalisées reposant plus souvent sur SAFe que sur Scrum. Dans ce contexte, il est fréquent de constater d’importantes divergences entre ce qui est recommandé par Scrum et ce qui est réellement pratiqué par des organisations disant avoir adopté Scrum.
Cette complexité est renforcée par le fait que les deux auteurs de Scrum ont créé chacun leur propre approche pour mettre Scrum à l’échelle :
-
Nexus, de Ken Schwaber, disponible sur : https://www.scrum.org
-
Scrum@Scale, de Jeff Sutherland, disponible sur : https://www.scrumalliance.org
Chaque approche dispose de sa propre sémantique, de ses propres processus et de sa propre vision de la mise à l’échelle adaptée à l’organisation des entreprises.
Enfin, comme si ce n’était pas suffisant, il existe d’autres cadres de processus (frameworks) permettant de faire du Scrum à grande échelle, comme ScrumOfScrum, SSwS, LeSS ou DaD, pour ne citer que les principaux.
Mettre Scrum à l’échelle de plusieurs équipes impacte l’organisation et sera donc un processus contraint par les règles régissant cette dernière.
1. SAFe
SAFe, de Dean Leffingwell, est disponible sur https://www.scaledagileframework.com.
Ce cadre de processus ne permet pas de pratiquer correctement Scrum car il supprime l’essentiel des fonctions du Product Owner pour les attribuer à de nouveaux rôles dans une organisation pyramidale.
La vision du produit n’est plus construite par le Product Owner mais par un manager de produit :
Product Management is responsible for defining and supporting the building of desirable... |
Organisation des équipes multiples
Lorsque deux équipes ou plus sont affectées au développement d’un même produit, plusieurs organisations sont envisageables, mais il faut toujours s’assurer des points suivants :
-
Il n’existe qu’une seule définition de « Fini », commune à toutes les équipes.
-
Chaque équipe s’assure que chaque élément de son propre Backlog de Sprint est « Fini ».
-
Chaque équipe s’assure que l’incrément qu’elle délivre correspond à la définition de « Fini ».
-
Toutes les équipes s’assurent conjointement que leurs livrables cumulés s’intègrent et correspondent ensemble à la définition de « Fini », formant un incrément « Fini ».
Même si c’est généralement conseillé, il n’est pas obligatoire que toutes les équipes affectées au développement d’un même produit aient des durées de Sprint équivalentes. Une équipe peut avoir des Sprints d’une semaine, une autre de deux semaines et une autre encore d’un mois. En revanche, il est indispensable qu’il y ait une synchronisation des évènements au moins une fois par mois.
Il existe actuellement deux modes d’organisation des équipes de développement : une organisation horizontale, habituellement désignée sous le terme anglo-saxon de Component Team, et une organisation verticale, la Feature Team. Ces approches diffèrent sur la manière de décomposer le produit en composants, puis en éléments et enfin en tâches. L’axe horizontal correspond à l’organisation des logiciels en couches ou strates :
-
La couche IHM (Interface Homme-Machine)...
Scrum avec deux ou trois équipes
Dans cette organisation, il faut respecter quelques règles.
Il n’y a tout d’abord qu’un responsable du produit : le Product Owner. C’est cette personne et elle seule qui est responsable de l’ordonnancement du Backlog de produit et de la clarté des éléments qui le composent.
Pour le Product Owner, le passage à deux ou trois équipes est un réel défi car la capacité de production est décuplée, mais il n’y a toujours qu’un Product Owner pour recueillir les besoins, les affiner, les décomposer en éléments digestes et faisant sens avec les objectifs du produit, et enfin ordonnancer tout cela dans le Backlog de produit.
À partir de deux équipes, le Product Owner a donc fortement intérêt à apprendre à déléguer certaines activités comme la gestion ou l’affinage de tout ou partie du Backlog de produit. Attention, il reste responsable de ces activités et doit toujours être présent lors des planifications et revues de Sprint. Il ne peut en aucun cas déléguer cette activité.
La définition de « Fini » doit être commune à tous les membres de toutes les équipes de développement travaillant sur le produit.
Tous les évènements Scrum doivent avoir lieu et conservent les mêmes règles. La durée maximale demeure inchangée, et les mêmes types de participants sont obligatoirement présents.
Il est préférable que chaque équipe de développement ait un Scrum Master dédié, surtout si l’entreprise a adopté l’agilité depuis peu. S’il y a trois équipes, il peut donc y avoir trois Scrum Masters.
La durée maximale d’un Sprint reste d’un mois et celle de la planification de Sprint de huit heures. Généralement, les équipes Scrum cherchent à réduire cette durée afin de maximiser la valeur produite par l’équipe de développement, et c’est une bonne pratique. Lorsqu’il y a plusieurs équipes, ce n’est pas forcément le meilleur moyen de maximiser la valeur. À durée de Sprint...
Scrum à plus grande échelle
Dans certains cas, l’organisation peut être amenée à considérer que même avec trois équipes, le produit n’est pas délivré suffisamment rapidement. Pourtant, en ajouter une quatrième (+33 %) n’accroît généralement la vélocité globale que de 15 %. La valeur ajoutée de l’équipe supplémentaire est alors très faible. Le rendement n’est que d’environ 50 %.
De prime abord, il semblerait plus simple de découper un gros produit en sous-produits indépendants et moins complexes. Cela permettrait d’assigner plusieurs Product Owners à plusieurs produits et d’avoir un rendement optimal sur les ressources investies. L’inconvénient, c’est que cette approche complexifie la maintenance globale du SI, qui la plupart du temps est déjà très difficile à cartographier.
Face aux nouveaux et nombreux problèmes que le Product Owner aura à gérer, il ne faut passer à plus grande échelle que s’il n’existe pas d’alternative. Si le Product Owner mesure que la performance baisse tandis qu’une équipe a été ajoutée, alors il faut immédiatement revenir en arrière et chercher une autre solution.
En effet, passer à plus grande échelle implique un plus grand effort de coordination, d’organisation et surtout de transparence de la part du Product Owner. De plus, il doit étendre ses connaissances en développement logiciel afin de mieux réaliser ces activités, notamment en matière de couplage applicatif et de gestion des dépendances.
1. Les problèmes de dépendance
Dans un programme informatique, quel que soit le langage de programmation utilisé, il existe plusieurs fonctions ou classes qui sont imbriquées entre elles un peu comme des Lego. Très souvent, une brique communique avec une autre et a besoin que celle-ci fonctionne correctement pour pouvoir fonctionner elle-même.
Lorsque plusieurs personnes d’une seule équipe travaillent en même temps sur une même partie d’un programme, elles peuvent discuter entre elles, partager des informations régulièrement...
Organisation du Backlog de produit
En accroissant le nombre d’éléments devant être dans un état « Prêt » avant le prochain Sprint, le Backlog de produit perd en lisibilité. Pour en comprendre le sens, il faudrait parfois lire une centaine de petits éléments destinés à alimenter jusqu’à dix équipes Scrum.
Là encore, le Product Owner doit s’appuyer sur les bénéfices du management visuel. Utiliser une carte à cases (Treemap) permet de faire émerger une information visuelle.
Ici sont présentés trois services composés de plusieurs éléments du Backlog de produit. Les éléments en noir sont prêts à être embarqués dans le prochain Sprint. Notez qu’idéalement, au lieu des identifiants (#1 à #15), il serait préférable d’indiquer la description des éléments.
Cette représentation graphique permet de voir clairement quelles sont les grandes fonctions qui sont bientôt prêtes à être déployées. Nul besoin d’aller voir le détail de chaque élément pour comprendre ce sur quoi l’équipe travaillera prochainement. Cela donne également de la visibilité sur l’état d’avancement.
Lorsqu’il est possible...
Déléguer efficacement
Avec plusieurs équipes, le Product Owner doit déléguer une partie de ses activités. La délégation est toujours difficile à entreprendre et souvent mal réalisée, par manque de confiance ou de savoir-faire.
Commencez par déléguer des tâches simples, facilement mesurables et rapides à exécuter, et faites le point avec la personne à qui vous avez délégué le plus tôt possible. Progressivement, vous pourrez accroître la complexité ou le nombre de tâches déléguées.
Ne déléguez pas à une seule personne, mais essayez de répartir équitablement la délégation sur l’ensemble des membres et des équipes. En revanche, ne déléguez jamais la même tâche à deux personnes différentes. Il faut impliquer le plus grand nombre de personnes, mais pas sur la même activité.
Utilisez la planification de Sprint pour identifier les membres à qui vous pourrez déléguer une partie de vos activités.
Établissez une définition de « Fini » avec le délégataire afin qu’il sache à quel moment il sera sûr d’avoir bien rempli sa mission. Même si cette définition est sommaire...
Validation des acquis : questions/réponses
Répondez à ces questions ouvertes, comparables à celles qui pourront vous être posées lors de la certification, mais ces dernières seront sous forme de QCM ou demandant une réponse courte saisie au clavier.
1. Questions
1 Combien de Backlogs de produit le Product Owner doit-il maintenir s’il travaille avec trois équipes ?
2 Un Product Owner travaille avec quatre équipes : l’une se charge de la conception des interfaces, deux des développements d’objets métiers et la dernière des bases de données. Combien de définitions de « Fini » peuvent-elles être créées ?
3 Quels sont les deux principaux types d’organisation des équipes Scrum ?
4 Par quel moyen le Product Owner peut-il maximiser la valeur du travail de l’équipe de développement avec plusieurs équipes ?
5 Quelle doit être la préoccupation principale d’une équipe Nexus ?
6 En dehors des problèmes de dépendance, sur quel aspect le Product Owner doit-il davantage focaliser son attention en passant à Nexus ?
7 Avec plusieurs équipes, quelle est la priorité absolue du Product Owner ?
8 Combien d’équipes Scrum peut-il y avoir dans un Nexus ?
9 Quels sont les évènements...