Scrum

Des conseils dans la mise en œuvre de Scrum.

Fil des billets - Fil des commentaires

La vie de la story selon Elodie

Après Jimmy, c"est Élodie qui a commenté mon billet la vie de la story. Elle me fait des remarques très intéressantes, j'y réponds en dessous, dans un ordre revu.

Élodie :

J'imagine que c'est une simplification, un workflow idéal... mais il donne impression que toute idée aboutira... je serais plus à l'aise avec quelques "portes de sortie" pour prendre en compte les depriorisations, les risques, les imprévus...

Dans une autre vie, il y a plus de 15 ans, j'ai fait de la modélisation de processus en UML ou BPMN, il y avait plein de branches et de boucles… L'agilité m'a appris à simplifier. La finalité du modèle à 5 états que je propose est sa représentation, puis son utilisation sous forme de bacs (ou colonnes). Le management visuel (kanban) pousse à représenter tout process de façon linéaire, de la gauche vers la droite. C'est donc comme tout modèle, une simplification de la réalité. Mais…

Je verrais bien une sortie vers la poubelle au niveau de l'affinage. Oui, je pense qu'il faut savoir renoncer ^^

Bien sûr. Lors de ma présentation à LeanKanbanFrance 2015, j'avais montré ce slide —avec poubelle :

Options et engagement

C'est le rôle du PO de faire en sorte que des options soient explorées, puis abandonnées si elles apportent peu d'impact. Il est donc normal de jeter à la poubelle des stories à partir du bac à sable, ou qui sont en affinage, voire même, exceptionnellement, qui sont prêtes.

Du coup, plus de boucle ?

Dans une approche flux Kanban, la boucle est embêtante, elle peut conduire à violer une limite. On évite de revenir en arrière, de remonter le flux.

Imaginons une story "done", mais qui n'est pas acceptée à la démo (quelle qu'en soit la raison). Quel serait alors son état ?

Le guide Scrum est très clair au sujet de la revue : • L’Équipe de Développement fait la démonstration du travail qui est « Fini ». Il ne s'agit pas d'une revue formelle où une autorité accepte ou pas. Le cas que tu imagines n'arrive pas.

Personne d'extérieur à l'équipe n'a le droit de considérer ce que l'équipe considère fini comme pas fini. Seule l'équipe peut reconnaitre s'être trompée, c'est pourquoi dans iceScrum il y a bien longtemps, nous avions prévu de pouvoir repasser une story finie à en cours tant que le sprint n'est pas clos. C'est une boucle alors cela doit rester exceptionnel.

Ou alors la notion de "fini" inclus l'acceptation par le PO ?

Oui. À mettre de façon explicite dans la définition de fini si ce n'est pas implicite dans l'équipe.

Et si on n'arrive pas à la finir ? Je verrais bien aussi une flèche de la réalisation à l'affinage si on ne n'arrive pas atteindre le Done.

C'est pas fini, et en général reporté au prochain sprint. La story reste en cours.

Et si on considère que l'acceptation n'est pas dans la DoD et se joue en demo il faudrait une étape supplémentaire ça ferait donc 1 étape et 1 état en plus...

Cela ne peut pas arriver car :

  1. on ne montre que ce qui est fini à la démo
  2. fini inclut l'acceptation (qui est là pour confirmer que la story est finie, un des 3C)

Et la revue n'est pas prévue pour ça.

Merci Élodie.

Feedback sur la planification

Pour l'édition 4 de mon livre, j'ai revu complètement le chapitre qui porte sur la planification à moyen terme. J'ai fait un gros effort sur le pourquoi. J'ai commencé le comment par un exemple simple, sans estimation. J'ai introduit des variantes à l'estimation et au planning poker. J'ai essayé d'illustrer les notions présentées.

Je l'ai également déplacé, car cette notion ne fait pas partie du cœur de Scrum. C'est maintenant le chapitre 16, il s'appelle Planifier la release.

Voici sa structure :

Planifier la release

Mots-clés : estimation, prévision, planifier dans l'incertitude, vélocité, capacité, planning poker, T-shirt, noEstimates, estimer par comparaison, points de story, engagement, budget.

À part celui de mes relecteurs —mais cela fait 2 ans, je n'ai pas eu de feedback de mes lecteurs sur ce chapitre. Je suppose que vous êtes maintenant quelques-uns à l'avoir lu, sur les quelques 5000 qui ont fait l'acquisition de l'édition 4.

Je serais heureux de savoir ce que vous en avez pensé et que vous me fassiez part de vos suggestions d'amélioration.

La vie de la story selon Jimmy

Suite à mon billet d'hier, j'ai reçu un commentaire de Jimmy L. que je remercie de son feedback.

Jimmy est tout à fait d'accord avec moi pour ne montrer à la revue qu'une story déjà déclarée finie. Cependant il enchaîne :

…Mais cela m'étonne justement qu'on s'arrête généralement à "Finie" sur ce genre de workflow, et qu'on ne mette pas au moins en bout l'état correspondant à l'avis positif reçu en revue de sprint.

Non. Voilà pourquoi : fini est forcément le dernier état du workflow, sinon c'est pas fini. Plus que fini, ça n'a pas de sens. C'est une autre histoire.

Avec plus de détails :

Jimmy ne parle que d'un avis positif, je comprends que son idée est que la story continue jusqu'à la revue même si elle est finie avant. Soit, mais la revue fait partie du "process", l'équipe sait qu'elle doit y montrer les stories finies. Pas besoin d'un état sur chaque story pour cela, s'il faut vraiment penser à préparer la démo, je suggère plutôt d'ajouter une story de préparation de démo tant que c'est nécessaire.

L'avis (positif ou négatif) sollicité à la revue auprès des parties prenantes s'appelle le feedback. Il est le bienvenu et peut conduire à ajouter une nouvelle story, mais pas à faire revenir la story en arrière (c'est à dire à considérer qu'elle n'est plus finie).

À méditer pour la prochaine fois : et si dans sa définition de fini pour une story, Jimmy avait "avoir reçu un avis positif lors de la revue" ?

Jimmy poursuit :

J'avais tendance à appeler cet état "Acceptée" mais cela est ambigu lorsque le client fait ensuite une phase de recette approfondie (souvent appelée User/Fonctional Acceptance Testing). Du coup, j'opte pour l'état "Revue" après le "Finie".

Oh ! Une phase de recette par le client. Scrum ? mon scrotum !

Bon, il va me falloir au moins un autre billet pour y répondre. Cela concerne plusieurs aspects souvent mal compris dans Scrum :

La vie de la story a changé en 10 ans

Il y a à peu près 10 ans, j'écrivais un billet "Les états significatifs d'un élément de backlog".

Amusant de le relire aujourd'hui et de constater comment mon approche de Scrum a —légèrement— évolué au fil des ans.

Pas beaucoup sur les états, car je décris toujours la vie d'une story avec cinq états, dont les noms ont un peu changé, mais pas les 2 essentiels : prêt et fini.

Depuis l'édition 3 de mon livre j'en reste à ce workflow pour une story :

La vie de la story

C'est ce qui a donné naissance à la présentation du backlog en bacs, qui sont consolidés dans l'édition 4.

J'en reviens aux changements depuis le billet de 2007 :

  • je dis story, c'est plus court qu'élément de backlog
  • identifié est devenu idée, truc qu'on met dans le bac à sable
  • estimé est remplacé par en affinage (cette notion n'existait pas en 2007). Je considère maintenant l'estimation comme une activité, optionnelle, de l'affinage
  • mon schéma de 2007 montre une boucle si la décision de ne pas accepter la story comme finie est prise. Je mentionnais que cela se faisait lors de la revue de sprint. C'est là le changement le plus notoire : on n'attend pas la démo pour déclarer une story finie. Au contraire, on ne montre à la revue qu'une story déjà déclarée finie.
  • la revue de backlog dont je parlais s'appelle maintenant l'affinage (revue de backlog était pas si mal)
  • dans ce billet de 10 ans, je disais qu'une story passait de prête à en cours lors de la planification du sprint. Maintenant je dirais qu'elle reste prête tant qu'on ne travaille pas dessus. Si on commence la story au 8e jour du sprint, elle change d'état à ce moment-là.

Ces 2 derniers points illustrent l'évolution vers du flux : ce ne sont pas les événements Scrum (planif, revue) qui ont un impact sur l'état de l'ensemble des stories. Chacune a sa vie indépendante. C'est ce qu'on retrouve dans Scrum3.0.

Flux dans le sprint et engagement

Suite à la lecture de mon billet Scrum3.0, Eric se demande, à propos du sprint en flux continu :

Le flux continu remet en cause le principe "pas de changement pendant un sprint". Comment permettre à l'équipe de s'engager dans ce mode de fonctionnement ? Au jour le jour ? Ou est-ce que ce mode de fonctionnement est réservé à des équipes qui ont dépassé le stade de la nécessité de s'engager ?

Je réponds à Eric :

  • l'engagement de l'équipe porte sur l'objectif du sprint
  • le flux continu ne remet pas en question l'engagement sur cet objectif
  • l'objectif est défini lors de la planification de sprint
  • ce mode de fonctionnement en flux continu est compatible avec un engagement librement consenti
  • on ne revoit pas cet objectif tous les jours au moindre changement, évidemment, car il reste du mou par rapport à la capacité de l'équipe. Il est remis en question seulement si, de façon exceptionnelle, un événement imprévu survient (as usual).
  • on peut donc accepter de nouvelles stories pendant le sprint sans remettre en question l'objectif du sprint sur lequel on s'est engagé, tant que cela n'exclut pas une story indispensable pour l'attente de cet objectif


Lire aussi :

Scrum 3.0

Doug Shimp et Dan Rawsthorne sont les auteurs du livre Exploring Scrum. À mon avis, ce livre est le meilleur qui existe sur Scrum en anglais, le plus fouillé et le plus innovant tout en restant dans l'essence de la méthode.

C'est pourquoi je porte une grande attention à l'article Scrum3.0 qu'ils viennent de publier.

On y retrouve l'approfondissement de quelques sujets déjà abordés dans leur livre.

Parmi leurs propositions :

  • le rôle de Product Owner qui est séparé en 2 : le Business Owner et le Capitaine. Cela permet de réintégrer dans Scrum un pattern fréquemment rencontré, celui du PO Proxy
  • le sprint en flux continu. J'ai présenté cette notion lors d'une session à LeanKanbanFrance 2015 et j'en parle dans l'édition 4 de mon livre, chapitre Appliquer Kanban sur Scrum, § 20.3.
  • le backlog structuré en Deliverable Results Backlog (ce que j'appelle le tableau de features) et Work Backlog (le backlog de stories) lui-même organisé avec le sous-ensemble des stories prêtes

Bienvenue au Scrum3.0 !

Les activités de la rétrospective

Mon premier article sur les activités de la rétrospective, en 2007, avait eu gros succès. Quand je relis ce billet aujourd'hui, je me dis que j'en garde l'essentiel, 10 ans après, quand j'anime des rétrospectives (ce que je fais assez souvent).

Ma présentation des activités de la rétro a un peu évolué, voilà ce qu'elle donne maintenant :

activités de la rétro

Mais surtout ce que j'ai changé, c'est le résultat de la rétro. Plutôt que d'essayer à tout prix d'obtenir un plan d'actions, ce qui est assez vain, je pousse les participants à définir un objectif.

En gros à se mettre d'accord sur l'impact qu'ils visent à la fin du sprint suivant. Et je leur laisse le sprint pour définir le comment. Mais à condition qu'ils affichent cet objectif d'amélioration sur leur beau tableau, bien visible, et qu'ils en parlent tous les jours à la mêlée.

La rétrospective, c'est le chapitre 12 de mon livre Scrum. 12 pages illustrées et une technique de rétro originale, la rétro-glandouille.

Les activités de l'affinage du backlog

L'affinage du backlog (en anglais Backlog Refinement) se pratique avant le premier sprint, puis pendant chaque sprint.

L’objectif de l'affinage est d'augmenter les chances de succès des futurs sprints, en entretenant le backlog.

Voici les activités qu'on y mène, en équipe :

Les 6 activités de l'affinage

Le moyen mnémotechnique pour retrouver ces activités : ADAPTER.

L'affinage se déroule entre le Product Owner et le reste de l'équipe, à un moment laissé à l'appréciation du collectif, soit sur un rythme régulier (ce qui est plus facile), soit à la demande.

Voici un enchainement possible des activités d'une séance d'affinage :

  • On regarde le nombre de stories prêtes. S’il n'y en a pas assez, l’approvisionnement est primordial. Pour y parvenir, on s'appuie sur les 6D.
  • On identifie ensuite les stories épiques qu’il faut décomposer.
  • On examine le bac à sable et le tableau de features en vue d’approvisionner en nouvelles stories à affiner.
  • On purge en éliminant des stories devenues inutiles et on trie en plaçant certaines dans le bac à glace.
  • On fait une estimation des nouveaux éléments approvisionnés ou décomposés.
  • On réordonne les stories par priorité, ce qui permet d'actualiser le plan de release.

C'est donc au cours de l'affinage qu'on estime, priorise et planifie.

Affiner le backlog, c'est le titre du chapitre 7 de mon livre Scrum.

Les 6 activités de planification du sprint

La planification du sprint (en anglais Sprint Planning) est un événement Scrum qui se déroule à chaque début de sprint.

L’objectif de la planification est de mettre l’équipe en situation de réussir le sprint en se focalisant sur un objectif et s’accordant sur des stories.

Voici les activités qu'on y mène :

6 activités de planification du sprint

Voici un enchainement possible des activités :

L’équipe embrasse le contexte du sprint. Pour chaque story prête, en commençant par la première, l’équipe confirme avec le PO sa confiance pour la finir dans le sprint.

Pour faciliter la réalisation de la story, on prépare la tactique d’essaimage et on procède à l’identification des tâches.

Avec cette connaissance du travail à faire, l’équipe s’engage sur l’objectif du sprint. Le sprint est alors lancé et chacun, aligné sur l'objectif et la tactique collective, part réaliser une tâche.

Lectures en compléments :

Tableau Scrum

La story, élément du backlog, a une vie qui passe par 5 états.

La tâche, travail contribuant à une story, se représente sur 3 états.

Un tableau Scrum avec les 2 niveaux montre à la fois l'avancement des travaux pendant le sprint (la vie des tâches, les stories en cours de réalisation et finies) et le backlog pour les sprints suivants (bac à sable, stories en affinage, stories prêtes). C'est tout simple, pas besoin de plus d'états (et donc, ni de colonnes supplémentaires).

tableau Scrum avec stories et tâches

Cela peut s'appliquer dans tous les usages de Scrum. Pour les features, c'est également recommandé de faire un tableau, mais les états sont spécifiques à chaque contexte.

- page 1 de 8