Introduction à l'agilité
Numélink - 24 mai 2012
@Agnes_Crepet@GuillaumeEhret @AlfredAlmendra
Méthodes
Survol des principales méthodes
Spirale / RAD / PUMA, UP / RUP, XP, Scrum, Xbreed, Lean, Kanban, ScrumBan, Crystal / ASD, DSDM
L’agilité c’est s’approprier ce qui a de la valeur pour nous, et abandonner ce qui n’en a pas.
En savoir plus : • http://institut-agile.fr/ : plus de 60 méthodes et pratiques
agiles en ligne !
• http://www.realsearchgroup.org/portal/ Présentation des principales et méthodes
AMhttp://agilemodeling.com/
Grille de choix simpliste• TMA, MCO (prédictif, command/control) : Kanban (cf.
laurent morisseau @lmorisseau)• dév (exploration, qualité, pérénnité) : XP (cf. Thierry Cros
@thierrycros)• team (collaboration, cycle itératif/incrémental) : Scrum (cf.
Claude Aubry @claudeaubry)• organisation historiquement non agile : DSDM (cf. Matthew
Caine @mc_mcpa)• management : Lean management (cf. Jean-Claude
Grosjean @jcQualitystreet)• entreprenariat : Lean startup• pour tous :
o l'amélioration continue : Lean, PDCAo le réfétentiel des méthodes et pratiques agiles de l'institut
agile pour y faire son marché et expérimenter
MODELE EN SPIRALE
RAD
PUMA
Barry Boehm article A Spiral Model of Software Development and Enhancement (1986)
1ère version opérationnelle publiée par James Martin en 1991 sous le nom de RAD (développement rapide d'applications)
Niveau de planification stratégique (par Jean-Pierre Vickoff)
PUMA (sur rad.fr) : Proposition pour l'Unification des Méthodes Agiles
UP / RUP
UP en quelques motsLe processus UP (abréviation de Unified Processus) a été créé par les mêmes personnes qu'UML (Rumbaugh, Booch et Jacobson) en 1997. UP répond aux exigences fondamentales préconisées par les créateurs d’UML : • une méthode de développement doit être guidée par les
besoins des utilisateurs • elle doit être centrée sur l’architecture logicielle
• elle doit être itérative et incrémentale
Centré cas d’utilisation (Use Case)
Phases RUP
XP
eXtreme Programming
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
SCRUM
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
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
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
ScrumL'équipe, les rôles, l'organisation
Métaphores• BTP : CP, architecte, MOA, MOE
o Contrôle, prédictif• Rugby : SM, PO, TM
o Lâché prise, créativité
Stakeholder : parties prenantesChicken and pig
Scrum : activités, collaboration
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 ?
Tous les "acteurs" parlent (au sens "task board")• pas uniquement les développeurs
Time-boxing• pas uniquement aux stand-up
Scrum : vélocité, burndown chart
Scrum : vélocité, burndown chart
Michel Goldenbergau CARA Lyon le 5/12/2011
Inputs : mou et rythme soutenable
Montée en compétences de l'équipe, profil T, market skills, coding dojo, vélocité + mou, expertise ou apprentissage
Trop lent : répartition par expertiseTrop vite : capitalisation des connaissances
1h12'
XBREED
XBREED
XP + SCRUM
Librairies modulaires réutilisables
LEAN
Lean
" Good Thinking Good Products "
TPS (Toyota ou Thinking 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 à l'entreprenariat
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
Lean SD (oui, LSD !)Modèle itératif et agile mettant en avant 7 principes :
1. Eliminer les gaspillages• Tout ce qui n'apporte pas de valeur au produit. La valeur étant définie du
point de vue de l'utilisateur.
2. Améliorer l'apprentissage
3. Retarder l'engagement
4. Livrer aussi vite que possible
5. Donner le pouvoir à l'équipe
6. Intégrer la qualité dès la conception
7. Considérer le produit dans sa globalité
Amélioration continue (PDCA, Lean A3)
Voir aussi PDSA : Study > Check
Performance et satisfaction utilisateur
Régis Médinaau CARA Lyon le 5/04/2012http://www.youtube.com/watch?v=9kBpKpHWKiw - 1h05'
Agilité + UX (expérimentation) + amélioration continue (PDCA)= performance et satisfaction utilisateur
Eviter à l'utilisateur de perdre son temps= éliminer ce qui lui fait gaspiller du temps
Apprendre à écouter et observer sans parler= pour laisser l'utilisateur verbaliser
2 malédictions : du savoir (technique), de l'ignorance (métier)
KANBAN
Méthode d'amélioration des processus• Dimensionner et maîtriser les stocks (Flux tiré, limiter le WIP/TAF)• Simplifier visuellement le suivi et la planification• Parfait pour une TMA, mais pas uniquement
Kanban
Les fondations
• Commencer là ou vous en êtes• En respectant le processus actuel, les rôles et responsabilités• S’engager à changer de manière incrémentale• Et encourager les actes de leadership à tous les niveaux de votre organisation (NEW)
Les pratiques
• Visualiser• Limiter le travail en cours (WIP/TAF)• Gérer le flux• Rendre les caractéristiques du processus explicite• Implémenter des boucles de feedbacks (NEW)• S’améliorer de manière collaborative (en utilisant des modèles et une méthode
scientifique)
SCRUMBAN
ScrumBanUne transition progressive de Scrum vers Kanban :• Cycle itératif vers flux tiré• D'abord, 1 gestion de flux (workflow) par sprint
Crystal
ASDAdaptive Software
Development
Crystal / ASD
Organisation et processus légers pour être adaptables
Communication omniprésente
6 équipiers max, dans la même pièce
Schémas de modélisation en groupe et sur tableau blanc
Collaboration avec le client : nombreuses conversations entre utilisateurs et développeurs
Livraisons fréquentes et opérationnelles : suivi du client et propositions de changements
DSDM
Dynamic Systems Development Method
DSDM
DSDM