Showing posts with label agilité. Show all posts
Showing posts with label agilité. Show all posts

March 23, 2011

Lean software: ne vous trompez pas de cible

Au détour de mes lectures sur divers blogs et des échanges avec mes pairs au sujet du Lean Software Development, je trouve qu'il se répand une idée reçue assez dangereuse: faire du Lean signifie éliminer les gaspillages. Dans les faits cela se traduit souvent par une chasse aveugle et impitoyable au moindre gaspillage. Les résultats vont parfois du désastre à souvent une amélioration molle et peu durable. Pourquoi ?

A tous ceux qui pensent que Lean signifie supprimer les gaspillages, je souhaite suggérer un retour aux fondamentaux, c'est à dire au monde de l'automobile d'où nous vient le Lean. Certes, dans un précédent post je me gaussais des parallèles périlleux entre domaines d'ingénierie, mais je ne suis plus à une contradiction près. Et puis comme le souligne le commentaire de PIF, il faut savoir cross-fertiliser, si je peux me permettre le néologisme.

Mura, muri, muda
Fondamentalement donc, la "pensée lean" consiste à éliminer 3 facteurs d'inéficience: le mura (surcharge), le muri (variabilité), le muda (gaspillage volontaire). Dans une lettre datée du 6 Juillet 2006 (traduite en français), Jim Womack nous éclaire sur la façon d'aborder ces facteurs. NB: Jim Womack fait partie des 3 rédacteurs du livre fondateur du Lean The Machine That Changed the World. Jim nous suggère d'adresser d'abord la variabilité et la surcharge, et ensuite le gaspillage volontaire. Il confesse lui-même avoir initialement abordé ces facteurs à l'envers. Son constat est sans appel, si vous commencez par supprimer les gaspillages, vous allez générer de la variabilité et de la surcharge de manière incontrôlée et par conséquent ré-introduire d'autres gaspillages ailleurs dans votre système par effet de compensation. C'est un cercle vicieux. Le message est donc clair: maîtrisez la variabilité et la surcharge dans votre processus, ensuite diminuez ces facteurs à mesure que vous éliminez les gaspillage. C'est la meilleure façon d'implémenter des améliorations durables.

Qu'est-ce que la variabilité dans l'ingénierie logiciel ? Les livraisons sans cesse décalées, des petites livraisons suivies de très grosses releases suivies de petits patchs, etc.

Qu'est-ce que la surcharge ? Des équipes qui travaillent 12h par jour, les week-end d'astreintes, des serveurs de dev en permanence au taquet, etc.

Agilité, agilité, agilité
Je ne vois qu'un moyen simple d'éliminer ces 2 facteurs variabilité et surcharge: passer à l'agilité. Que vous soyez Scrum, XP, Kanban, ou autre, vous livrerez des petits lots de tailles similaires avec des échéances fixes, cela adresse pour partie le problème de variabilité. La surcharge est adressée par les valeurs de ces différentes méthodes, il faut évidemment une certaine discipline pour éviter le surengagement, mais la diminution de la variabilité permettra de réduire l'effet de "bourre" avant des grosses livraisons.

Un conseil en forme de conclusion: ne faites pas de Lean Software Development sans passer par l'agilité, les résultats risquent d'aller à l'encontre de vos objectifs. Et vous, quel est votre expérience du Lean Software ?

May 23, 2010

Webcast des MS Techdays 2010

Les webcast des derniers MS techdays sont disponibles depuis quelques semaines. On y retrouve notamment la table ronde à laquelle j'ai participé. Il y avait du beau linge autour de cette table, qui ressemblait d'ailleurs plus à une brochette d'experts étant donnée la configuration des tables :
  • Laurent Bossavit, membre du bureau de l'Agile Alliance et Agile France,
  • Véronique Rota, ex-Valtech et auteur d'un livre référence sur le management agile,
  • d'autres anciens Valtech comme Xavier Warzee, l'animateur Microsoft de cette session, et Jean-Laurent Fabre de Morhlon, team leader chez Vidal,
  • des experts de sociétés de conseil, comme Eric Mignot, coach agile chez Pyxis, et Luc Legardeur, fondateur du French Scrum User Group et de Xebia,
  • et donc moi, en tant que coach en transformation agile chez Valtech.
Le webcast de la session s'apparente plus à un podcast car seuls les slides de la session sont visibles, slides qui n'étaient là que pour appuyer les changements de sujets. Il faut donc reconnaître les voix des uns et des autres. Cette session fût enrichissante au niveau des sujets abordés et des questions posées. L'agilité reste un paradigme qui soulève encore beaucoup de scepticisme et de blocages. Malgré tout, on sent bien que la révolution est en marche et que la plupart des organisations participantes se demandaient "comment y aller" et non plus "est-ce qu'il faut y aller".

=> Voir le webcast

February 10, 2010

Suis-je un mauvais coach agile ?

C'est la question que je me suis posé en lisant un n-ième article de blog américain sur le coaching agile avec, en vrac, 4 citations de bouquins faisant "autorité", 3 références à des modèles comportementaux, 9 utilisations de termes japonais, 2 métaphores sur les arts martiaux, et 1 signature prétentieuse. Je me suis senti quelque peu "nanifié" de ne pas connaître la moitié des références exposées.

Car oui, je clame haut et fort mon ignorance:
  • je ne connais pas le modèle de Tuckman
  • j'ai fait du judo quand j'étais jeune et je ne vois aucune similitude avec le développement informatique
  • shu ha ri est un concept vague dont j'essaye de percer le sens lorsque je propose des sujets à des conférences agiles
  • Kano est le nom du restaurant en bas de chez moi
  • je n'ai jamais réussi à lire un livre sur l'agilité jusqu'au bout; le seul que j'ai terminé concerne le Lean (The Machine That Changed theWorld) et ne parle pas du tout d'informatique
Une telle étendue d'ignorance et de mauvaise volonté devrait me conduire droit à l'échec sur mes missions de coaching agile.

Et pourtant ...
... mes différentes missions de coaching agiles se passent bien et atteignent leur objectif (jusqu'à preuve du contraire). Je vous propose donc mon top 5 de ce que je mets en oeuvre dans mon coaching d'équipe agile (garantie sans termes japonais):
  1. pas trop de changement d'un seul coup: ce qui compte c'est l'application des 4 principes agiles, le reste c'est de l'enrobage à distiller au compte-goutte et dont une grande partie relève de l'initiative de l'équipe. Si certaines techniques ne sont pas bien appliquées dès le départ ce n'est pas grave, il faut se concentrer sur les quelques éléments clés qui caractérise une équipe agile. A mon sens ce sont les itérations en time box, les démos avec du logiciel qui fonctionne pour de vrai, et la communication directe. Il y en a bien sûr beaucoup d'autres, mais cela vient progressivement,
  2. du pilotage opérationnel: il faut que l'équipe, et plus largement mon client sache où il va et quels sont les mécanismes de gestion d'un projet agile. La période de coaching ne doit pas générer d'effet tunnel. Par exemple, quitte à me brouiller avec des agilistes chevronnés, je fais en sorte que les itérations atteignent leurs objectifs, et surtout la première itération. L'échec est un luxe que se permettront les équipes rompues à l'agilité. Egalement, il est utile d'organiser des comités de pilotage du projet, celui sur lequel intervient l'équipe coachée, à chaque fin d'itération et avec des participants qui vont au delà du PO (typiquement la hierarchie). C'est là qu'on présentera les indicateurs, les projections de budget à terminaison, la variation du périmètre, bref les mécanismes de pilotage. C'est en quelque sorte la démo de la mission de coaching agile.
  3. de l'écoute, de l'écoute, de l'écoute, et encore de l'écoute: il me semble très important de prêter une oreille attentive à tout le monde c'est-à-dire bien sûr l'équipe, le Scrum Master, et le Product Owner, mais aussi son chef, les collègues, les utilisateurs, le commanditaire de la mission de coaching, son chef, les instances transverses, bref tous! Je ne jette aucune information ni n'écarte d'un revers de la main les réactions inappropriées. Tout commentaire est bon à prendre, toute réaction a son fondement et cache parfois des informations capitales pour la réussite de la transition vers l'agilité
  4. de la communication: expliquer en permanence les principes de l'agilité à toutes les parties prenantes (direction, organisations transverses, équipes métier, contributeurs, prestataires, etc). On s'aperçoit vite que l'équipe coachée est entourée d'un nombre insoupçonné de personnes qui ont un rôle à jouer ou qui influencent d'une façon ou d'une autre le travail de l'équipe
  5. de l'empathie: les membres de l'équipe coachée vont traverser un changement parfois très profond de leurs habitudes de travail. Cela apporte son lot d'incertitude, d'angoisse, voire de souffrance dans certains cas. Je ne suis pas là pour torturer mes clients mais pour leur faciliter la tâche, j'essaye de ne jamais l'oublier.
Bon, tout ça pour dire quoi ?
Pour dire que je suis prêt à entendre qu'il faut sans cesse se cultiver pour améliorer ses pratiques, mais il faut pouvoir ... mettre sa culture en pratique!! Je trouve qu'il y a quand même un bonne partie de toute l'agitation autour du coaching agile qui tient de la démonstration mathématique voire parfois de la masturbation intellectuelle, et qui ne sert pas à grand chose concrètement.

Sayonara !
NB: ce message ne s'adresse pas aux bloggeurs pragmatiques qui adressent également tous ces concepts dans leur messages. D'ailleurs, j'envoie mes remerciements à JC qui reste ma première source d'information pour comprendre le baragouinage de certains :)