lundi 11 mars 2013

Scrumban


Certains clients grand compte disposent d'équipes de support transverses. 


C'est le cas de mon client, chez qui, plusieurs de ces équipes ont essayé de mettre en place Scrum ou Kanban en attendant une révolution complète et utopique pour passer à une organisation "Full Agile". Dans cet effort ils ont été confrontés à plusieurs problèmes. 
Voici deux des écueils les plus répandus :
Ces équipes souhaitent trouver une méthode agile leur permettant de suivre leurs activités et de gérer au mieux leurs priorités - souvent changeantes - et de favoriser l'auto-organisation chère aux agilistes que nous sommes.
  • une équipe Scrum qui souhaite travailler en flux, 
  • supprimer les longues réunions de planification de sprint, 
  • augmenter la taille d’un équipe Scrum (ex : +12 personnes) 
  • gérer des activités qui ne répondent pas à un seul processus défini au sein d'équipes transverse,
  •  …
Comment ça marche :
  • une réunion de lancement pour un Sprint dans lequel chaque item compte pour 1
  • une injection d’éléments à la demande dans la colonne « A faire ». Le backlog sur le tableau devient donc une entée permettant de prioriser dans la colonne « Prêt » les éléments à prendre en priorité (cf pt 1)
  • ¼ d’heure tous debout devant le tableau.
  • Le Scrum Master/ Manager donne les changements de priorité du jour et les nouveaux éléments sont ajoutés au tableau
  • Chacun explique les problèmes rencontrés, fait le point sur son avancement au regard des items, et expose ce qu’il fera dans la journée.
"Scrum c'est super bien, mais entre la réunion de planification du Sprint et les changement incessants de priorités dû à des demandes urgentes de support de la part des projets, on ne peut pas garantir plus de 20% du respect de l'engagement initial...."
ou
"Je voudrais bien que l'on se mette à Kanban pour favoriser l'interaction des équipiers, et gérer nos priorités au jour le jour/à la demande, mais entre les différents domaines d'expertise sur lesquels nous sommes sollicités, il est impossible de définir un processus commun à toute l'équipe, quelque soit la demande."


ScrumBan est un compromis entre Scrum et Kanban. Voici entre autres quelques raisons qui peuvent motiver la mise en œuvre de Scrumban plutot que Scrum, Kanban ou encore XP : 
Je vous propose ci-dessous une vulgarisation des principes de Scrumban pour une mise en oeuvre dans ce type de contexte.


1/ Tableau des tâches :
On se base sur un tableau des tâches Scrum avec les colonnes A faire ->  En cours -> Terminé.
En fait on ajoute une colonne supplémentaire « Prêt » qui permet de prioriser les demandes entre la backlog (A faire) et le travail en cours.
On obtient le tableau suivant : A faire -> Prêt -> En cours -> Terminé

2/  Travailler en flux avec des limites :
Si on ne met pas de limite, on n’obtient pas un système Kanban, et on risque de commencer plein d’activités sans en terminer aucune. On ne travaillera donc pas en flux.
Une bonne limite de départ pour le travail en cours est : nb personnes dans l’équipe * 2.
Cette limite permet de gérer les blocages : je suis bloqué, donc je passe à la tâche suivante en attendant de débloquer la précédente.

3/ Cadence d’injection des éléments
            Dans un système Scrum, on alimente une Backlog avec une liste de choses à faire. Cette Backlog est discutée avec le Product Owner puis estimée en complexité (la « taille » de la Story). La vélocité de l’équipe est un indicateur qui permet de limiter pour un Sprint (« TimeBoxing ») la quantité de travail à réaliser.
            Dans un Système Kanban, la taille n’importe pas. Ce qui compte c’est le nombre d’éléments en cours que l'on limite de manière explicite par un nombre d'éléments (tâches/story) sur chaque colonne du système.
            Avec un Système ScrumBan, une équipe peut choisir le meilleur des deux par rapport à sa problématique :
une réunion de lancement pour un Sprint dans lequel chaque item compte pour 1
ou
une injection d’éléments à la demande dans la colonne « A faire ». Le backlog sur le tableau devient donc une entée permettant de prioriser dans la colonne « Prêt » les éléments à prendre en priorité (cf pt 1)

4/ Cadence de livraison
            Si l’équipe produit une application, le rythme de livraison devra être déterminé en fonction des besoins et des capacités des équipes de déploiement etc…. Si l’on veut, on peut se caler sur la notion de Sprint (itération de durée fixe) pour obliger l’équipe à préparer une version « propre ».
Dans le contexte des équipes de support transverse, il n'y a pas besoin de livrer un produit fini à rythme déterminé, puisque l'on a plutôt une livraison au fil de l'eau à d'autres équipes.

5/ Rétrospectives
            Un point absolument nécessaire et primordial si l’on veut tirer un réel bénéfice de toutes ces méthodes, c’est de faire une rétrospective au minimum une fois par mois avec l’ensemble des équipiers. 
Il est important de rythmer avec une période fixe ces points d’amélioration continue. A l’image du cœur qui rythme nos vies, c’est ce rendez-vous qui permet de s’adapter au contexte de l’organisation et lever les obstacles qui encombrent la route.

  • Chacun s’exprime sur ce qui a bien fonctionné, quels problèmes on a rencontré, comment on les a résolus et quels sont les problèmes que nous avons encore.
  • Choisir collectivement quelle évolution du système sera mise en oeuvre pour la période suivante
  • Choisir les problèmes que le Manager/Scrum Master et l’équipe se chargeront de résoudre pendant la période suivante.
Lors de ces réunions on peut prévoir d’ajouter de nouvelles colonnes au tableau afin coller un peu plus aux spécialités des collaborateurs et au processus de travail.

6/ Animation du tableau

  •             Injection des éléments : vu au point 3
  •             Mêlées quotidiennes façon Scrum 
Soit :
                       
  • ¼ d’heure tous debout devant le tableau.
  • Le Scrum Master/ Manager donne les changements de priorité du jour et les nouveaux éléments sont ajoutés au tableau
  • Chacun explique les problèmes rencontrés, fait le point sur son avancement au regard des items, et expose ce qu’il fera dans la journée.

Bien évidement, à appliquer avec les 4 valeurs, 12 principes du manifeste agile et avec toutes les bonnes pratiques eprouvouées...

Ci-dessous un lien vers un très bon article de Corey Ladas écrit en 2008 qui décrit ScrumBan, traduit par  Fabrice Aimetti : http://www.fabrice-aimetti.fr/dotclear/index.php?post/2011/07/01/Scrumban

mardi 22 janvier 2013

Une mise en oeuvre de Kanban pour l'IT - itération 2

La première version de notre tableau est terminée. Depuis deux semaines, nous avons commencé la mise en oeuvre :


  • Initialisation de la backlog des Features
  • Harmonisation des backlogs produit 
  • Mêlées quotidiennes façon "Scrum"
  • Refactoring du tableau Kanban des activités
  • Tableau des problèmes et actions pour le facilitateur
  • Initialisation des burnups d'activités par projet, et consolidation des résultats



Ce que nous ne faisons pas encore :

  • Tracer les dates d'entrée / sortie dans notre système
  • Suivre les indicateurs induits par les mesures de temps de passage
  • Limiter le WIP (travail en cours par activité)


Voici nos tableaux :

Tableau des problèmes / actions du facilitateur

Tableau des Features pour l'établissement de la Roadmap produit



tableaux de suivi de la production des US

BurnUp d'activité des tableaux Kanban et BurnUp de produit des équipes Scrum 








vendredi 4 janvier 2013

Présentation Kanban pour l'IT en 5 minutes

Cette présentation a été présentée lors des Scrum Café réalisé chez un des clients pour lesquels j'interviens. Depuis je l'ai un peu améliorée en vue du Scrum Wine du 16 Janvier, ou j'aurais l'honneur de la présenter en 5 min chrono.

 

La version en ligne sur SlideShare a été un peu modifiée afin que l'absence d'effets d'animation en ligne ne détériore pas la qualité de l'exemple.

jeudi 20 décembre 2012

Une mise en oeuvre de Kanban pour l'IT - itération 1


Après un travail de quelques semaines (en délais, pas en charge), nous avons identifié le fonctionnement d'une équipe d'une dizaine de Product Owner alimentant plusieurs équipes Scrum (25 personnes) pour la réalisation de l'espace Internet de l'entreprise.

Ce travail a permis de définir les différentes phases du processus actuel permettant de créer la Backlog Produit utilisée par les équipes Scrum, et d'identifier les points d'amélioration qui pourraient amener plus d'agilité.

Un des objectifs est de forcer les Product Owners à ne pas travailler un cahier des charges en stock avant de le donner à fabriquer, mais plutôt de partir d'une "Vision Produit" avec la liste des fonctionnalités.

Cette liste est ordonnée en prenant en compte le ROI (la valeur métier divisée par la complexité de réalisation).

Les fonctionnalités seront ensuite détaillées par un travail sur les exigences, puis détaillées en User Stories.


A l'issue de cette première phase, nous avons conçu deux tableaux Kanban qui se suivent :




Le premier tableau (en jaune) correspond à des "features" Scrum (MMF - Minimal Marketable Features - en Kanban).


Le second tableau  (en bleu) correspond au redécoupage des "features" Scrum en "User Story".
 

En début d'année nous commencerons la mise en oeuvre de la méthode sur deux projets pilotes avant de généraliser la démarche à l'ensemble des projets.

Les tableaux comprennent la définition de Terminé pour chaque étape du processus ainsi qu'une limite du travail en cours (WIP - Work In Progress) dans chaque phase du processus.

Il nous reste encore à définir les cadences d'injection des éléments, à mettre en place les mêlées quotidiennes, à choisir une fréquence de réunion pour faire le point sur le fonctionnement de l'équipe et d'améliorer le processus.

La suite dans de prochains posts....

vendredi 30 novembre 2012

Scrum Café 12 : Lego4Scrum


Il y a quelques jours, nous avons joué le fameux atelier de simulation Lego4Scrum décrite sur le site http://www.lego4scrum.com/ et que j'avais joué à un rendez-vous du SUG ( le Scrum Wine Bordelais).


Ce fut une très bonne session, aussi stressante que prévue pour tous les participants.



Auto-organisation


Le Product Owner vient de présenter la liste des choses qui doivent constituer sa ville et 3 équipes de 5 personnes s’auto-organisent afin fabriquer cette ville pour le client.



L’auto-organisation se met en place avec 3 Scrum Masters.

Estimation 

Finalement les fonctionnalités de la ville sont estimées selon une technique d’estimation relative en complexité : Faible, Moyen, Complexe


Valeur métier

Les équipes ont demandé au Product Owner de classer les fonctionnalités par importance en plaçant un « 1 bleu » sur celles que je voulais avoir en premier, puis un 2 sur les autres, et enfin un trois sur celles que je ne voulais pas trop rapidement.

La complexité des fonctionnalités a été reportée à partir de la suite suivante : 
  • Faible= 2, 
  • Moyen = 5, 
  • Complexe =8


Des prototypes ont ensuite été présentés aux équipiers afin de mieux visualiser ce qu’il fallait faire.



Certains ont pensé à demander au Product Owner ce qu’il en pensait : il a tout refusé, mais l’information n’a ni été partagée avec le reste de l’équipe, ni suffisamment comprise par les équipiers.


Les itérations

La première des trois itérations a commencé et les assemblages de briques s’enchainent :
Conception du plan de la ville, premiers bâtiments produits







Rétrospective Sprint 1

« Ou est ma ville ! » crie le Product Owner dans la salle à la recherche de sa ville.
Au bout d’un moment, une timide construction vient se poser sur le terrain nu, quelques fondations décorent le bord de la table.


Un plan de la ville a pu être proposé au Product Owner qui a accepté le plan sous réserve que certaines modifications soient prises en compte


Itération 2

Le terrain est préparé et les premières fonctionnalités voient le jour :
  • Le jardin public, 
  • Les routes et intersections, 








La fin de l’itération approche : 

Les équipiers préparent le bilan du Sprint : 
  • Les fonctionnalités produites sont placées sur le terrain 
  • On déplace les post-its initialement prévus dans le Sprint de la colonne « En cours » à la colonne « Fait » 







Rétrospective Sprint 2

Cette fois, le Product Owner n’a pas besoin de demander ou se trouve sa ville :


Les fonctionnalités sont parcourues unes à une et la plus-part sont acceptées par le Product Owner qui réclame tout de même que l’herbe pousse plus vite dans le jardin public….

Sprint 3 : le dernier





La validation des fonctionnalités du Produit est faite au fur et à mesure que les fonctionnalités sont produites (ci –dessus, image en bas à droite avec Benoist et Guillaume qui présentent leur avancement de l’hôpital) : 
  • « Plus grand l’hopital » 
  • « Plus grand le lieu de culte interconfessionnel » 
  • « Plus haut les étages du bâtiment de bureaux »
Les produits sont corrigés et améliorés au fur et à mesure de leur fabrication










Rétrospective finale



Toutes les fonctionnalités sont produites en fin de jeu. La ville et belle et un peu de pelouse a poussé dans le jardin public




Débriefing

Les équipes ont désigné des Scrum Masters pour qu’ils gèrent la relation avec le client, mais ça n’a pas empêché tout le monde de lui poser des questions. Un beau bazar !

La période d’auto-organisation de l’équipe avec l’estimation de la complexité et de la valeur métier a été difficile. Tout le monde posait des questions au PO qui ne savait plus à qui répondre. Stressant !

Les sujets ont été planifiés en 3 Sprints mais sans calculer le ROI. Seule la valeur métier a été utilisée : c’est dommage, l’équipe aurait peut-être pu livrer un peu de valeur au premier Sprint avec l’abri de bus par exemple (très simple à réaliser pour une valeur métier moyenne).

Les informations données par le Product Owner ne sont pas partagées avec le reste des équipes (ex : malgré le refus des maquettes proposées, elles ont été utilisé comme modèle pour le premier Sprint.)

Les équipes ont bien géré leur temps : un chrono a été lancé pour surveiller le temps de production. A la deuxième itération, tout le monde s’est occupé d’organiser la ville sur le terrain avant la fin du temps imparti.

Le jeu a été stressant, comme prévu, pour les joueurs mais aussi pour l’animateur qui devait endosser les rôles distincts d’Animateur, Product Owner et parfois « Super » Scrum Master.


C’était prévu, mais le timing était assez serré. L’organisation des équipes nécessite plus de temps que celui accordé.

Le débriefing final a été un peu écourté également.


Atelier Prune the Product Tree


Prune the Product Tree est un des nombreux "Innovation Game" créé par Luke Hohman.



Sur la base d'un arbre dessiné sur une grande feuille de papier kraft, l'équipe a disposé des post-its sur des branches.

Les branches représentent des regroupement de fonctionnalités et les post-its les fonctionnalités.
Selon la position de la feuille dans l'arbre, on voit les fonctionnalités existantes et les celles qui devront être planifiées dans les versions suivantes. Les couleurs indiquent la technologie utilisée, si elle est obsolète ou cible.

Cet atelier se joue normalement avec des utilisateurs afin qu'ils puissent donner un feedback sur la vision qu'ils ont de votre produit.
Nous avons détourné ce jeu pour représenter quelques fonctionnalités de l'espace Internet du client. Ce travail a été réalisé à partir d'un travail réalisé en atelier pour présenter le plan stratégique annuel.

Ce jeu laisse une grande part de créativité aux participants qui peuvent placer des coeurs, des oiseaux, des fruits plus ou moins mûrs, des fruits pourris.

Il est possible de tailler des branches existantes pour supprimer les fonctionnalités qui ne rencontrent pas leurs utilisateurs etc...

mercredi 3 octobre 2012

Un atelier Product Box

Contexte de l'atelier

Dans le cadre de l'animation de l'agilité chez mon client, nous avons créé un groupe de travail "Product Owner" dont l'objectif est de partager des pratiques permettant de mieux travailler avec le métier, à défaut d'avoir des utilisateurs.
Dans ce cadre j'ai proposé de présenter les plus simples/accessibles des Innovation Games de Luke Hohmann : Product Box, Buy a feature, Spider Web, Speed Boat, Prune the Product Tree.
Après la présentation des jeux à l'équipe, un vote a permis de choisir le premier jeu (Product Box) que nous allions jouer afin de dérouler le processus complet de mise en oeuvre d'un Innovation Game.


Objectif 


Créer une boite de produit (Product Box) décrivant l'agilité afin de vendre la démarche au métier.

Etant donné que les participants sont des "Product Owner", nous sommes pas les vrais clients du produit que nous souhaitons vendre. C'est la MOA des projets (basées sur des sites différents).
Au final, ce que les équipes ont fabriqué est donc plus une "Vision Box" qu'une "Product Box".

Préparation de l'atelier

Les participants ont été invités une quinzaine de jours avant le déroulement de l'atelier afin qu'ils puissent réfléchir à l'atelier.
De mon coté j'ai pillé les fournitures chez le client est dans mon agence, je suis allé faire des achats de gomettes colorées, feutres de couleur, tubes de colle, post-its multicolores....
J'ai également préparé des boites blanches pour que chaque participant puisse réaliser sa propre boite de produit et même recommencer si besoin.


L'atelier

Le jour J, tout est prêt, nous avons 1h30 pour préparer les boites et les vendre.
Les participants un peu intimidés par l'exercice ne souhaitent pas faire leur propre boite de produit, mais ils s'organisent en 2 groupes.

Premier temps : organisation des idées
Second temps : travaux pratiques













Après 1h10 d'effort, les deux équipes ont finalisé leur produits :



boite de produit 1

boite de produit 2


Il est temps de vendre son produit aux autre participants:








Après la vente des boites par chacune des deux équipes le groupe a conclu que :

  • L'équipe 1 a bien mieux vendu sa boite de produit (le discours) que l'équipe 2.
  • Les deux Box sont très belles, mais il faudrait les mélanger pour obtenir la boite idéale
  • L'atelier a été apprécié (évaluation ROTI)  :
    • 4 votes à 5
    • 1 vote à 4


Commentaires des participants :

  • 5 ! car cela permet de définir des objectifs communs de façon ludique et c'est applicable en toutes occasions, même en dehors du contexte métier.
  • Bonne : c'est 2 ou 4 ?
  • 5 sans problème.
=> On a tous eu beaucoup de plaisir à jouer ce jeu, et nul doute qu'il nous servira à l'avenir!

La suite ...

Compiler les observations de chacun des participants, et produire les rapports qui nous permettrons de mieux comprendre notre produit, notre manière de l'envisager et de le vendre.