vendredi 11 décembre 2015

Utiliser le release Burn-Up chart pour piloter un projet SCRUM .


Pour moi, la quasi-totalité des besoins de visibilité pour piloter un projet SCRUM peut être couvert au travers de l’un des artefacts de la méthode : le release Burn-Up chart.
Le « burn-up » est l’outil de suivi de l’avancement des réalisations. Il permet de garder une visibilité sur le planning et sur le périmètre de l’ensemble du produit.
Ce graphique se source directement sur le BackLog Produit afin de connaitre la vélocité moyenne de l’équipe ( à comprendre : la capacité de l’équipe à réaliser les US) la quantité d’US déjà réalisées et la quantité d’US restantes.

Petit aparté :
Chaque US est pesée par l’équipe en Story points. Ces points correspondent à l’effort nécessaire à l’équipe pour réaliser cette US. Ce qui est visualisable dans un premier temps sur le burn-UP est donc l’ensemble des Story Points réalisés et restants à réaliser.

Ex de Burn-UP :


Sur ce Burn-UP nous voyons :
-          L’effort total, correspond au nombre de points total du backLog. On peu y a analyser les ajouts de besoins et les annulations d’histoires.
-          L’effort réalisé, correspond au nombre de points des US réalisées et donc aux fonctionnalités prêtes à être déployées.
-          L’effort linéaire réalisé, qui grâce à la vélocité moyenne de l’équipe nous donne une projection de réalisation dans le futur. ( Attention, la vélocité moyenne est affinée avec l’avancée des sprints et la montée en maturité de l’équipe, l’effort linéaire réalisé n’est donc probant qu’après un certain nombre de sprints. )
-          L’effort démarré en réalisation, correspond à ce que l’équipe a pris en charge dans un sprint, le delta avec l’effort réalisé correspond donc aux US démarrées mais non terminées.
-          L’effort prêt à la réalisation est plus rare sur les burn-UP, il permet de connaitre les US prêtes à la réalisation, c’est surtout utile pour gérer l’activité de préparation des histoires du PO qui doit s’assurer que l’équipe ne tombe pas en panne d’histoires à réaliser.

Le burn-UP nous donne donc une visibilité sur l’activité de l’équipe, nous pouvons aussi en tirer d’avantage, si nous poussons la projection linéaire dans le futur, nous pouvons estimé la date nécessaire à l’équipe pour réaliser l’ensemble du backLog :

Le Product Backlog étant priorisé par fonctionnalités métiers et les US réalisées en conséquences, nous pouvons aussi estimer la date de réalisation des principales fonctionnalités en empilant les US correspondantes, nous pouvons même simuler une date de release afin de voir ce qui est exploitable à cette date.



Le BURN-UP se basant sur le Product Backlog, celui-ci doit être complet, maintenu et toutes les histoires doivent être pesées par l’équipe.


lundi 26 octobre 2015

Pré-requis et accompagnement nécessaire à une transformation agile : REX





La transformation agile de projets SI existants est un enjeu majeur pour beaucoup des organisations avec lesquelles nous travaillons au quotidien, je me propose ici de vous faire part d’un retour d’expérience sur les pré-requis mais aussi l’accompagnement nécessaire à une transition d’une organisation « cycle en V » vers une organisation SCRUM. Ce  retour d’expérience est issu de 3 ans passés sur un projet d’environ 150 personnes coté ERDF en pleine réorganisation. Pour illustrer, je me suis appuyé sur quelques principes fondamentaux du manifeste agile


 « Les individus et les interactions plutôt que les processus et les outils ».

Les interactions entre les individus sont au centre de l’organisation agile SCRUM. On cherche notamment à supprimer les guichets que l’on peut trouver dans l’organisation cycle en V (Une équipe MOA qui livre des SFG à une équipe MOE fonctionnelle, qui livre des SFD à une équipe de DEV, qui elle-même livre des développements à une équipe de recette unitaire puis à une équipe de recette intégrée …). Dans une organisation SCRUM, la communication et l’échange entre le PO, la team et le ScrumMaster est mis en avant et la documentation est secondaire. Il faut donc éviter certaines organisations entravant ces échanges, comme par exemple une team délocalisée de son PO. 


 Le commanditaire (à comprendre le responsable du projet/client ayant fait la commande de cette transformation …) doit s’engager et porter la transition, il doit comprendre les changements nécessaires (que nous aborderons un peu plus bas) mais aussi s’assurer que l’ensemble des interlocuteurs sous sa direction en fasse autant. Il doit être porteur de cette transition au sein de son organisation. Il doit accepter les compromis et les changements nécessaires aussi bien qu’il en accepte les avantages. Ce travail doit être mené en amont de la transition par les porteurs de cette réorganisation (voir coach agile plus bas). Si le commanditaire lui-même n’est pas convaincu, la transformation a toutes les chances de ne pas réussir.

 « La collaboration avec les clients plus que la négociation contractuelle »

La situation contractuelle entre les différentes parties doit être claire et doit correspondre aux enjeux de la méthode. Il est difficile de faire adopter une méthodologie Agile à un intégrateur en mode forfait qui est objectivé financièrement sur des jalons à respecter avec une quantité de périmètre fonctionnel bien défini. Accepter et faire accepter de piloter par les délais et de considérer le périmètre comme la principale variable d’ajustement est essentiel. Petit rappel : le BackLog des fonctionnalités désirées est priorisé strictement. A travers la vélocité (capacité à développer) de la Team, on sait prévoir ce qui pourra ou non être déployé à une date précise. Si on veut d’avantage de fonctionnalités, il faut alors d’avantage de sprint pour permettre à la Team de les développer, la date de la release doit être revue en conséquence. Et si la date de release est fixe, alors on accepte de ne déployer uniquement les fonctionnalités validées à cette date.

Une équipe SCRUM est stable, autonome, responsable, volontaire et expérimentée. L’équipe s’engage sur le périmètre embarqué à chaque SPRINT selon sa capacité. Elle doit rendre compte au PO (Product Owner) de chaque US (User Story) non terminée.  Elle est en charge de l’intégration continue des développements,  de la mise en place de l’ingénierie nécessaire, de la gestion des environnements, des bonnes pratiques (Revue de code, ATDD …)

Un exemple de composition d’équipe SCRUM équilibrée est :
-          1/3 de profil junior
-          1/3 de profil sénior
-          1/3 de profil expert
Attention donc aux équipes trop junior.

N’oublions pas : « Une attention continue à l'excellence technique et à une bonne conception renforce l’Agilité. »

La première raison de l’échec de la transformation Agile d’un projet est le manque d’expérience dans l’application du Framework Agile.

La solution ? Se faire accompagner!

Lancer une réorganisation de projet sans se faire accompagner par quelqu'un d’aguerri s’ayant déjà frotté aux difficultés de ce genre de transition et sachant comment y répondre, c’est comme faire une partie de tennis sans raquette, c’est forcément plus compliqué...
C’est là qu’intervient le coach agile, sorte d’expert / médiateur / psychologue / gourou de l’agilité, il est présent pour accompagner les différentes parties, faire accepter et faire respecter les principes agiles.  Le coach agile est un vétéran de l’agilité, souvent externe à l’organisation et missionné pour aider les équipes à assimiler la méthode et rappeler à chacune des parties leurs droits et devoirs. Attention à ne pas se méprendre sur son rôle, ce n’est pas un magicien. Sans base solide (team volontaire, PO motivé, commanditaire engagé …), le meilleur des coachs agiles ne pourra rien faire.

 « L’adaptation au changement plus que le suivi d’un plan »

Transformer l’organisation d’un projet aussi radicalement que le passage de cycle en V en SCRUM (ou toutes autres méthodes Agiles) demande un accompagnement des personnes concernées, certains vont voir leurs rôles changer, d’autres vont comprendre que leur activité au quotidien va totalement disparaitre. 

Prenons l’exemple du middle-management (chef de projet, responsable d’équipe …).Une équipe SCRUM est autonome, responsable et s’autogère. La gestion des priorités du produit est donnée au Product Owner. L’organisation des cérémonies et le support quotidien à la TEAM est la mission du ScrumMaster. Comment donc repositionner un responsable d’équipe dans le cadre d’une organisation SCRUM?

Peut-être est il intéressant de lui donner le rôle de PO, mais attention dès lors à ce qu’il ne s’immisce pas dans la gestion de la Team. Le faire intégrer la TEAM ? Est-ce vraiment bon pour  son autonomie ?  Il n’y a pas de réponse toute faite à ces problématiques,  la solution dépend  des personnes, du contexte, des enjeux…

 « Des logiciels opérationnels plus qu’une documentation exhaustive »

Le cycle en V repose sur la croyance que l’on peut spécifier intégralement un logiciel à l’avance. La somme de documentations nécessaires peut vite se révéler astronomique. L’agilité prône une réduction drastique de cette quantité de documents au profit de livraisons fréquentes et peu espacées dans le temps (« SPRINT »), permettant ainsi de répondre rapidement à de nouveaux besoins. Si il y a un forte baisse des livrables nécessaires à la réalisation d’un logiciel, en plus de l’accompagnement nécessaire à le faire accepter, il faudra peut-être réfléchir à diminuer le nombre de personne dont c’était l’activité. Les aspects RH de ce genre de décision peut facilement nuire à l’engagement des collaborateurs concernés. Il convient donc de préparer et d’accompagner cette transition.


La méthode SCRUM a de nombreux avantages, mais nécessite une préparation et un accompagnement quotidien, c’est d’autant plus vrai sur les projets  de transformation d’organisation existante vers l’agile (il est toujours plus facile de créer une organisation à la cible que d’en faire transiter une existante). Ces efforts ne doivent pas être pris à la légère sous peine de retarder le retour sur investissement, voir d’échec complet. Rappelons-nous certaines valeurs SCRUM : humilité, transparence, confiance et courage.



mardi 29 septembre 2015

Initiation à SCRUM



Les Grands Principes.


La méthode est créée par Jeff Sutherland et Ken Schwaber en 1991 puis présentée à l’OOPSLA («Object-Oriented Programming, Systems, Languages & Applications »  ) en 1995
Le nom de la méthode est tiré du monde du Rugby : SCRUM, qui signifie « Mêlée » en anglais est en parfaite analogie avec l’un des ses fondements qui est la réunion, la cohésion et l’esprit d’équipe pour faire face aux difficultés et pour atteindre un but commun.
La méthode SCRUM est une approche empirique se basant sur la pratique, sur la visibilité et sur le retour sur expérience. La relation entre le commanditaire et les utilisateurs  évolue, on accepte et on encourage les changements et les nouveaux besoins, et ce à tout moment de la vie du projet.
 La méthode SCRUM s’appuie sur une livraison itérative et incrémentale comme toutes les méthodes agiles, afin de pouvoir livrer rapidement en priorisant les fonctionnalités à forte valeur ajoutée. Les itérations (« Sprint ») sont courtes et permettent de présenter le résultat sous forme de prototype aux parties prenantes. Ce développement itératif permet  d’obtenir fréquemment les retours utilisateurs et de prévoir en conséquence les ajustements nécessaires sur les prochains sprints.

Pourquoi SCRUM ?


La méthode SCRUM peut  être assimilée à un jeu, avec un objectif, des rôles et des règles claires. Elle est donc par conséquent  facilement explicable, assimilable et transposable sur une majorité des projets. C’est la grande force de SCRUM, quelques heures de formations peuvent permettre à n’importe qui de posséder les bases nécessaires pour comprendre le fonctionnement et les enjeux de la méthode.
SCRUM a su se faire une place sur de nombreux projets, une étude de 2015 montre que parmi les 3925 entreprises sondées qui utilisent les méthodes agiles, 56% d'entre elles utilisent la méthode Scrum. Un succès qui s'explique aussi par le fait que cette méthode permet notamment une grande flexibilité et réactivité dans le développement des projets en s'adaptant à l'évolution (constante) des besoins. Son engouement massif a permis la  constitution d’une large communauté, avec les retours d’expérience et les constructions d’ouvrages qui en découlent.
SCRUM est adaptable et adaptée. Ainsi il n’est pas rare de retrouver des pratiques XP (eXtrem Programming) dans de nombreux projets SCRUM. Et c’est bien une des forces de la méthode que  de se positionner avant tout comme un outil, une sorte de « framework » utilisable et adaptable (dans le respect des valeurs agiles).

SCRUM : The Game


Comme évoqué, SCRUM peut être assimilé à un jeu, et comme tous jeux, il a son vocabulaire propre composé d’un ensemble (réduit) de définitions.
Parcourons les rôles, les artefacts et les cérémonies nécessaires à la mise en place de la méthode.

Les Rôles

-         La Team :

En charge de la réalisation du produit,  elle doit être autogérée et multi-compétente.

-         Le Product Owner (« PO ») :

Garant du produit et des intérêts des utilisateurs, il compile, priorise et valide les fonctionnalités réalisées par la team.

-         Le SCRUM Master :

Porteur de la méthode et de ses règles, il met en place les artefacts et anime les cérémonies.  Il est aussi le support de la Team et du PO pour régler les problèmes organisationnels.

Les Artefacts 

-         Le Product BackLog :

Liste de l’ensemble des sous-fonctionnalités (appelées user stories « US ») priorisées strictement, à réaliser. Cette liste est définie et maintenue par le Product Owner.

-         Le Release Burnup Chart :

C’est l’outil de suivi de l’avancement des réalisations. Il permet de garder une visibilité sur le planning et sur le périmètre de l’ensemble du produit.

-         Le Scrum Board :

C’est l’outil visuel de suivi du sprint en cours, avec les US embarquées dans le sprint, les tâches de réalisation associées, leur statut …. Il est accompagné d’un Burndown Chart qui est un graphique d’avancement du sprint en cours, idéalement mis à jour quotidiennement.

Les Cérémonies

-         Le Sprint Planning

C’est la cérémonie qui lance un Sprint, le PO présente les US qu’il veut faire réaliser par la TEAM qui la découpe en tâches. Chaque tâche correspond à une charge, et l’équipe embarque autant de tâches et donc d’US que sa capacité lui permet.

-         Le Daily SCRUM

Il s’agit du point quotidien de l’équipe, qui se réunit et partage son avancement et les problématiques. Le Daily Scrum doit être rapide (10 / 15 min).

-         La Sprint Review

C’est la cérémonie de fin du sprint. La Team fait une démonstration des US réalisées auprès du PO, qui peut les valider ou non, mais aussi auprès des différentes parties prenantes pour partager et obtenir leurs retours.

-         La rétrospective

Effectuée à chaque fin de sprint, c’est  la séance d’amélioration continue de l’équipe. On met en avant les dysfonctionnements, les bonnes pratiques, les points de blocage organisationnels …  et on convient d’un plan d’action pour améliorer le travail au quotidien.





A suivre : Un REX sur les pré-requis et l'accompagnement nécessaire à une transition vers SCRUM.

sources :