Hyperproductivité avec Scrum

Superbe post sur le blog de Jeff Sutherland (en anglais) avec la description précise de la méthode utilisée par Scott Downey chez MySpace, pour mettre en place Scrum dans ses équipes.

Scott (Agile Coach) propose une méthode en 7 points pour passer à Scrum

  1. Toutes les personnes de l’équipe doivent être formées par Scott à Scrum avant le premier sprint
  2. La durée de chaque sprint est d’une semaine (*)
  3. La définition du done est prédéfinie par Scott (User Story terminée + Code terminé + Pas de défauts connus + Approuvé par le Product Owner + Prêt pour mise en production)
  4. Toutes les estimations sont faites en « story points »
  5. Un « radiator » physique est utilisé et les tâches sont représentées par des Post-It
  6. Toutes les cérémonies (Démo, Rétro, Revue PB, Estimation, Engagement du Sprint) sont regroupées en 1 seule réunion de 4 heures par semaine maximum
  7. Le multi tâche est INTERDIT, le travail doit se faire dans l’ordre des priorités

Aucune dérogation n’est autorisée et l’équipe doit se plier à ces règles (qui sont donc parfois imposées) tant que l’équipe n’a pas prouvée sa maturité en remplissant les 3 critères suivants

  1. L’équipe est Hyper Productive (>240% des objectifs initiaux)
  2. L’équipe a réalisé avec succès 3 sprints consécutifs
  3. L’équipe a identifié une bonne raison business pour changer une des 7 règles précédentes

Je viens de finir la lecture complète … et je suis totalement bluffé !

(*) A un développeur qui dit « mais en 1 semaine, je n’ai le temps de rien faire« , Scott répond simplement « alors une simple règle mathématique me conduit à penser que tu produiras 4 rien en 4 semaines« 

Priorités !

Lors d’une de mes premières expériences professionnelles la Direction Qualité de la société diffusait des posters pour illustrer des bonnes pratiques logicielles. L’un de ces posters représentait un croisement à 4 routes avec une ambulance, un camion de pompier, une estafette de gendarmerie et une voiture de police qui arrivaient en même temps au carrefour, gyrophare et sirène à fond. La légende de ce poster était « Lorsque tout est prioritaire, il n’y a plus de priorité »

Cette entreprise n’était certainement pas Agile, mais voulait diffuser une bonne pratique qui consiste à définir ses priorités à l’avance et pas lorsque la question se pose.

Les méthodes Agile intègre cette pratique, souvent structurellement. Par l’intermédiaire du « Product Backlog », Scrum oblige à prendre des décisions sur ce qu’il faudra réaliser en premier et les visualiser dans un document unique. Ces décisions sont parfois difficiles à prendre mais sont nécessaires pour gagner en productivité ensuite.

J’entends parfois « C’était pourtant évident que c’était très important » pour fustiger une équipe technique qui a manqué un échéance. Mais que veut dire « très important » relativement aux autres tâches qui étaient également importantes … nul ne le sait. Nous étions dans le cas d’un véhicule prioritaire qui arrive au carrefour où 3 autres véhicules prioritaires sont déjà présents et dans ce cas, pensez-vous que la meilleure méthode est de faire descendre chaque chauffeur sur la route pour discuter avec les 3 autres et négocier de passer en premier car son action à lui est « très importante » ?

Pour que l’équipe soit efficace, les priorités du produit doivent se décider en amont de l’équipe de réalisation, pensez-y !

Scrum – Premier echec

Cela devait bien arriver et c’est malheureusement arrivé !

Il y a 4 mois, J’ai coaché un projet en interne (durant 3 sprints de 2 semaines) pour aider les équipes à gagner en maturité sur la méthode Scrum que l’équipe utilisait depuis 3 mois. Je considère que ce coaching a porté ses fruits puisque l’équipe a pris conscience de certains de ses dysfonctionnements et a cherché à y remédier par elle même avec mon support. Le motivation de l’équipe était alors très bonne et la productivité supérieure à ce qu’elle avait été (bien que nous ne disposions pas de métriques fiables – comme une mesure régulière de la vélocité)

Aujourd’hui, force est de constater que ce projet s’éloigne de la méthode Scrum. Ce n’est pas encore visible sur la forme car l’équipe parle encore de Sprint, de « Scrum of Scrum » et fait des rétrospectives, mais sur le fond tout est changé et je vais me permettre de donner ma vision personnelle des raisons qui ont conduit à cela.

  1. Le management n’a pas eu suffisamment confiance dans la réussite de l’équipe auto-pilotée et a (re)commencé à faire du micro management pour se rassurer car lui aussi subit une très forte pression de la part de son management pour délivrer à temps
  2. Le conflit de priorité entre Produit (nouvelles fonctionnalités) et Engineering (Stabilité) n’a pas été résolu. La méthode Scrum oblige à prendre une décision, à la rendre visible dans le backlog et permet de focaliser les énergies sur 1 objectif commun. Plutôt que de prendre des décisions difficiles et lourdes de conséquences, les 2 entités ont préféré masquer le problème en changeant leur façon d’utiliser le Product Backlog et disant « on va faire un peu des 2 ». Le problème est toujours présent … mais comme on le voit moins, certaines personnes pensent qu’il est résolu (qui a dit que les managers croyaient en la Magie ?).
  3. Le micro management s’est traduit par un contrôle journalier de l’équipe sur la réalisation de tâches unitaires suivant un processus par étapes remis à l’ordre du jour (abandon du concept de sprint et surtout de ‘done’ en fin de sprint).
  4. Contrairement à la volonté de l’équipe, les ressources sont affectés à des tâches précises et chacun est responsable de sa partie. Fini l’engagement de l’équipe à délivrer itérativement quelque chose qui marche, voilà le retour de la justification individuelle !
  5. La plus grande partie du reporting actuel consiste à expliquer pourquoi l’avancement du projet n’est pas conforme à la roadmap définie initialement par … quelqu’un … sans implication de l’équipe. La seule question posée actuellement est « pour quand ce sera prêt ? » plutôt que « comment je peux t’aider à résoudre tes problèmes ? ».

Attention, mon propos n’est pas de dire que la méthode utilisée (Waterfall couplée à du micro-management) est mauvaise car je suis convaincu que l’équipe va délivrer les fonctionnalités demandées (j’ai moi-même utilisée cette méthode avec succès dans le passé). Mais comme pour la plupart des projets dans ce mode, ce sera avec du retard et avec un niveau de qualité non optimal (et cela devient déjà visible sur ce projet).

Mais je suis également convaincu qu’une approche Agile avec Scrum aurait permis de délivrer plus vite un produit de meilleure qualité. Car une équipe motivée, travaillant par petits incréments avec des objectifs clairs et partagés, est la plus grande chance de réussite d’un projet. Donc plutôt que de se concentrer sur le ‘pourquoi ca n’a pas marché’ il est plus important de se focaliser sur le ‘que reste-t-il à faire pour finir’.

Comme axe d’amélioration personnel, j’en retire qu’un coaching au niveau de hiérarchie supérieure aurait peut-être permis d’utiliser Scrum suffisamment longtemps pour prouver son efficacité et convaincre cette hiérarchie.

On apprend beaucoup de ses erreurs et puis il n’est pas dit que ce projet ne puisse pas revenir à l’agilité d’ici quelques mois, restons optimistes !

Scrum et Process – Mariage réussi

A toronto j’ai présenté une session avec Karl Scotland (qui a malheureusement quitté la société) sur l’historique de l’intégration de Scrum dans le « process framework » en vigueur chez Yahoo. Ce retour d’expérience décrit plus particulièrement la contribution des équipes Européenne à « l’agilisation » du framework entre 2006 et 2007.

L’article donne quelques informations sur les étapes de cette transformation, les difficultés rencontrées, les méthodes utilisées (mise en place de groupes locaux – le concept DICE) et les challenges toujours actifs.

En conclusion de cette article, nous considérons que le mariage est réussi entre la méthode Scrum et le Process Framework, à partir du moment ou les équipes en charge de la définition du process pratiquent le « inspect and adapt », ont l’ouverture d’esprit suffisante pour accepter les feedbacks et cherchent à faire adhérer (coaching) plutôt qu’à imposer (contrôle).

L’article est malheureusement en anglais, langue officielle actuelle de la communauté Agile, et je n’ai pas prévu de le traduire.

Accès à l’article en pdf : boutin-yahooeuropeagileexperiencereport

Scrum – Bilan 2008 par VersionOne

Je vous avais invité lors d’un précédent post à répondre au questionnaire de VersionOne sur la progression de l’utilisation des méthodes Agiles.

2008 VersionOne SurveyPlus de 2300 personnes ont répondu (plus des 2/3 pour la première fois) et la synthèse de ces informations est maintenant disponible (9 pages).

Cette synthèse nous donne beaucoup d’informations utiles sur les raisons du succès ou des (rares) échecs des méthodes Agiles. Prenez le temps de lire ce court document, il est instructif.

L’image jointe est tirée du document et montre les inquiétudes du passage à l’Agile. Le manque de planning qui sort en premier me rappelle une remarque de Ken Schwaber qui disait que « certaines personnes sont rassurés par échouer avec une méthode connue ». Nous savons, études à l’appui, que le « Planning Up-Front » est un leurre car in fine le projet sera en retard, mais cela rassure bon nombre de managers de disposer de ce Plan initial et de mesurer, non pas l’avancement du projet, mais les écarts par rapport à ce plan initial.

Bien entendu les méthodes agiles permettent la planification des releases à l’aide du calcul de la vélocité de l’équipe et l’estimation des items du backlog, mais l’objectif est de donner une indication ou tendance, mais  surement pas une certitude.

La route est encore longue … et sera pleine d’embûches … mais nous arriverons à faire changer les mentalités

Lean or Scrum

Article très intéressant de Jeff sur son blog: « The First Scrum: Was it Scrum or Lean?« , mais comme il est assez long, profitez d’un moment de calme pour le lire.

Jeff nous fait un historique de la création de Scrum afin de nous montrer que Lean et Scrum ont les mêmes origines: la théorie des systèmes adaptatifs complexes. Mais Jeff positionne clairement Lean et Scrum sur 2 plans différents. Scrum intrduit le chaos dans le processus de développement et utilise un système de contrôle empirique pour rapidement inspecter et adapter ce système qui évolue rapidement. En ce sens, Scrum est un moyen d’implémenter Lean au niveau du développement de logiciels. Lean de son coté est un bon outil de communication à destination des managers, et permet à des équipes Scrum de comprendre pourquoi elle ne réussissent pas avec Scrum, en implémentant du Kaizen et/ou des principes de’arrêt de production au moindre défaut (Stop-the-line).

Jeff rappelle également quelques principes de Scrum dont je retiendrais ceux-ci:

  • Le nombre de testeurs et de documentalistes doit être supérieur au nombre de développeur afin d’éviter qu’ils produisent trop de code trop vite
  • Rien n’est plus convaincant pour le management que de voir régulièrement (démo) du code qui marche
  • Il est impossible pour les développeurs de développer du code de qualité sans avoir un environnement d’intégration continue en place