Skip to main content

Vers une équipe Scrum efficace – L’amélioration continue

 Sabrina Ferlisi

Le but de cet article est de présenter une équipe Scrum réelle et les différents éléments qu’elle a mis en œuvre pour s’améliorer (techniques, ateliers, postures, …). Il met en avant plusieurs aspects importants pour améliorer l’efficacité d’une équipe Scrum comme les conflits d’équipe, l’utilisation de métriques, la qualité des rétrospectives, la qualité du produit, l’importance de la sécurité psychologique, l’environnement d’apprentissage et l’apprentissage partagé. Il s’agit du premier article d’une série de cinq.

J’ai reçu une demande : écrire un article sur le fonctionnement d’une équipe Scrum que j’accompagne en tant que Scrum Master pour inspirer d’autres équipes. L’idée de mettre en avant cette équipe, non pas pour vanter ses mérites, mais pour partager les leçons apprises, était séduisante. J’ai pu observer nos évolutions, nos succès et nos défis, et en particulier sur cette dernière année où nous avons été embarqué dans la transformation digitale de l’entreprise. Lors de mes réflexions et discussions avec l’équipe au sujet de cet écrit, je suis tombée sur cet article de Christiaan Verwijs qui m’a offert une structure pour organiser mes pensées. De plus, afin d’en faciliter la lecture, j’ai ajouté à chaque section un tableau résumant les pratiques, techniques, ateliers que nous avons mis en place, en espérant que cela vous donne des idées.

Avant de plonger dans notre expérience, un mot sur le modèle que j’ai utilisé : il provient d’une étude approfondie sur 1200 équipes Scrum. Grâce à leurs recherches, Daniel Russo et Christiaan Verwijs ont esquissé une théorie sur ce qui fait qu’une équipe Scrum excelle et ont modélisé 5 axes principaux. J’alignerai mon partage autour de ces 5 axes, en y injectant des anecdotes de notre parcours.

Ce premier article se concentre sur l’axe « Amélioration continue ». L’amélioration continue est le pilier de toute équipe Scrum. Elle est l’essence même de l’agilité. J’aimerais ici évoquer quelques aspects distinctifs qui caractérisent notre équipe.

Qualité des Rétrospectives

Pour nous, les rétrospectives sont une boussole. Elles offrent un espace pour réfléchir, critiquer constructivement et s’améliorer. Seraient-elles aussi suivies si je n’étais pas là, en tant que Scrum Master, pour pousser un peu ? Pas certain. Mon regard extérieur et mon expertise facilitent des discussions parfois délicates ou qui ne sont pas vues par le reste de l’équipe. Cependant, chaque membre de l’équipe y voit de la valeur et est désireux de participer.

Les actions prises en cours de rétrospectives sont suivies et révisées régulièrement. Plusieurs rétrospectives ont d’ailleurs mené à des changements significatifs. Je pense en particulier à des améliorations sur « comment avoir plus de Done à la fin de chaque Sprint », la revue du format du Daily Scrum, le split des Product Backlog Items, la mise en place des pratiques Kanban et la mise à jour régulière de la Definition of Done. Nous avons aussi parfois essayé des pratiques, comme le Pair Programming, que nous avons maintenu, sans suivre la littérature à la lettre et en l’adaptant à nos besoins.

L’une des composantes essentielles pour que les rétrospectives soient de qualité, c’est l’ouverture aux changements et aux remises en question.

Pour avoir des rétrospectives de qualité, voici quelques une de nos pratiques
  • Varier les formats des rétrospectives en fonction des besoins du moment. Quelques exemples :
    – Ecocycle Planning
    – Lego
    – Lean Coffee
    – Les valeurs Scrum
    – Squad Health Check

  • Faciliter la séance pour faire en sorte que tout le monde puisse s’exprimer (y compris moi, en tant que Scrum Master). Favoriser les discussions en petit groupe.

  • Nous avons systématiquement notre caméra allumée, l’équipe étant dispatchée sur plusieurs pays.

  • Nous disons ce que nous avons à dire, en y mettant les formes. Nous sommes dans un environnement sécure.

  • Mener des ateliers spécifiques :
    – Rétrospective qui a mené à avoir plus de Done à la fin de chaque sprint avec le format : The Goal Tree
    – Atelier sur le Daily Scrum : commencer par la question « À quoi ressemble un excellent Daily Scrum ? » suivi de “Que devons-nous faire pour avoir un Daily Scrum exceptionnel ?”
    – Atelier pour comprendre les techniques de Split d’un Product Backlog Items.

  • Mise à jour régulière de la Definition of Done (voir la section Qualité ci-dessous)

Gestion saine des conflits

Les conflits, s’ils sont traités de manière constructive, peuvent être bénéfiques. Ils incitent à la réflexion, à la remise en question et souvent à une meilleure compréhension mutuelle.

Trouver sa place

L’une des sources majeures de tension dans une équipe est liée à une confusion dans les rôles et responsabilités dans la prise de décision.

Dans notre équipe, la place de chacun est claire et pourtant nous n’hésitons pas à nous entraider en sortant de notre « zone de travail ».  Il est prévu dans notre flot de travail que le Product Owner vérifie en fin de développement ce qui a été fait. Il arrive de temps en temps que le PO n’ait pas le temps, les Developers prennent alors en charge cette tâche sans rechigner, ni avoir peur.

La clarté des rôles et la flexibilité sont donc essentielles. Cela est rendu possible grâce à des règles d’équipe clairement établies, qui évoluent au besoin. L’une des pratiques mise en place depuis un certain temps consiste à définir des rôles spécifiques par sprint pour faciliter le flux de travail. Nous avons par exemple, le Keyboard manager, qui est la personne durant les séances qui va mettre à jour le contenu des tickets Jira en fonction des discussions qui ont lieu (particulièrement lors des refinements). De cette manière, nous avons des rôles tournants, nous ne sommes pas bloqués si quelqu’un est absent. Une telle transparence élimine l’ambiguïté et renforce notre cohésion.

Pourtant, notre équipe est composée de talents diversifiés, y compris des personnes travaillant en nearshore ce qui pourrait amener des disparités dans l’importance que chaque personne a dans l’équipe et de fait des frustrations pourraient émerger. Dans cette équipe, tous les membres sont traitées équitablement, les voix de chacun sont valorisées et elles sont intégrées dans toutes les discussions et prises de décisions. L’histoire de notre apprenti est un parfait exemple : lorsqu’il a constaté que ses pull requests étaient examinées rapidement, il a compris qu’il était pleinement intégré, qu’il avait sa place parmi nous et que son travail avait de la valeur.

De plus, cette considération de chaque individu crée un environnement où chacun peut se tromper, apprendre et avancer sans que cela dégénère en conflit, reproche ou blâme. D’ailleurs, je me souviens de cette fois où, en tant que Scrum Master, j’ai créé une petite pagaille dans Jira. Le Product Owner m’a signalé mon erreur et j’ai appris à être plus vigilante, tout simplement.

Confiance mutuelle

L’une des forces de l’équipe est de savoir se responsabiliser mutuellement, j’entends par là que les membres n’ont pas peur de rappeler les engagements pris, les règles d’équipe à un autre membre, tout ceci avec bienveillance, assurant que chaque membre se sente valorisé et respecté. Dire clairement ce qui se passe permet d’éviter les non-dits et les ressentiments qui escaladent souvent en conflit.

Pour en arriver à cela, la confiance doit être présente et c’est une des bases de notre équipe. Quand un échec se produit, il est vu comme un échec collectif plutôt qu’individuel. Il nous arrive, évidemment, malgré tout (nous sommes humains), de nous tromper ou de surréagir. Par exemple, lors d’une altercation entre un développeur et le Product Owner, spontanément, des excuses ont été présentées, permettant à l’équipe de repartir sur de bonnes bases.

Nous croyons fermement que chacun au sein de l’équipe fait du mieux qu’il peut. Les discussions sont constructives et l’accent est mis sur la solution plutôt que sur le problème. Par exemple, lorsque nous travaillons en refinement à trouver une solution adéquate et que les demandes faites par le Product Owner ne peuvent pas être réalisées, les développeurs sont force de propositions pour trouver des alternatives. Lorsque nous avons le sentiment qu’un membre ne joue pas le jeu ou pourrait s’améliorer, nous n’hésitons pas à donner du feedback, en rétrospective ou en face à face.

Pour avoir des conflits plus sains, voici quelques unes de nos pratiques
  • Challenger la responsabilisation de chacun dans l’équipe (rappel des règles d’équipes, des engagements pris, …)

  • Oser demander de faire quelque chose à quelqu’un. Par exemple, cela peut être :

    – Des actions en rétrospective
    – Des explications ou du travail durant le Sprint Planning
    – Des demandes d’aides ou du travail durant le Daily Scrum

  • Challenger sur les améliorations personnelles de chacun (en direct ou durant une rétrospective)

  • Rétrospectives tournées sur le feedback (soit c’est des feedbacks en groupe, avec toute l’équipe, soit on se donne du feedback deux par deux)

  • Definition of Workflow : définition du processus de travail, qui fait quoi

  • Règles d’équipe (re)définies au fur et à mesure des rétrospectives en fonction des pattern observés

  • Des rôles sont définies par sprint et sont tournants. Nous avons :
    – le Reviewer – celui qui sera le facilitateur lors de la prochaine revue
    – le Keyboard manager – celui qui s’occupe de prendre des notes dans les Product Backlog Items lors des refinements ou du Sprint Planning
    – le Supporter – celui qui sera dérangé en premier lieu s’il y a un souci durant le sprint. Il va faire un premier filtre sur le problème et si nécessaire, il contacte le reste de l’équipe

  • Nos caméras sont systématiquement allumées pour améliorer la communication, permettre de voir le non-verbal et ajouter de l’humain et de la confiance

  • Nous avons un postulat : Chacun fait du mieux qu’il peut

  • Nous avons le même poids au sein de l’équipe que nous soyons au Portugal ou en Suisse

  • Il n’y a pas de hiérarchie au sein de l’équipe

Sécurité psychologique

La confiancel’écoute, le courage et la transparence ne sont pas de simples mots pour nous, mais des valeurs que nous vivons au quotidien. L’ouverture de l’équipe à d’autres pratiques autour de l’humain permet également de renforcer ces valeurs ainsi que la gestion saine des conflits. Nous avons par exemple exploré ensemble des tests de personnalités et également la Communication NonViolente.

Pour avoir un environnement sécuritaire, voici quelques unes de nos pratiques
  • Nous essayons de faire deux rencontres par année (soit en Suisse, soit au Portugal) pour être physiquement toute l’équipe ensemble.

  • Création d’un Team Canvas pour définir les valeurs et les buts de l’équipe.

  • Présentation des caractéristiques du test de personnalité MBTI ainsi que les résultats de l’équipe.

  • Utilisation des cartes Moving Motivators pour connaître les motivations de chaque membre de l’équipe.

  • Création et présentation des Personal Map de chaque membre de l’équipe.

  • Introduction à la Communication NonViolente et à l’écoute active.

Utilisation de Métriques

Notre équipe utilise les pratiques Kanban au sein de Scrum ce qui nous amène à avoir un œil particulier sur notre flux et sur des métriques comme le Cycle Time, le Service Level Expectation et l’âge des éléments du Product Backlog.

Toutefois, un point reste à améliorer : autrefois centrés sur le Product Goal, les métriques actuels sont plus internes et moins axés sur la valeur du produit. Ceci est lié à notre rôle d’exécutants, sans pouvoir décisionnel direct sur la stratégie. Mais j’y reviendrais dans un prochain article…

Pour améliorer l’utilisation des métriques, voici quelques unes de nos pratiques.
  • Mise en place d’une Definition of Workflow : définition du processus de travail, qui fait quoi

  • Mise en place des pratiques Kanban dans notre Scrum : article sur le sujet

  • Suivi au daily de l’âge de nos éléments du tableau qui ont été démarré (dans le but de terminer au plus tôt ceux qui sont les plus vieux).

  • Nous analysons les métriques de Cycle Time et Throughput durant la rétrospective, ce qui nous permet d’avoir notre SLE (Service Level Expectation) et de faire des projections grâce à la technique Monte Carlo. J’analyse les données dans un outil qui s’appelle Actionableagile.com

  • Lorsque nous avions un Product Goal qui était dans notre cercle de pouvoir, nous avions créé un mur de métrique pour suivre l’avancée par rapport à ce Product Goal.
    Article expliquant la création du Product Goal et des métriques associées
    Le guide Evidence Based Management, sur lequel est basé ce mur.

Le souci de la qualité

La qualité est au cœur des préoccupations de toute l’équipe dans son ensemble, nous veillons à ce que notre produit soit à la hauteur de nos standards.

L’équipe suit strictement la Definition of Done, par exemple en prenant soin de faire des code review minutieuses et utiles, à la fois pour l’amélioration du code, mais également pour l’amélioration des compétences du développeur. Nous avons par le passé constaté certains oublis d’éléments présents dans la Definition of Done. Pour éviter cela, nous avons mis en place une Check-List au Sprint Planning. À chaque fin de planning, nous passons en revue cette Check-List pour nous poser la question, par exemple, si l’un des éléments sélectionnés nécessite une documentation ou des tests graphiques. De cette manière, nous ajoutons un rappel dans l’élément pour que cela ne soit pas oublié durant le sprint.

Des tests variés sont effectués régulièrement, que ce soit des tests automatiques (end-to-end, unitaire, graphique) ou manuel. Nous avons la chance d’avoir une personne dédiée au testing au sein de l’équipe et qui permet d’améliorer la qualité du produit. Ces différentes actions nous permettent de limiter le nombre de bugs créés. Ceux qui sont tout de même découverts sont pris en compte par l’équipe et triés par priorité.

Un effort important est également accordé à la mise à jour des plateformes techniques. Chaque personne dans l’équipe est consciente de l’importance de rester à jour et nous valorisons ce travail nécessaire, même si cela prend du temps à la place de développer de nouvelles fonctionnalités.

Enfin, nous sommes sensibles à ne pas accroître la dette technique et nous n’hésitons pas à effectuer du refactoring si le besoin se fait sentir. Nous sommes conscients que cela est nécessaire lorsque nous développons par itération.

Pour maintenir la qualité, voici quelques unes de nos pratiques.
  • Création d’une Definition of Done au démarrage de l’équipe et quand il y a eu des changements majeurs au sein de l’équipe.

  • L’équipe suit et se challenge sur le suivi de la Definition of Done. Ce qui nous a amené à créer et enrichir notre Checklist du Sprint Planning (voir point suivant).

  • Pour les éléments de notre Definition of Done que nous oublions constamment, nous avons préféré rajouter un point à notre Checklist du Sprint Planning. De cette manière, à la fin de chaque Sprint Planning, nous nous demandons si nous n’avons rien oublié. Par exemple, avons-nous bien prévu de créer la documentation pour telle nouvelle fonctionnalité ? Nous rajoutons alors un rappel Documentation à la fonctionnalité pour ne pas l’oublier en cours de Sprint.

  • Des tests techniques sont effectués par l’équipe :
    – Tests unitaires
    – Tests d’intégration
    – Tests visuels
    – …

  • Les bugs sont principalement filtrés et triés par le Product Owner.  Il les récolte par différents biais. En fonction de son urgence, le processus est différent :
    – Urgent : Le Product Owner contacte toute l’équipe Scrum
    – Moyennement urgent ou peu clair : Le Product Owner contacte la personne qui a le rôle Supporter sur le sprint (la personne change à chaque sprint)
    – Peu urgent : Le Product Owner met le bug dans le Product Backlog et le priorise comme tout autre élément du Product Backlog.

    Les Developers reçoivent parfois des bugs, à priori plutôt techniques et pas applicatifs. Dans ce cas, ils informent le Product Owner si c’est un bug urgent qui doit être pris directement dans le sprint et discutent de l’impact sur l’atteinte du Sprint Goal. Sinon, le Product Owner pourra prioriser ce bug technique dans le Product Backlog.

  • Mise à jour des plateformes techniques.

  • Régulièrement, les Developers proposent du refactoring, car nous sommes conscients que cela est nécessaire. Ces propositions peuvent arriver de n’importe qui dans l’équipe, ce n’est pas le rôle d’un « Technical Leader ». Le Product Owner comprend aussi la nécessité de ces refactoring.

Environnement d’apprentissage

L’équipe est avide de feedback et de remise en question. Des ateliers, tels que ceux sur le feedback, renforcent cette culture.

La curiosité nous pousse à explorer les dernières technologies et à ne jamais stagner. Les développeurs ont été moteur pour l’adoption des dernières versions des plateformes technologiques.

Pour avoir des apprentissages partagés, voici quelques unes de nos pratiques.
  • Atelier pour se donner du feedback par paire tournante. Chaque feedback doit offrir un point positif et un point d’amélioration

  • Atelier pour se donner du feedback en équipe (un point positif, un point d’amélioration)

  • Rétrospective avec le format « Temperature Reading » qui amène des échanges plus profonds à la fois de remerciement et de tension

  • Le jeu Totem pour offrir des qualités à ses collègues.

  • Les développeurs sont conscients de la nécessité de rester à la pointe de la technologie.
    Par exemple, ils effectuent des lectures de différents blogs et suivent les évolutions techologiques.

Apprentissage partagé

Des techniques variées telles que le Pair Programming, Crowd Programming, Exploration Day et des sessions de partage de connaissances sont fréquentes et tout le monde est encouragé à contribuer. La collaboration est au centre : si un membre de l’équipe demande de l’aide, elle lui est offerte sans hésitation. Nous ressentons la force de l’équipe comme une entité propre, nous travaillons ensemble (souvent sur des mêmes tâches) afin d’atteindre notre but au plus vite et du mieux possible.

Pour avoir des apprentissages partagés, voici quelques unes de nos pratiques
  • Nous avons suivi un atelier pour comprendre le Pair Programming et nous l’avons ensuite mis en place au sein de l’équipe.

  • Nous prévoyons une séance de Crowd Programming par Sprint. Cette séance permet de réunir tous les Developers autour d’une même tâche et de pouvoir échanger sur la vision de chacun.

  • Les Exploration Day sont exploités par les Developers pour monter en compétence sur certaines techniques intéressantes. Il y a également des sessions qui sont faites en équipe.

  • Nous avons systématisé le fait de travailler à plusieurs sur une même tâche. Nous essayons de découper au maximum les tâches pour qu’elles puissent être prises en parallèle. Nous essayons de favoriser le fait de terminer ce qui est déjà commencé.

  • Les demandes d’aide sont systématiquement honorées.

Cet article n’est que le début de l’exploration de ce qu’une équipe Scrum peut accomplir lorsqu’elle est capable de collaborer, d’évoluer et de s’adapter. Avec la bonne attitude et les bons outils, l’excellence est à portée de main.


Aucun commentaire pour l'instant!

Votre adresse email ne sera pas publiée.