Archive

Articles taggués ‘Kanban’

French SUG – deuxième soirée mensuelle

Le jeudi 18 Novembre a eu lieu la deuxième soirée du French SUG (Scrum User Group) de l’année. C’est la première pour moi, et j’avoue ne pas avoir été déçu. Je ne parlerai pas des locaux dans lesquels nous avons été reçus pour l’occasion (mais c’est plutôt superbe), mais plutôt des intervenants : Martin Sudmann de la société PriceMinister, Céline Srauder de CLT Services (déjà vue à l’Agile Tour 2010 à Paris) et Ludovic Galabru de la startup Scrumers.

Cette soirée a été l’occasion de partager des retours d’expérience sur la mise en place de l’agilité dans différents types d’entreprises. Mais avant cela une rapide présentation d’un nouvel outil pour promouvoir l’agilité : l’agenda agile (http://www.agenda-agile.org/), qui a pour but de présenter les différents évènements en France et en Europe autour de l’agilité.

Première présentation : Le rythme agile chez Price Minister (Martin Sudmann)

Trois outils ont été mis en place dans cette entreprise : Scrum, Kanban et des lab days. Au démarrage, c’est Scrum qui a été mis en place, avec des sprints de deux semaines pour la maintenance de leur site, avec des pratiques XP (TDD, Pair Programming…). Une définition du « Done » assez poussée : code couvert, code relu, refactoring effectué, démo faite au PO et tests d’intégration écrits. Un point notable : la présence d’un sprint spécifique dit « de livraison » (1 sprint sur 4) juste avant une release, dans le but de corriger les bugs pendant la phase de recette. Les problèmes de cette phase est que le sprint backlog est imprévisible : il s’agit des retours issus de la recette, et ce en plus des tâches à réaliser durant le sprint (et oui ils ne se tournaient pas les pouces en attendant les anos !) ; il est donc difficile pour l’équipe de s’engager sur un contenu. Plusieurs choses ont été tentées pour améliorer cela : baisse de la vélocité, création d’items de livraison, création d’items « fantômes » de correction d’anomalie … sans succès.

Dans un deuxième temps, pour pallier ce problème, il a été décidé de mettre en place une approche Kanban en lieu et place du sprint de livraison. Cette idée est venue à Martin en lisant le livre d’Henrik Kniberg : Kanban et Scrum – tirer le meilleur des deux (http://henrik-kniberg.developpez.com/mattias-skarin/livre/scrum-kanban/).

Pourquoi un tel choix ?

  • plein de taches courtes à livrer rapidement
  • pas d’engagement de périmètre
  • travail en cours limité pour plus de réactivité sur les anomalies
  • conceptions techniques (POC) en parallèle

Ici le kanban permet de suivre deux lignes : une pour les correction d’anomalies liées à la livraison, prioritaire sur la ligne de taches de fond, qui peut avancer lorsque l’équipe de recette ne livre pas de retour. Ce mode de fonctionnement permet de tirer le meilleur de l’équipe, qui de sprint en Kanban se retrouve fatiguée, vidée de son énergie.

C’est pourquoi dans un troisième temps, les « lab days » ont été mis en place. Que sont ces lab days ? Il s’agit de demi-journées où l’équipe choisit le sujet sur lequel elle travaille, et toujours en paire (ils sont 6 dans l’équipe) afin de souder l’équipe.  Ces demi-journées ont lieu à la fin de chaque sprint, pour rappel toutes les deux semaines, le vendredi après-midi (sprint fini le jeudi, sprint planning le vendredi matin). Les sujets tournent autour de TP, de l’auto-formation et des méthodologies. Petite remarque intéressante pour illustrer ces lab days : la présentation que nous fait Martin Sudmann ce soir là a été réalisé en collaboration avec toute son équipe durant un lab day !

Pour finir sa présentation, Martin nous parle d’autres pratiques mises en place chez Price Minister, tels que des groupes de travail transverses (task forces), pour lesquels un membre de chaque équipe de développement participe sur des sujets liés à l’environnement de développement ou à l’interface utilisateur du site, des sujets communs aux 4 équipes (Scrum) de développement du site. Il nous parle aussi de la communication inter-équipes, via des présentations, des workshops, des newsletters, ou encore des posters.

J’avoue avoir été très intéressé par cette démarche agile, pour plusieurs raisons :

  • je ne connaissais pas Kanban
  • je trouve ces lab days fabuleux (et en plus la hiérarchie approuve, car ils publient les résultats de leurs travaux, créant l’émulation dans et entre les équipes)
  • ça m’a rappelé qu’il fallait être agile dans la mise en place de l’agilité, de toujours adapter les pratiques de l’agilité en étant créatif et audacieux, afin de motiver les troupes et de créer un cadre de travail efficace et convivial !

Deuxième présentation : Scrum et XP dans les entreprises ‘Waterfall’ (Céline Stauder)

Ok, j’ai raccourci le titre, le vrai c’est « retour d’expérience sur l’implémentation de Scrum + XP dans plusieurs DSI de culture traditionnelle » … Soyons synthétiques donc : la présentation s’articule autour de cinq problématiques rencontrées chez un (ou plusieurs) client.

1 – La résistance au changement

Souvent les méthodes agiles sont mal comprises, pour remédier à cela, il faut expliquer, évangéliser et former les équipes de travail, ainsi que le management. Le changement de culture peut poser également problème, mais aussi un manque de prédictibilité apparent. Pour ces différents problèmes Céline a insisté sur l’accompagnement fort qu’il faut faire auprès des équipes pour mettre en place l’agilité dans les meilleurs conditions possibles, et ce de manière progressive (pas de changement brutal).

2 – Les parties prenantes au coeur de l’équipe

Souvent les équipes sont éparpillées et la MOA se détache des équipes de développement. Le but est donc d’impliquer la MOA, qui doit s’approprier la solution, la réalisation du produit. Céline nous rappellera plus tard qu’il est de bon ton qu’un membre de l’équipe métier vienne travailler directement au contact de l’équipe Scrum, membre qui devient alors PO délégué (attention il ne peut pas être le seul PO sans quoi il devient souvent trop indulgent avec l’équipe à son contact).

Il faut parfois recadrer les équipes métier, qui au lieu de venir avec une expression de besoin, arrivent avec un problème et une ébauche de solution technique. Il faut bien diviser les étapes : le métier développe une expression de besoin, l’équipe de réalisation conçoit une solution et la développe si elle répond correctement au métier.

3 – Scrum et le management : définition des rôles

Voyons comment ont été définis les rôles chez le client dont Céline nous parle :

- MOA : PO délégué, au sein de l’équipe Scrum

- Chef de projet technique : il voulait être Scrum Master, mais le lien hiérarchique avec l’équipe Scrum l’en a empêché, ce rôle a donc été exclu de la méthodologie (je parle du rôle, pas de la personne), du coup le SM a été joué par tous les membres de l’équipe (rotation à chaque sprint)

- Pour l’équipe, rien à faire elle était déjà constitué. On note juste que la notion d’engagement sur chaque sprint a due être inculquée.

4 – La transparence et le droit à l’erreur

Dans cette entreprise il y avait une forte culture du cloisonnement et de la culpabilité. Dans ce contexte hostile, difficile de faire quelque chose d’agile ! Plutôt que de partir dans la recherche des coupables quand une erreur est commise, Céline tente de développer une dynamique d’équipe qui a pour but de résoudre le problème en question. On accepte le droit à l’erreur, et on profite de celle-ci pour s’améliorer, par l’expérimentation.

5 – Rituels Scrum et développement itératif

L’environnement de l’entreprise n’est pas toujours adéquat à la mise en place de pratiques agiles. Il faut à tout prix pouvoir intégrer en continu et donner accès au métier à un environnement d’intégration stabilisé.

Quant aux rituels agiles, entre le planning, les daily, la revue, la rétro … ça fait beaucoup de réunions ! Afin d’expliquer tout cela il faut jouer la transparence et réaliser des compte-rendus de ces réunions, pour expliquer la démarche et montrer que des artefacts qui facilitent le travail sont issus de ces réunions.

Bilan

Si c’était à refaire, Céline mettrait en place une démarche Scrum et XP de manière très progressive, presque en douceur, en commençant par mettre en place le tableau Scrum, qui permet d’offrir de la visibilité, puis en mettant en place des métriques, sur les retours de bugs par exemple, qui permettrait de mettre en évidence les gains apportés par la mise en place de l’agilité (si c’est le cas bien entendu :) ) et ce afin de négocier le changement. Elle mettrait ensuite en place les daily meetings, car c’est simple et motivant, puis les rétrospéctives, même si cela prend du temps, car elles permettent l’amélioration continue des méthodes de l’équipe Scrum.

Troisième présentation : Scrumers (Ludovic Galabru)

Scrumers, c’est deux choses : une startup et un produit (http://scrumers.com/). Ludovic est donc membre (fondateur ?) de la société qui développe le site web, qui est en fait une application Scrum, au même titre que d’autres que je ne citerais pas pour ne pas faire de l’ombre à cette jolie application qui nous a été présenté à la fin, je vous invite donc à découvrir cette séduisante application (à vous d’y trouver votre compte).

Mais avant cela Ludovic nous a parlé de la mise en place de l’agilité dans une startup. Et oui car pour développer un produit relatif à Scrum, c’est mieux de le faire en Scrum, sinon c’est pas classe.

Le MVP

Ludovic nous présente donc le MVP : Minimum Viable Product (je ne vous ferai pas l’affront de traduire). Il s’agit de faire le minimum qui peut plaire aux clients, et ce afin de cibler un public targué de « early market ». C’est au moment où l’on arrive à ce MVP que l’on peut commencer à itérer et mettre en place Scrum. Mais pas avec un backlog produit, mais avec ce MVP, qui va évoluer et servir de référence pour les sprints.

Avoir du feedback

La revue de sprint, c’est la communauté qui l’a fait ; autant vous dire que l’indulgence n’est pas au rendez-vous, et Ludovic nous a parlé de ses angoisses lors de ses premières itérations (propres à tous les open sourceurs à mon avis).

Il existe des moyens de feedback plus implicites, telle la mise en place de Google Analytics pour surveiller le traffic sur son site et le corréler avec la satisfaction de ses utilisateurs. Pour le contenu des sprints, il met souvent en pratique ce qu’il nomme le A/B testing : il implémente deux solutions répondant à une problématique et laisse la communauté choisir la meilleure.

Quand on a du feedback négatif, il ne faut pas hésiter à « faire un pivot », ça veut dire faire demi tour (au cas où c’était pas clair).

Voilà pour la présentation de ce jeune développeur, je vous invite maintenant à aller voir son produit et pourquoi pas à lui donner du feedback !

Conclusion

Pour ma part, j’ai trouvé cette soirée enrichissante. L’intervention de Martin et sa mise en place de l’agilité m’a particulièrement intéressé, de voir comment on peut mixer Kanban et Scrum, et cette recherche permanente d’améliorer le process, sans s’en tenir à une seule pratique. Bref tout ça pour dire que Scrum c’est bien, mais que ce n’est pas la seule solution pour être agile, il faut avoir l’esprit ouvert et trouver les solutions adaptées à chacun !

J’espère que ce petit compte-rendu vous a motivé à vous rendre au prochain rendez-vous du SUG, sur le thème « Usages et Agilité », qui aura lieu chez Microsoft. RDV en Décembre !

Agile Grenoble : Objet Direct sponsor, exposant et speaker

La conférence AGILE GRENOBLE sera pour la 3ème année consécutive l’événement incontournable de la région Rhône-Alpes, pour tous les professionnels qui souhaitent savoir comment s’y prendre, découvrir, échanger, apprendre, expérimenter, tester, approfondir leurs connaissances, ou simplement discuter autour des méthodes agiles.
Parmi les temps forts de cette journée, dédiée à tout public souhaitant mieux connaître le monde de l’Agile :
une présentation d’Henri Darmet sur le thème « L’agilité : de la promesse à la réalité ! »

Venez rencontrer l’équipe Objet Direct dans l’espace exposants !

En savoir plus : http://www.objetdirect.com/html/actualite/agiletour.html
Inscriptions : http://agile-grenoble.org/

Gestion du temps

Mikael Lundgren publie sur son blog un petit article qui n’a l’air de rien mais qui réussit en quelques lignes à :

  • expliquer comment gérer ces mails selon les principes du Kanban
  • introduire 2 méthodes de gestion de son temps : GTD (Getting Things Done) de David Allen et Pomodoro de Francesco Cirillo

A lire et à essayer sans modération ;-)

En bonus, le retour d’Alexis Monville sur la technique Pomodoro.

Categories: Divers Tags: , ,

Kanban et Scrum – tirer le meilleur des deux

InfoQ nous offre le téléchargement gratuit de la toute récente traduction française du dernier livre de Henrik Kniberg & Mattias Skarin : « Kanban et Scrum – tirer le meilleur des deux » .

La traduction est l’œuvre de Claude Aubry, Frédéric Faure, Antoine Vernois & Fabrice Aimetti tous spécialistes et promoteurs des méthodes agiles.

Profitez-en, c’est un « must-read » !

Categories: Méthodes Agiles Tags: , ,

Le JUG de Lyon est agile !

JUG AgilityAprès avoir rappelé les défauts d’une gestion avec un cycle en V, une courte introduction théorique à l’agilité nous a été dispensée par Agnès Crépet (Laboratoires Boiron), Laurent Caron (Interfaces Solutions) et Cyril Lacôte (Objet Direct.)

La soirée était basée sur le retour d’expérience de près de deux ans de travail avec le mélange des différentes déclinaisons de l’agilité : UP, XP, Kanban et Scrum, en particulier au sein des Laboratoires Boiron.

Je ne vais pas me lancer dans les descriptions détaillées des principes de l’agilité, de ses 12 piliers, de ses avantages,… mais plutôt détailler les ressentis de chacun autour des différents sujets qui nous ont été présentés.

La présentation commence par la description des grandes étapes de la conduite de projet agile.

Toute conduite du changement doit passer par la formation, l’adaptation à la nouvelle vision.

Avec l’exemple détaillé au cours de la soirée, les meilleures pratiques, les plus adaptées, ont été extraites des méthodes précédemment citées.

Un projet se découpe en 4 étapes :

  1. le référencement des requirements,
  2. leur découpage en cas d’utilisation,
  3. leur réalisation,
  4. leur livraison.

L’agilité peut donc être appliquée au forfait.

Les requirements et les uses cases sont alors mappés dans une matrice de traçabilité qui permet de s’assurer que tous les requirements seront couverts.

Ceci ressemble beaucoup à un cycle en V, non ! La différence réside dans les niveaux de détails des requirements, et dans la gestion de leur implémentation. En effet, l’agilité s’exprime à cette étape.

L’étape focus de la soirée, l’étape de réalisation, va être découpée en itérations.

Une itération commence par la constitution du backlog. Il s’agit d’une liste de cas d’utilisation qui seront implémentés au cours de l’itération. Ces cas d’utilisation sont choisis en collaboration avec le client (en particulier avec leur représentant).

Une itération doit être la plus courte possible. Scrum préconise des itérations à durée fixe mais on s’autorise chez Boiron des variations de quelques jours, suivant les nécessités du projet.

Autre écart chez Boiron avec le strict respect de Scrum, le backlog peut évoluer au cours du lancement même de l’itération dans la mesure où juste un macro chiffrage a été réalisé à cette étape. Introduire un use case au backlog consiste à l’analyser, à mesurer les impacts sur l’existant, en faire une macro-conception, et le découper en tâches. Ces tâches peuvent alors être référencées dans l’outil de bug tracking (et de gestion de la planification) et être affectées.

La vélocité réelle de l’équipe (tenant compte des absences) est calculée à chaque itération, et chaque développeur est considéré opérationnel à 80%. Les 20% restant permettent de planifier les stands up quotidien (15min) et surtout le refactoring du code produit.

Chaque développeur est responsabilisé. Il peut intervenir dans le chiffrage, revoir le reste à faire de ses tâches, éventuellement redistribuer ses propres tâches. L’équipe agile est pratiquement en auto gestion.

Une fois le backlog construit, le périmètre de l’itération est fixé et les développements peuvent commencer.

Les développements sont sécurisés grâce à l’approche TDD (Test Driven Development). Elle consiste à écrire les tests avant d’écrire la moindre ligne de code. La mise en place de ces tests peut se faire en collaboration avec le métier; cette étape permet de bien valider que le fonctionnement de l’application est en adéquation avec les requirements client. Ceci évite des livraisons mal ou peu testées et améliorent la relation client.

L’approche TDD aide également le refactoring de sources qui peut être réalisé de manière sécurisée. Le refactoring contribue à l’amélioration des performances de l’application, à la lisibilité du code et surtout à sa maintenance.

Ces tests font partie intégrante du projet, ils sont unitaires, automatisées et un environnement d’exécution leur est dédié. Beaucoup de frameworks sont disponibles pour faciliter la réalisation de ces tests (EasyMock en particulier, qui a été mis en œuvre au cours d’une démonstration, est très intéressant pour bouchonner toutes les dépendances d’une classe.)

L’utilisation de l’outil de construction Maven a également été décrite. Maven récupère les sources du gestionnaire de configuration SVN, télécharge les dépendances, compile, peut déployer sur des environnements différents, et exécute régulièrement les tests unitaires de manière automatisée. Il peut être couplé à des outils d’audit de code (PMD, CheckStyle, FindBugs) et d’audit de couverture de test (Cobertura,…). Il communique également sur le résultat de l’exécution des tests suites.

Avec l’approche TDD, une fois le test en échec, l’implémentation peut commencer. Le test passe alors au vert et la phase de refactoring peut commencer.

L’itération se termine, lorsqu’il ne reste plus de cas d’utilisation à implémenter. L’application est alors recettée par un groupe d’utilisateurs finaux. Des bugs remontent, sont saisis et entrent dans le workflow de l’outil de bug tracking. Leur correction peut être chiffrée et intégrée au planning de la prochaine itération.

L’utilisateur s’approprie au fur et à mesure la nouvelle version de l’application, il peut adapter ses méthodes de travail avec ce nouvel outil qui répond au mieux à ses besoins. En étant intégré à l’étape de réalisation, on ne l’enferme pas dans un tunnel pour ensuite le débarquer sur une application qui correspond mal à ces besoins.L’agilité permet de fournir ni plus ni moins que les besoins exprimés par l’utilisateur. De nouveaux besoins peuvent apparaitre, ils sont alors pondérés (par les utilisateurs) par rapport au reste des uses cases à réaliser. Le changement est assuré en douceur et dans le respect. Une fois la recette validée, l’itération se termine. La prochaine peut être lancée.

La présentation s’est terminé par des interviews filmées des différents intervenants d’un projet informatique: la DSI, les architectes, les représentants métier, les chefs de projet, les développeurs autour de l’agilité.

Chacun est pleinement satisfait de la mise en œuvre de ces méthodes pour la refonte d’une partie des applications Boiron et ne souhaite pas retourner au cycle en V.

Avec l’agilité et quelques outils on améliore grandement la satisfaction client, le travail des différentes équipes informatiques (et ainsi leur motivation), on maitrise mieux le planning et les risques.

Le DSI Boiron conclue le film, sur la réponse à la question « Êtes vous satisfait de l’agilité ? » par « Avez-vous encore mieux à nous présenter ? »

Et vous ? Qu’attendez-vous ?

Agile Tour Paris 2009

L’Agile Tour s’est déroulé sur le campus de l’université Paris X à Nanterre.

Accueillis par Patrice Petit (Agilii) on découvre que d’ores et déjà les formations MIAGE qui sont dispensées à l’UPX incluent les spécificités des SI agiles.

3 salles de conférences pour 3 thématiques étaient proposées : « Recherche et Méthodes », « Managers » ou “Coaching & équipes ». Ces sessions de 45′ ou 1h30 se déroulaient en parallèle. Quelques choix s’avéraient cornéliens…

Mon intérêt s’est porté dans l’ensemble sur le programme « coaching des équipes » plutôt orienté ateliers pratiques que théorie.

Pendant la journée :

  • On apprend a mettre en pratique les fondamentaux d’une organisation agile :
    • manipulation des outils destinés à communiquer sur le déroulement du projet : manipulation de kanbans -ou petites fiches cartonnées- (voir image ci dessous), initialisation de BurnUp et BurnDown charts.Prioriser
    • auto-organisation en cycles itératifs destinés à produire de la valeur client
  • On renforce notre argumentaire pour défendre l’agilité (pouvoir parler des coûts de réalisation d’un tel projet, comprendre les détracteurs des méthodes agiles).
  • La vision du responsable de projet agile dans le management des équipes est explicitée :
    • une équipe sereine est plus productive qu’une équipe qui communique mal
    • il faut préférer la facilitation de la communication pour résoudre les problèmes plutôt que l’imposition de solutions ou d’une organisation qui décide pour les développeurs.
  • On prend conscience des illusions et du déni de faits qui peuvent exister au sein d’une équipe et qui peuvent la déstabiliser (de la perte de vélocité jusqu’à la dislocation d’une équipe pourtant productive) : on cherche à éviter ces échecs.
  • On découvre des outils dont la vocation est de renforcer la connivence entre les membres d’une équipe:
    • aide pour améliorer l’efficience de la communication: Core Protocols.
    • aide dans le partage de la façon de réaliser une implémentation : Dojo (session d’écriture de code en binôme -un qui rédige le code, l’autre qui interagit avec lui pendant l’écriture de ce code- avec rotation du binôme à la fin de time boxes)

En conclusion, ce fut une journée riche et didactique en particulier avec des illustrations pratiques et ludiques. Cet ensemble donne des axes pour construire sa pratique agile.
Elle se destinait à ceux qui sont curieux de découvrir le sujet par du concret et de l’explication pratique,  ou bien à d’autres -déjà acquis à la cause-, qui cherchaient des outils, des éléments pertinents pour nourrir un argumentaire destiné à sensibiliser leur environnement à l’agilité.
Je vous proposerai dans un futur très proche quelques articles détaillant les différentes sessions que j’ai suivies.

Voici le détail de la conférence que vous pouvez retrouver dans le wiki d’ObjetDirect :

Planification Agile par la pratique

Gestion des côuts dans un projet agile

The invisible project manager

Illusions et désillusions

Méthodes agiles : Kanban versus Scrum

Scrum tend à devenir une méthode incontournable pour les adeptes de l’agilité. D’autres méthodes existent cependant, et commencent à faire parler d’elles. Kanban figure en bonne place parmi celles-ci.

Henrik Kniberg, publie sur son blog un comparatif très didactique des 2 méthodes.

Vos avis/retour d’expérience nous intéressent …