Archive

Posts Tagged ‘retrospective’

Les points de visibilité en Scrum : comment choisir la longueur des itérations?

April 22nd, 2010 10 comments
point de visibilite 225x300 Les points de visibilité en Scrum : comment choisir la longueur des itérations?

Les points de visibilité en Scrum : comment choisir la longueur des itérations?

Choisir la longueur des itérations en Scrum est une décision délicate qui a son importance pour le bon fonctionnement de l’équipe et du projet. Il faut trouver le bon compromis entre un rythme soutenable pour l’équipe et la souplesse de pilotage des priorités par le propriétaire de produit.

Si la littérature originale de Scrum1 préconise des itérations d’une durée de un mois, la réalité est souvent différente. Depuis la publication du livre Agile Software Development with Scrum, les choses ont évolué et, dans la pratique, j’ai vu des équipes choisir des longueurs d’itérations allant de deux à six semaines, dans ce dernier cas peut-on encore parler de Scrum me direz-vous avec raison!

À chaque fois le choix est difficile, il demande un compromis entre la fréquence des points de visibilité2 offerte au propriétaire de produit (et aux parties prenantes du projet) et la capacité de l’équipe à livrer des incréments du logiciel en qualité production de façon récurrente. Ce choix peut aussi mettre en jeu bien d’autres facteurs, comme par exemple la capacité du propriétaire de produit ou des membres de l’organisation à suivre et ajuster l’horaire de plusieurs équipes.

Le choix de la longueur des itérations s’effectue souvent lors des rencontres de démarrage du projet, pendant la période de trois à cinq jours qui permet de bâtir l’équipe, de planifier et de lancer la première itération. De mon expérience, ce choix est souvent fait selon le schéma suivant :

  • Le propriétaire de produit propose la date de première livraison.
  • Le propriétaire de produit choisi un nombre de points de visibilité au cours de cette durée en fonction des différentes longueurs d’itérations possibles.
  • L’équipe et le propriétaire de produit négocie la durée la plus adaptée.

Par exemple, pour une livraison dans trois mois nous obtenons le tableau suivant :

Taille du sprint (en semaine) Nombre de points de visibilité
2 5
3 3
4 2
6 1

On se rend compte alors de l’importance de bien choisir la longueur des itérations pour un pilotage optimum du projet du point de vue du propriétaire de produit.

Cependant, la capacité de l’équipe à livrer des incréments du logiciel de qualité production doit être prise en compte. Et bien que livrer souvent puisse être difficile pour  les équipes, elles doivent aussi se rendre compte que c’est un avantage pour elles d’avoir l’occasion de s’ajuster en profitant des rétrospectives3, de négocier des engagements plus clairs et plus circonscrits avec le propriétaire de produit, de permettre l’entrée ou la sortie de personnes dans l’équipe, etc.

Pour ma part, mon choix va à des itérations de 2 semaines. Elles sont parfois difficiles à accepter pour des équipes débutantes en Scrum, mais je pense que c’est une durée intéressante pour ces équipes notamment. Cela leur permet de s’ajuster fréquemment, de comprendre ce qu’elles sont capables de livrer en peu de temps, de comprendre l’importance, par exemple, d’automatiser les tests ou bien le processus de déploiement. Cela permet aussi de créer une dynamique de construction d’équipe intéressante par le biais des rétrospectives qui reviennent vites et qui permettent ainsi de ne pas laisser ‘pourrir’ des problèmes tant que l’équipe n’est pas encore assez mature pour les traiter au fil de l’eau.

Et vous, vos itérations s’étalent-elles sur 1, 2, 3, 4 semaines? Plus encore?

Je suis curieux de connaître vos choix en matière de longueur d’itération ainsi que la logique qui y conduit, alors n’hésitez pas à laisser des commentaires icon smile Les points de visibilité en Scrum : comment choisir la longueur des itérations? .

  1. Agile Software Development with Scrum
  2. Un point de visibilité est la séquence des rencontres suivantes de Scrum : revue d’itération suivie de la planification d’itération. En effet, c’est le moment d’observer l’avancement de l’équipe et de réajuster les priorités en fonction des objectifs du projet.
  3. voir les billets suivants au sujet des rétrospectives :

Construire des règles d’équipe

April 16th, 2010 1 comment

Lors d’une rétrospective, que j’ai animé à la demande d’une équipe1 4 mois après l’avoir aidé à faire ses premiers pas en Scrum, j’ai proposé un atelier sur la gestion des attentes au sein de l’équipe.

Au cours des 4 mois j’ai entendu plusieurs fois des phrases telles que la suivante : « Certaines personnes parlent d’une façon que je trouve parfois déplacée. Je ne sais pas quoi faire avec ça. » Je demandais alors à la personne si elle avait parlé, aux membres de l’équipe, de cette attente concernant la façon de s’exprimer dans le groupe. Bien souvent la réponse était : « non! »

Cet exemple est loin d’être le seul, je le retrouve souvent en tant que coéquipier ou en tant qu’accompagnateur. Très souvent les membres d’un groupe souhaitent un comportement des autres membres sans jamais avoir exprimé l’attente de ce comportement. Habituellement chacun adopte le comportement qu’il pense être celui que le groupe attend ou bien celui que la personne à l’habitude d’avoir. On se rend compte que la responsabilité est partagée, on pourrait renversé la discussion et chacun pourrait demandé aux autres si tel ou tel comportement à un impact ‘négatif’ sur eux.

Le but de l’atelier était donc de permettre à chacun d’exprimer ses attentes. Je visais à les rendre explicites envers les autres membres du groupe et ultimement, j’espérais voir l’équipe se construire un espace d’attentes communes et parler des comportements respectifs dans différentes situations vécues ensemble.

La session de travail s’est très bien déroulée et au final, les attentes communes ont émergé. Elles sont mêmes devenues des règles d’équipes et des objectifs à atteindre en tant qu’équipe.

Satisfait du résultat de cet atelier, j’ai eu l’envie de le partager icon wink Construire des règles déquipe . En voici donc le déroulement tel qu’expérimenté.

L’atelier

Le matériel : des Post-it ou des cartes, des stylos, des murs ou des tables

L’agenda en trois parties tel que je l’ai proposé :

  1. Mes attents (25 min)
  2. Nos attentes (30 min)
  3. Une équipe ! (30 min)

Remarque : Nous avons utilisé 1h30 pour effectuer cet atelier, mais il aurait mérité plus de temps, notamment les parties 2 et 3 parce que les échanges étaient riches et certaines sujets demandent du temps pour être pleinement exprimés.

Mes attentes
26032010572 225x300 Construire des règles déquipe

Résultat final de l'atelier de gestion des attentes - les régles d'équipe

J’avais réservé 25 minutes pour la première partie.

Dans cette phase chacun pose sur papier ses attentes personnelles, une par Post-it ou carte.

En tant qu’animateur lorsque j’ai présenté l’exercice, j’ai essayé de donner quelques exemples de situations, quelques exemples de comportements que moi j’attends, mais qui ne sont pas la façon de faire ou de réagir de tous.

L’exercice s’arrête à la fin de la période de 25 minutes. Si tout le monde semble avoir terminé avant, assurez vous tout de même de laisser quelques minutes pour une dernière idée.

Nos attentes

L’objectif de cette deuxième phase est d’établir les attentes communes à un sous-groupe.

Pour cela, j’ai séparé le groupe en 2. (Remarque : au delà de 5 personnes par équipe il est sans doute judicieux de faire 3 équipes pour maximiser les échanges et la participation de tous.)

Pendant la période, les membres de chaque sous-groupe, après les avoir affichées au mur, présentent leurs attentes aux autres. Ensuite le groupe essaie de créer un espace d’attentes communes. Pour matérialiser cet espace commun, j’ai demandé aux groupes de placer les Post-it en commun au centre d’une zone délimitée par les Post-it de leur attentes personnelles.

Dans ce cas, le groupe n’a pas gardé les attentes personnelles autour des attentes collectives, je suis curieux de voir ce que cela donnerait au final

Comme je l’ai mentionné plus tôt, cette période aurait mérité un peu plus de temps, mais c’est surtout la période suivante qui demande de réserver plus de temps du fait de la taille du groupe.

Une équipe!
26032010573 225x300 Construire des règles déquipe

Résultat final de l'atelier de gestion des attentes - les objectifs d'équipe

L’objectif de cette dernière partie est d’établir les attentes collectives de tout le groupe en rassemblant les attentes communes de chaque sous-groupe.

Pour cela, j’ai réuni tout le groupe et j’ai demandé aux participants de présenter les attentes de son groupe. Ensuite j’ai demandé de refaire le même exercice que précédemment, établir un espace des attentes communes tout en préservant les attentes personnelles en périphérie.

Comme lors de la précédente partie, la mise en commun a été le moment de discussion et de négociations très intéressantes et ouvertes des membres de l’équipe. Comme lors de la précédente partie, l’équipe n’a pas conservé les Post-it d’attentes personnelles autour de la zone commune.

Une fois la zone collective établie, j’ai demandé à l’équipe de regrouper ces attentes dans les 2 groupes suivants : les « règles d’équipe », les « objectifs d’équipe »

Du fait du nombre de personne et de la teneur des discussions, il faudrait prévoir plus de temps pour cette partie. Je pense que 45 minutes est un minimum.

Le résultat final est illustré par les deux photos ci-contre.

Pour conclure

L’équipe a beaucoup apprécié cet atelier. Malheureusement nous avons manqué de temps et certains ont du quitté avant la fin. Je réserverai  2h pour la prochaine fois et voici l’agenda que je compte utiliser :

  1. Mes attents (25 min)
  2. Nos attentes (35 min)
  3. Une équipe ! (45 min)

Je suis cependant très content d’avoir expérimenté cet atelier avec l’équipe et surtout je suis très content de la participation de l’équipe et de son engagement pendant tout l’exercice.

Je serai curieux de l’impact de garder visibles, autour des règles et des objectifs communs, les attentes personnelles de chacun.

J’envisage maintenant d’utiliser cet atelier lors de la ‘construction’ d’une équipe lors du warm-up d’un projet.

Si vous avez déjà mis en œuvre un tel atelier ou que vous essayé celui-ci, n’hésitez pas à partager vos retours d’expérience, je suis avide d’idées nouvelles icon wink Construire des règles déquipe

  1. Il est intéressant pour une équipe que sa rétrospective soit animée, à l’occasion, par une autre personne que le ScrumMaster. Cela peut être un membre de l’équipe, le ScrumMaster d’une autre équipe ou bien une personne extérieure, un accompagnateur agile, ce qui était mon cas. Au delà de changer la dynamique, cela permet au ScrumMaster de participer pleinement à la rétrospective.

Ne plus l’accepter!

March 25th, 2010 Comments off

« Ne plus l’accepter! »

Cette phrase je l’entends souvent lors des retrospectives de la part d’équipes confrontées à des problèmes tels que les suivants :

  • Livrer une user story ou un élément de code à une autre équipe en court d’itération.
  • Prendre une user story dans l’itération qui a une dépendance à une autre équipe.
  • S’engager sur une alors que le design n’est pas fini.

J’ai eu moi aussi ce réflexe à de nombreuses reprises dans des situations mettaient en danger notre itération et qui impactaient directement notre réussite. Cependant, sur la durée d’un projet, cette position n’est pas tenable, c’est une solution simpliste qui conduit à termes aux conséquence suivantes :

  • Sclérose de l’équipe et du projet.
  • Extinction de toute forme de collaboration.
  • Problèmes de fond persistants

« Ne plus l’accepter! » est une phrase qui, comme « il faut que », doit provoquer un choc à vos oreille! Que vous soyez équipier, ScrumMaster, coach ou voisin de l’équipe qui décide de prendre cette posture en réponse à un problème, s’il vous plaît réagissez!

pourqoi accepter 300x199 Ne plus laccepter!

Ne plus l'accepter! Réagissez!

Effectivement, pourquoi accepter?

Parce que refuser, c’est refuser de voir la vérité en face. C’est nier que le problème à l’origine de vos difficultés va persister, votre équipe va se protéger de plus en plus, se retrancher derrière cette « décision » et mettre progressivement fin à toute forme de collaboration.

Alors que faire?

Peut-être tout simplement accepter le changement! D’ailleurs, n’est-ce pas pour accueillir le changement dans vos projets que vous avez adopté une approche agile pour gérer vos développements logiciels?

Accepter les contraintes de votre environnement! Chercher pourquoi cette contrainte vous fais si mal. Voici quelques pistes que vous pouvez explorer aux travers des questions suivantes :

  • Le processus que j’utilise correspond-il à ma réalité?
  • Mes outils supportent-ils mes besoins?
  • Mon architecture logicielle est-elle en harmonie avec mes capacités d’organisation et les compétences de mon équipe?
  • L’organisation de mon équipes est-elle suffisamment flexible pour répondre aux besoins?
  • Mes équipes collaborent-elles suffisamment? Sont-elles capables de se remettre en question?

Le changement, les contraintes, font partis de la vie et nous devons faire avec, mais cela ne devrait pas nous empêcher de  chercher à découvrir la source du problème. Cette activité, dans la majorité de cas, ne prend pas bien longtemps. Prenez ensuite une action, celle avec un porteur et une occasion identifiée dans le temps icon wink Ne plus laccepter! . Cette seconde activité, elle prend parfois plus de temps car elle nécessite souvent de changer des comportements ou d’acquérir de nouvelles compétences. Alors soyez patients et persévérants.

Vous venez de vous engager sur l’autoroute de l’amélioration continue!

Action = porteur + date

March 18th, 2010 2 comments

Pour qu’une action se réalise, il faut un porteur et une occasion identifiée dans le temps.

polo clap board 228x300 Action = porteur + date

Pour qu'une action se réalise, il faut un porteur de l'action et une occasion identifiée dans le temps.

Dans le tableau Kanban, lorsqu’une carte est bloquée, l’équipe à tendance à dire : « Cette carte est bloquée! Elle dépend de X, il faut que je le rappelle [...] mais il n’est pas très disponible. »

Lorsque j’entends ceci, je parie : « dans deux jours, la carte sera toujours bloquée au même endroit! ». D’ailleurs pourqoui changerait-elle de place? Il y a deux jours, la carte était là et j’avais déjà entendu la même excuse phrase, il n’y a donc pas de raison que cela change. Même cause, même effet!

Alors l’équipe me regarde avec de grands yeux et nous entamons un dialogue qui ressemble au suivant :

- moi : « Ok, qui va le faire et quand? ».

- équipe : « Il faut rappeler X, mais il n’est pas très disponible. ».

- moi : « Qui subit l’impact de la carte bloquée? ».

- équipe : « C’est nous! ».

- moi : « Qui a intérêt à ce que la carte soit débloquée? ».

- équipe : « C’est nous! ».

- moi : « Ok, qui va appeler et quand? ».

Certaine fois, je n’ai pas fini de poser la question qu’il y a un volontaire pour prendre la responsabilité de régler le problème dès la fin du daily. D’autre fois la réponse est : « Je n’ai pas le temps maintenant, je regarde mon horaire dès la fin de la rencontre et j’y place cette tâche ».

[Quelques semaines plus tard...]

L’équipe adresse chaque jour les points bloquants avec une action portée par une personne et identifiée dans le temps. Et les cartes bloquées se libèrent icon wink Action = porteur + date

Êtes-vous toujours attentifs aux : « Il faut que? »

Mettre de la pression sur le système pour faire apparaître le gaspillage

March 11th, 2010 Comments off
goulot d etranglement1 300x299 Mettre de la pression sur le système pour faire apparaître le gaspillage

Mettre de la pression sur le système pour faire apparaître le gaspillage

Afin de faire apparaître les goulots d’étranglement dans le processus de réalisation d’une équipe fonctionnant en Kanban, j’ai proposé de réduire les limites du WIP1

Lors de la mise en place, l’équipe a fixé des limites confortables pour le WIP. Après deux semaines d’utilisation du tableau, l’équipe n’a pas identifié de goulot d’étranglement.
Lorsque j’ai fait ce constat, j’ai proposé au coordonnateur, lorsqu’il a remodelé le tableau à la réception du nouveau tableau, de réduire la capacité de certaines colonnes en plus des modifications prévues lors de la rétrospective.

Cela va bientôt faire trois mois que le tableau Kanban est en place et deux mois que les limites ont été baissées, et nous avons observé des difficultés telles que les suivantes :

  1. Des cartes sont bloquées depuis plusieurs jours et il ne reste qu’un espace disponible dans la colonne pour passer des nouvelles demandes.
  2. Il y a deux cartes dans une case.
  3. Une case ‘blocage spécial’ à été crée pour sortir une carte qui est bloquée et qui n’est plus prioritaire.

En discutant avec l’équipe, il apparaît que la baisse des limites a eu l’effet escompté, puisque avant cette baisse, il y avait suffisamment de place libre pour que de nouvelles cartes puissent passer même si d’autres étaient bloquées.

Content de ce résultat, je comptais proposer à l’équipe de réduire le nombre global de cartes présentes dans le tableau, car actuellement, les limites établies permettent d’avoir un nombre que « je » juge trop important d’items en cours simultanément.
En effet les limites sont établies par étapes du flux de travail, mais les mêmes personnes travaillent sur plusieurs étapes et cela ne force pas les items à sortir le plus vite possible, certains restant même plusieurs jours dans le backlog.

Mais je me suis ravisé car mes solutions ne seront jamais meilleures que celles de l’équipe.
Alors, au lieu de proposer ma solution de réduction du nombre de cartes dans le tableau, j’ai proposé à l’équipe de travailler sur la notion de gaspillage lors d’une rétrospective.

À la suite de cette rétrospective, après avoir identifié l’attente (une carte est souvent en attente dans le tableau) comme l’un des plus gros poste de gaspillage, l’équipe a commencé à mesurer le temps passé par les cartes dans les différentes phases du processus à l’aide de la méthode proposée dans l’article « Flow. Discover Problems and Waste in Kanban ».
J’espère que ces mesures permettront à l’équipe de trouver « ses » solutions pour éliminer le gaspillage, solutions qui rendront la mienne obsolète.

Quels sont les mécanismes que vous mettez en place pour contraindre le système ? Quels sont les résultats que vous obtenez ?

  1. Work In Progress