71
Introduction à l'agilité ENSMSE - 22 novembre 2013 @agnes_crepet

Introduction à l'agilité ensmse

Embed Size (px)

Citation preview

Page 1: Introduction à l'agilité   ensmse

Introduction à l'agilité

ENSMSE - 22 novembre 2013

@agnes_crepet

Page 2: Introduction à l'agilité   ensmse

Qui suis-je?

Page 3: Introduction à l'agilité   ensmse

Agnès Crépet@[email protected] Java/JEE Architecte & Java Champion Laboratoires Boiron Ninja Squad Java User Groups Leader:

Duchess FrancELyonJUG

Co-fondatrice de la conférence

Page 4: Introduction à l'agilité   ensmse

“Vous travaillez dans l’informatique?Mais vous faites un métier formidable!”

Page 5: Introduction à l'agilité   ensmse

Une chance de l’informatique : la richesse des communautés!

Page 6: Introduction à l'agilité   ensmse

On se retrouve à des conférences...

Page 7: Introduction à l'agilité   ensmse

Sondage

Qui a déjà entendu parler d’agilité ?

Page 8: Introduction à l'agilité   ensmse

Sondage

Qui a déjà pratiqué l’agilité ?

Page 9: Introduction à l'agilité   ensmse

Sommaire

●Préambule●Théorie●Pratiques●Méthodes●Concrètement●Plus de concret !●Conclusion●Informations diverses●Annexes

Page 10: Introduction à l'agilité   ensmse

●Préambule●Théorie●Pratiques●Méthodes●Concrètement●Plus de concret !●Conclusion●Informations diverses●Annexes

Page 11: Introduction à l'agilité   ensmse

Préambule

Spinning Dancer (Nobuyuki Kayahara, web designer)

Page 12: Introduction à l'agilité   ensmse

Préambule

Notre objectif : mener un projet informatique…… avec chacun sa vision des choses!

Il est parfois difficile de se comprendre lorsque chacun pense avoir raison!

Page 13: Introduction à l'agilité   ensmse

Besoin d’une rupture sur les méthodes de gestion de projets “classiques”

La méthode en cascadeOn travaille les tâches les unes après les autres : la moindre erreur coûte cher

Page 14: Introduction à l'agilité   ensmse

Besoin d’une rupture

Le cycle en VOn ajoute à la cascade de l'anticipation et du travail simultané

Page 15: Introduction à l'agilité   ensmse

Besoin d’une rupture

Organisation contrainte et peu adaptée à :l'inconnul'innovationla découvertel'incertitudel'amélioration continue

Ces méthodes prédictives répondent à certains contextes...

...mais pas à tous

Page 16: Introduction à l'agilité   ensmse

Besoin d’une rupture

Constat : encore à notre époque, les projets informatiques ne finissent pas souvent comme on le souhaite...

Nous souhaitons tous améliorer ces chiffres !

CHAOS database survey results of 50,000 completed commercial and government software projects for the year 2004.

Page 17: Introduction à l'agilité   ensmse

●Préambule●Théorie●Pratiques●Méthodes●Concrètement●Plus de concret !●Conclusion●Informations diverses●Annexes

Page 18: Introduction à l'agilité   ensmse

Y a t’il une solution magique?

Page 19: Introduction à l'agilité   ensmse

L’agilité?

Mais c’est quoi exactement?

Page 20: Introduction à l'agilité   ensmse

La gestion de projet classique (prédictive)

Page 21: Introduction à l'agilité   ensmse

●Préambule●Théorie●Pratiques●Méthodes●Concrètement●Plus de concret !●Conclusion●Informations diverses●Annexes

Page 22: Introduction à l'agilité   ensmse

Les 4 valeurs de l’AgilitéL’agilité c'est 4 valeurs et 12 principes rédigés en 2001 (Manifeste Agile)Ce n’est pas une méthode, mais plutôt un savoir-êtreC'est du bon sens issu de 17 retours d’expériences d'experts

L’équipe : communicante et auto-organisée,pas uniquement les développeurs : CdP, métier, analystes, …

L’application : fonctionnelle/utilisable,plutôt que des docs à rallonge, pas à jour

Le client : collaborant, investi tout au long du projet,pas uniquement concerné par un contrat et une recette

L’acceptation du changement : flexibilité (de l’équipe, des outils, des méthodes et des mentalités), et non pas suivre un plan initial dans une structure rigide

Page 23: Introduction à l'agilité   ensmse

Les 12 principes du Manifeste Agile

Autour de l’application et de la valeur fonctionnelle :

1. Satisfaire le client en livrant tôt et régulièrement des logiciels utiles(cf. Scrum)

3. Livrer fréquemment une application fonctionnelle avec une tendance pour la période la plus courte (de 2 semaines à 2 mois par itération)

7. Un logiciel fonctionnel est la meilleure unité de mesure de la progression du projet (i.e. c’est le meilleur indicateur qualitatif).

Page 24: Introduction à l'agilité   ensmse

Les 12 principes

Concernant l’acception du changement :

2. Le changement est bienvenu, même tardivement dans le développement, ce qui constitue un avantage compétitif pour le client(cf. ergonomie et expérience utilisateur)

Concernant le client :

4. Les “gens de l’art” (i.e. métier) et les développeurs doivent collaborer quotidiennement au projet (cf. XP)

Page 25: Introduction à l'agilité   ensmse

Les 12 principes

Autour de l’équipe et de l’organisation :

5. Bâtissez le projet autour de personnes motivées. Donnez-leur l’environnement et le soutien dont elles ont besoin, et croyez en leur capacité à faire le travail.

6. La méthode la plus efficace pour transmettre l’information est une conversation en face à face.

8. Rythme de développement durable (à l’infini !) : commanditaires, développeurs, utilisateurs.

11. Les meilleurs architectures, spécifications et conceptions sont issues d’équipes qui s’auto-organisent.

Page 26: Introduction à l'agilité   ensmse

Les 12 principes

Concernant la qualité (“5ème valeur !?” ou plutôt savoir-faire, art)

9. Attention continue à l’excellence technique et à la qualité de la conception (pérennité, dette technique).

10. La simplicité est essentielle : c-a-d l’art de maximiser la qualité de travail à ne pas faire. (cf. éliminer le gaspillage Lean, Kanban)

12. A intervalles réguliers, l’équipe réfléchit aux moyens de devenir plus efficace, puis accorde et ajuste son comportement dans ce sens. (cf. amélioration continue, et rétrospectives sur tout).

Page 27: Introduction à l'agilité   ensmse

●Préambule●Théorie●Pratiques●Méthodes●Concrètement●Plus de concret !●Conclusion●Informations diverses●Annexes

Page 28: Introduction à l'agilité   ensmse

Survol des principales méthodes

Scrum, XP, UP, Lean SD, Kanban, Puma (RAD), Crystal clear, Xbreed (XP + Scrum)

L’agilité c’est s’approprier ce qui a de la valeur pour nous, et abandonner ce qui n’en a pas.

Pour plus de méthodes et d’éléments de comparaison ● PUMA (sur rad.fr) : Proposition pour l'Unification des

Méthodes Agiles ● http://institut-agile.fr/ : plus de 60 pratiques agiles en ligne !

Page 29: Introduction à l'agilité   ensmse

Rapide historique

Certains principes existent depuis longtemps

IHM révolutionnée par Internet depuis 2000 !

Page 30: Introduction à l'agilité   ensmse

Scrum en quelques motsScrum est un processus agile qui permet de produire la plus grande valeur métier dans la durée la plus courte

Du logiciel qui fonctionne est produit à chaque « sprint » (2 à 4 semaines) = timebox

Le métier définit les priorités. L'équipe s'organise elle-même pour déterminer la meilleure façon de produire les exigences les plus prioritaires

A chaque fin de sprint : release déployable et testable par les utilisateurs finaux

Deux rôles importants dans l’équipe Scrum : Product Owner et Scrum Master

Page 31: Introduction à l'agilité   ensmse

ScrumL'équipe, les rôles, l'organisation

Métaphores● BTP : CP, architecte, MOA, MOE

○ Contrôle, prédictif● Rugby : SM, PO, TM

○ Lâché prise, créativité

Stakeholder : parties prenantesChicken and pig

Page 32: Introduction à l'agilité   ensmse

Product Owner (PO)

Définit les fonctionnalités du produit

Définit les priorités dans le backlog en fonction de la valeur « métier »

Ajuste les fonctionnalités et les priorités à chaque itération si nécessaire

Teste les releases

Accepte ou rejette les résultats

Scrum Master (SM)

Vulgarise les valeurs et les pratiques de Scrum

Contribue à améliorer les outils et les pratiques de l’ingénierie

Facilite une coopération poussée entre tous les rôles et fonctions

Protège l'équipe des interférences extérieures

Met l’accent sur la créativité et la gestion autonome des membres

Page 33: Introduction à l'agilité   ensmse

Scrum

Temps fixe des itérations, itération de refactoring, visibilité sur 1 ou 2 itérations

Attention d'éviter les goulots d'étranglement (spécs d'avance)Présence PO : spécification, développement, recette

Page 34: Introduction à l'agilité   ensmse

Scrum : stand up (daily meeting)

3 questions :● qu'avez-vous fait hier ?● qu'allez-vous faire aujourd'hui ?● qu'est-ce qui bloque l'avancement ?

Tout le monde parle● pas uniquement les développeurs

Time-boxing● pas uniquement aux stand-up

Page 35: Introduction à l'agilité   ensmse

Scrum : vélocité, burndown chart

Inputs : mou et rythme soutenable

Page 36: Introduction à l'agilité   ensmse

XP (eXtreme Programming)Adaptée aux équipes réduites avec des besoins changeantsBut principal : réduire les coûts du changementValeurs : communication, simplicité, feedback, courage, respect

Pratiques : planning poker, TDD et intégration continue, refactoring, programmation en binôme, n'optimiser qu'à la toute fin

Page 37: Introduction à l'agilité   ensmse

Lean

TPS (Toyota Production System) : baptisé Lean par le MIT en 1980

Le Lean c'est l'élimination des pertes, c-a-d du travail qui n'apporte aucune valeur métier à un produit ou à un service.D'abord présent dans l'industrie, la santé, les services, etc...

Lean Software Development : le Lean dans le développement logicielLean IT : application du Lean aux systèmes d'informationLean Startup : application du Lean au modèle d'entreprise

Objectif : Générer la valeur ajoutée maximale au moindre coût et au plus vite.C’est donc bien une méthode agile !

Parfait pour la gouvernance, mais pas uniquement

Page 38: Introduction à l'agilité   ensmse

Dimensionner et maîtriser les stocksSimplifier visuellement le suivi et la planificationParfait pour une TMA, mais pas uniquement

Page 39: Introduction à l'agilité   ensmse

●Préambule●Théorie●Pratiques●Méthodes●Concrètement●Plus de concret !●Conclusion●Informations diverses●Annexes

Page 40: Introduction à l'agilité   ensmse

Côté techniqueQualité et industrialisation

● TDD, Intégration/déploiement continue, refactoring ● Pair programming, revues de code, …

TDD = Test Driven Development (Test First !)● Le TU = Test Unitaire c’est le quoi (les spécs en langage informatique).● Le code c’est le comment. Coder c’est essayer une tentative pour

satisfaire les TU (et donc les spécs).

Force de proposition● collaboration + capitalisation + motivation

Tendances● Artisan Programmeur (Software Craftsmanship, 2009, Robert C. Martin)● Refactoring : sessions de Code Retreat (cf http://coderetreat.org/)● Devops (collaboration entre Développements et Opérations)● Cloud (service externalisé)

Page 41: Introduction à l'agilité   ensmse

Outillage

CheckStyle

Hudson

Page 42: Introduction à l'agilité   ensmse

Côté fonctionnel métier

Identifier la valeur ajoutée : l'utilisabilité

"Si j’avais demandé aux gens ce qu'ils voulaient, ils m’auraient réclamé un meilleur cheval." [Henry Ford]

En pratique : fréquence/usage/volumétrie

"L’ergonomie est au fonctionnelce que l’agilité est à l’organisationnel"

Ergonomie, User eXperience (UX), interaction design (IxD)...découverte, tentatives, affinage du besoin

Faire tester souvent les utilisateurs...questionner, observer, inviter à verbaliser les tâches

Page 43: Introduction à l'agilité   ensmse

Des inconvénients?

Page 44: Introduction à l'agilité   ensmse

Certains efforts sont demandés

L'équipe doit faire preuve de courage, honnêteté, transparence, visibilité, engagement, respect...

Valeurs pas toujours faciles à partager:Responsabilité collective de la réussite du projetOuvert au changement

On a hélas parfois tendance :à ne s'occuper que de son propre terrainà ne pas s'impliquer dans les problèmes

de son voisin pour l'aider à les résoudre

S'améliorer c'est d'abord sortir de sa zone de confort !

Page 45: Introduction à l'agilité   ensmse

Certains efforts sont demandés

Collaboration active et impliquée du client, de l'utilisateur Le client : "Pourquoi je dois m'impliquer?" "Ce que je veux est pourtant simple !"

Lâcher-prise du manager Préférer un management horizontal ! Moins de hiérarchie marquée ! Le rôle du manager est fortement remis en cause !

Page 46: Introduction à l'agilité   ensmse

Attention aux dérives

Le daily meeting n’est pas du flicage : il s’agit de piloter les risques en identifiant les blocages quotidiens

La vélocité n’est pas un engagement de productivité : elle sert à estimer le périmètre réalisable dans la prochaine itération

Le sprint burndown chart n’est pas un indicateur de productivité : il permet de visualiser le reste à faire sur le périmètre initial de l’itération en cours

Page 47: Introduction à l'agilité   ensmse

Quelques clés de réussite

Proximité (même bureau ou workspace, offshore compliqué)

Qualités humaines : collaboration, motivation, remise en cause, reconnaissance de la valeur d’autrui

Forte IHM plutôt que batchs techniques et contraints

Nouveaux développements ou refonte d’applications existantes, plutôt que dans l’embarqué

Page 48: Introduction à l'agilité   ensmse

●Préambule●Théorie●Pratiques●Méthodes●Concrètement●Plus de concret !●Conclusion●Informations diverses●Annexes

Page 49: Introduction à l'agilité   ensmse

Voir vidéo d'Agnès Crépet et Cyril Lacôte - 30 minutesRetour d'expérience sur l'agilité chez Boironhttp://clacote.free.fr/Interviews : DSI - Product Owner - CP - Développeurs, etc.

Page 50: Introduction à l'agilité   ensmse

Exemple de mise en oeuvreLa DSI des laboratoires Boiron introduit en 2008 les méthodes agiles Pour les projets de refonte du Système d’information sur la base d’architectures contemporaines (JEE, ESB, MDM, etc.) Intérêts : introduire des demandes d’évolutions en cours de projet faciliter l’acceptation des nouvelles solutions informatiques par les utilisateurs finaux Premier « vrai » déploiement sur un projets critique (10.000 jours) Agilité chez BOIRON ? Un mix d’UP, XP et de Scrum / Kanban

Page 51: Introduction à l'agilité   ensmse

Pratiques et outillages "agiles"

Processus itératif et incrémentalRecette Utilisateur à chaque fin d’itérationStand-up quotidien / Tableau post-itGestion des exigencesDéveloppement par les tests (JUNIT, DBUNIT, Mockito)Refactoring régulier (par les patterns)Bug Tracker (JIRA)Intégration Continue (Maven, Jenkins, Nexus)

Page 52: Introduction à l'agilité   ensmse

Agilité, modélisation et UMLLa modélisation agile peut-elle exister ?

L'agilité se passe généralement de documentations volumineuses et de plus en plus d'UML

Mais Boiron a décidé néanmoins de garder UMl

Traçabilité des exigencesAnalyse d'impact d’un changementContrainte de validation pharmaceutiqueCommunication inter et intra équipe

Stratégie Boiron pour pour la modélisation:

Pas trop de docUn peu d'UML

Voir :http://www.slideshare.net/agnes_crepet/modelisation-agile-03122011

Page 53: Introduction à l'agilité   ensmse

Exemple de mise en oeuvreDes itérations d’un mois calendaire Mais cela peut varier en fonction des phases du projet Un sprint est à durée fixe en Scrum

Kanban

Des recettes utilisateursà chaque fin d’itération En période pré-production : recette toutes les 2 / 3 semaines

Photo : Recette UtilisateurBoiron Janvier 2010

Page 54: Introduction à l'agilité   ensmse

Une itération

Page 55: Introduction à l'agilité   ensmse

Backlog de produit

Les exigences, les activités En UP : Use Case (Boiron) En XP : User stories

Une entrée du backlog de produit est un Use Case UML (inspiré d’UP), on parle également de “Story” Un Use Case peut se dérouler sur 1 ou 2 itérations en Scrum en Kanban

Leurs priorités sont revues à chaque itération Définies par le Product Owner Mais également par le reste de l’équipe (différent de Scrum)

Page 56: Introduction à l'agilité   ensmse

Qu'est-ce qu'une User Story ?

Développeur

Marketing

Chef produit Client

Commercial

Ne pas oublier les critères d'acceptation !

Page 57: Introduction à l'agilité   ensmse

Exemple de mise en oeuvreComment planifier une itération ?

Page 58: Introduction à l'agilité   ensmse

Exemple de mise en oeuvreVie du backlog de l’itération

L'estimation du reste à faire est ajustée tous les jours (Stand-up / JIRA)

Mise à jour du travail restant quand il est mieux connu

N'importe qui peut ajouter, supprimer, changer la liste des tâches en stand-up

Si un travail n'est pas clair, définir une tâche avec plus de temps et la décomposer après

Changement en cours d’itérations Estimation du reste à faire

Scrum Utilisation de Burndown Chartsavec mise à jour quotidienne

Boiron(comme Kanban)

Utilisation de JIRA (quotidien)

Page 59: Introduction à l'agilité   ensmse

●Préambule●Théorie●Pratiques●Méthodes●Concrètement●Plus de concret !●Conclusion●Informations diverses●Annexes

Page 60: Introduction à l'agilité   ensmse

Les méthodes agiles, pas 1 miracle!

Page 61: Introduction à l'agilité   ensmse

ConclusionLes méthodes agiles ne sont pas la formule magique pour réussir un projet ! C'est une révolution de la communication entre les personnes Comment réussir à mettre en place un processus agile ?● Les personnes de l’équipe doivent s’approprier la méthode.

Mieux que de l’imposer !● Appliquer les pratiques agiles qui semblent pragmatiques et

adaptées à votre contexte « Ne pas développer de dépendance spécifique à une arme ou à une école de combat »

Miyamoto Musachi, Samouraï du XVIIième siècle

Page 62: Introduction à l'agilité   ensmse

●Préambule●Théorie●Pratiques●Méthodes●Concrètement●Plus de concret !●Conclusion●Informations diverses●Annexes

Page 63: Introduction à l'agilité   ensmse

Vous voulez aller plus loin

Aller au CARA!En plus leurs réunions sontsur le campus de la DOUAhttp://lyon.clubagilerhonealpes.org/

D’autres conférences : Scrum Days, Mix-IT, ALE, SoftShake, Agile Grenoble, Agile Tour, Agile France, XP Days, Agile Open Days, ...

Page 64: Introduction à l'agilité   ensmse

Ressourceshttp://www.agileforall.com : tous les projets peuvent adopter au moins quelques pratiques agiles, ce qui les rendrait meilleurs.

http://www.agilealliance.org/ Présentations de Claude Aubry (voir son Introduction à l'Agilité pour l'Inra) : http://www.aubryconseil.com/media http://www.extremeprogramming.orgLe site de référence XP, qui propose une excellente présentation de la méthode http://www.xprogramming.comsite XP de Ron Jeffries. Articles très intéressants sur la méthode (rubrique "XP Magazine"), ainsi qu'une liste des frameworks xUnit disponibles pour divers langages ("XP downloads").

http://www.xp123.comsite de William Wake. Nombreux articles sur les pratiques concrètes de XP (les tests unitaires avec Java, le Planning Game, etc).

Page 65: Introduction à l'agilité   ensmse

Ressources

http://institut-agile.fr/Le site de l'institut agile (Laurent Bossavit)et son référentiel : http://referentiel.institut-agile.fr/ http://henrik-kniberg.developpez.com/livre/scrum-xp/ "Scrum et XP depuis les Tranchées"Comment nous appliquons Scrum

http://www.clubagilerhonealpes.org/blogsDes blogs d'agilistes! http://lyon.clubagilerhonealpes.org/Groupe Lyonnais du Club Agile Rhône-Alpes

Page 66: Introduction à l'agilité   ensmse

BibliographieL'Extreme Programming (avec deux études de cas), Jean-Louis Bénard, Laurent Bossavit, Régis Medina, Dominic Williams, chez Eyrolles, 2002.

Extreme Programming Explained : Embrace Change, Kent Beck,Addison-Wesley, 1999.

Extreme Programming Installed,Ron Jeffries, Ann Anderson et Chet Hendrickson,Addison-Wesley, 2000.

Planning Extreme Programming,Ron Jeffries, Ann Anderson et Chet Hendrickson,Addison-Wesley, 2000.

Refactoring : Improving the Design of Existing Code, Martin. Fowler, Addison-Wesley, 1999

Page 67: Introduction à l'agilité   ensmse

Ken Schwaber3 livres sur Scrum

Agile and Iterative Development :A Manager’s Guide de Craig Larman Agile Estimating andPlanning de Mike Cohn Agile Retrospectivesd'Esther Derby et Diana Larsen Agile Software DevelopmentEcosystems de Jim Highsmith

Des articles chaque semaine sur http://www.scrumalliance.org/

Bibliographie

Page 68: Introduction à l'agilité   ensmse
Page 69: Introduction à l'agilité   ensmse
Page 70: Introduction à l'agilité   ensmse

●Préambule●Théorie●Pratiques●Méthodes●Concrètement●Plus de concret !●Conclusion●Informations diverses●Annexes

Page 71: Introduction à l'agilité   ensmse

Source

Certains Slides (Scrum) sont issus d’une présentation de Mike Cohn sous license libre

http://www.mountaingoatsoftware.com/