Upload
soft-shakech
View
2.072
Download
0
Embed Size (px)
DESCRIPTION
Thierry CrosAujourd’hui l’agilité est “mainstream”. Comment s’y retrouver parmi les innombrables présentations, retours d’expérience qui se réclament de l’agilité ?Cette présentation vous propose un bref panorama de l’agilité, depuis ses débuts historiques jusqu’aux évolutions actuelles. Vous allez donc acquérir les informations qui vous permettront de vous forger viotre propre opinion et discerner ainsi ce qui est véritablement agile.http://soft-shake.ch/2011/conference/sessions/agility/2011/09/23/agilte-kesaco.html
Citation preview
cocktail d’expérience informatiques
Genève 3 & 4 octobre 2011
Seconde édition
Track
Auteur
Session
Agile
Thierry Gabriel CROS
Agile... Qu'es aco ?
Agile...Qu'es aco ?
Thierry Gabriel Cros
http://etre-agile.com 2
Agenda● Agile ?● Extreme Programming● Scrum● Lean Software Development● Kanban● En guise de conclusion...
http://etre-agile.com 3
Les façons de faire
● Hors agile, nous rencontrons essentiellement deux styles de développement...
http://etre-agile.com 4
1. Cycles en V
Spécification
Conceptionpréliminaire
Conceptiondétaillée
Testsunitaires
Intégration
Validation
Codage
CascadeCycle en V
http://etre-agile.com 5
2. L'Arrache (ou La Rache)
● Également connu sous le nom de …
http://www.djibnet.com
http://etre-agile.com 6
Alors...
● Cycle en V ?● Cow-boy ?● …
http://etre-agile.com 7
Méthode :Empirique ou théorique ?
Process Dynamics, Modeling, and Control, Ogunnaike et Ray,
Oxford University Press, 1992
Il est normal d'adopter l'approche définie par un modèle (théorique) quand les mécanismes sous-jacents par lesquels
un processus opère sont relativement bien compris.Si le processus est trop compliqué pour l'approche
définie, alors l'approche empirique est le choix approprié.
http://etre-agile.com 8
Empirique ?
● Empirique != désordonné● Empirique != indiscipliné● … Au contraire !
Si vous partez à l'aventure et si vous êtes un tantinet sérieux,
vous faites très attention !
http://etre-agile.com 9
Un peu d'histoire...
● Années 90 : des expérimentations empiriques, légères, face aux méthodes lourdes
● Rencontre, en février 2001, des concepteurs de ces différentes méthodes « légères »...
● … Ce qui va aboutir au Manifeste agile, expression des points communs à toutes ces méthodes alternatives.
http://etre-agile.com 10
Agile : définition
● Autant de définitions que d'Agilistes...● Pourtant, l'agilité a une histoire et un texte
fondateur en 2001 :
Le manifeste agilehttp://agilemanifesto.org
http://etre-agile.com 11
2001 : Le manifeste agile
● 4 valeurs● 12 principes● Une histoire
Quand des anarchistes organisationnels se rencontrent...
http://etre-agile.com 12
Le Manifeste
Source : agilemanifesto.org
http://thierrycros.net 13
Dilbert ? Non, merci.
« … l'Extreme Programming a connu un développement dans son utilisation et son intérêt, non pas grâce à la programmation en binôme ou au refactoring, mais parce que, pris dans leur ensemble, ses pratiques définissent une communauté de développeurslibérée des poids des sociétés "Dilbertesques". »
Histoire du Manifeste agile, Jim Highsmith
Traduction de Fabrice Aimettihttp://www.fabrice-aimetti.fr
http://thierrycros.net 14
Vous avez aimé Peter ?Vous adorerez Dilbert !
Le principe de Dilbert est une version aggravée du principe de Peter.
Dans le livre Le Principe de Dilbert, Scott Adams rappelle le principe de Peter :
Tout employé tend à s'élever à son niveau d'incompétence.
Le nouveau principe, principe de Dilbert, s'énonce ainsi : « Les gens les moins compétents sont systématiquement affectés
aux postes où ils risquent de causer le moins de dégâts :
ceux de managers. »Source : wikipedia
http://etre-agile.com 15
En résumé
● Années 80– Lean
● Années 90– Scrum, XP, ...
● 2001 : le manifeste agile
● Pendant plusieurs années
– Confidentiel– Pionniers
● Depuis, l'agile est devenu une alternative crédible
– Scrum + XP– Lean Software– Kanban
http://etre-agile.com 16
Agile aujourd'hui : une boite à outils
● Les méthodes ou guides (XP, Lean...)véritablement agiles offrent plus que le manifeste agile.
● Toutes ces méthodes forment un framework de plusieurs dizaines de principes et pratiques...
● … Sur lequel nous nous basons pour installer l'agilité.
http://etre-agile.com 17
Agile : quatre axes fondateurs
Empirique
CentréImportance Métier
Auto-similaritéFeedbackconcret & rapide
Amélioration continue
ÉquipeAuto-organisée
* Responsabilité* Hédonisme
http://etre-agile.com 18
Intérêt d'un feed-backconcret et rapide
Début du Retour sur
Investissement
Approche agile
Feedback des Utilisateurs, de l'exploitation
Ajuster, voire rectifierles besoins,la solution informatique :à 3 mois, à un an ?
http://etre-agile.com 19
Un autre principe clé de l'agilité
● « Les meilleures spécifications, conceptions et architectures émergent d'équipes auto-organisées »
– Émergence des specs ?– Émergence de la conception, de
l'architecture ?– Grâce à une « Équipe auto-organisée » ?
http://etre-agile.com 20
Intérêt de l'auto-organisation
● Pas de gaspillage d'opportunités : possibilité de proposer
● Interaction Utilisateur / Développeur
● La Vision du produit, partagée, est un attracteur dans une équipe auto-organisée
● Pas de chef = plus de responsabilité
http://etre-agile.com 21
Extreme Programming : ce célèbre inconnu
http://thierrycros.net 22
XP : l'émancipation du Développeur
● XP pour s'évaluer ● XP pour être soi● XP pour s'émanciper en tant que Développeur
http://thierrycros.net 23
Extreme « Programming »
● Quelles activités apportent vraiment une Valeur Ajoutée ?
● Programming« Coder » (Java...)Paramétrer
● Programming = Réaliser le produit
Remettre en cause, réduire voire éliminer les activités « non V.A. »
http://thierrycros.net 24
« Extreme » Programming
● Une fois les activités « non VA » réduites, quelles activités conserver et dans quelle proportion ?
● Dialogues● Tests● Conception● Relecture
Extreme Programming = « Pousser à fond » les activités qui apportent de la valeur
http://thierrycros.net 25
Le « paquetage » XP
Valeurs
Principes
PratiquesRôles
Cycle de Vie
http://thierrycros.net 26
Rôles
● Une équipe, plusieurs rôlesClient (Product Manager)
Spécifie les demandes et les tests-client, planifie en tenant compte de la VA des demandes
DéveloppeurEstime les demandes, réalise
ManagerFait confiance, aplanie le terrain,
● Un point focal pour tous: la Valeur Métier offerte par le produit
http://thierrycros.net 27
Valeurs de l' Extreme Programming● Communication
Combien d'exemples... et de contre-exemples !
● FeedbackPour contrôler à partir d'éléments les plus objectifs
● SimplicitéLe pari de l'Extreme Programming, pour tous, tout le temps
● CourageDe changer de rôle, de vision du produit
● RespectRespecter et être respecté en tant quepersonne
Principe Lean
http://etre-agile.com 28
Un Cycle de Vie agile : livrer rapidement et régulièrement
Engagement
Pilotage par feedback
Exploration2
1
3 4
nMort
de l'appli
5 ...
1. Fin d'exploration : carottages, architecture, périmètre initial, estimations2. Engagement : premières valeurs des variables projet :
- Coût- Délais- Périmètre- Qualité
3. 4. 5. … Les différentes versions livréesn. Fin de l'application.
Principe : Le client en choisit 3, le Développeur la quatrième.
2 mois max.
1 semaine
Des années !
http://thierrycros.net 29
Au cœur de l'expression de besoins : les « user stories » d'XP
En tant que Pilote,je règle le commutateur en mode "
niveau horizontal" afin de maintenir les ailes à l'horizontale
et l'avion sur sa trajectoire initiale.
800
5
Valeur Métier (surtout thème)
Estimation (jours réels ou points)
Une histoire est :1) un déclencheur de discussions dans l'équipe
2) l'unité de planification (correspondance histoire / itération)
http://thierrycros.net 30
Story : les 3C*
● Carte● Conversation
– Pour estimer, développer la story● Confirmation
– Tests d'acceptation
Tout n'est pas écrit* cf. Ron. Jeffries
http://thierrycros.net 31
Importance des Tests d'Acceptation
● Spécifier un test, c'est spécifier le produit● « Deal » entre Product Manager et
Développeurs● Automatiser les T.A.
– Fitnesse– GreenPepper– ...
http://thierrycros.net 32
Développement agile : emblématique de l'Extreme Programming
● Test Driven Development : le Développement piloté par la conception exprimée en tests
● Conception – Développement simple– Code expressif– Pas de duplication– Nombre minimal de classes et méthodes
● Intégration continue● Déploiement / nuit
http://etre-agile.com 33
Développement agile
● Produit malléable● Environnements
performants :– Cartes perforées
vsIntelli J...
– Temps de « compilation »
● Test Driven Development
● Refactoring● Conception
émergente
http://thierrycros.net 34
Conception émergente
● Itération 1Histoires
d'utilisation A320
● Itération nHistoires du A380
A320
A320
Avion
A380
YAGNI !
http://thierrycros.net 35
Scrum : la marque qui fait vendre l'agilité
http://etre-agile.com 36
Scrum en un schéma
AnnulerEmballageRetour
Itération1-3 semaines
Retour
But du sprint
Tâches Produit partiel potentiellement
utilisable
CouponsEmballageCoupons
Annuler
24 heures
http://etre-agile.com 37
Scrum : les piliers
● Transparence– Partager la définition de « done »
● Inspection– Feedback rapide : artefacts, produits
● Adaptation– L' amélioration du produit– Et des pratiques
http://etre-agile.com 38
Scrum : les rôles
● Product Owner– Exprime les
besoins– Priorise– Valide
● ScrumMaster– Garant de Scrum
● Équipe de Développement
– Estime l'effort nécessaire
– Fabrique le produit
http://etre-agile.com 39
Scrum : le cérémonial
● Sprint Meeting (plan d'itération)● Sprint Review (Revue)● Rétrospective (l'amélioration, 12ème principe)
● Daily Scrum Meeting (mélée quotidienne)
http://etre-agile.com 40
Scrum : le Business Model
● Dans la famille « certified », je demande...– Le ScrumMaster– Le Trainer– Le Product Owner
● Scrum Guide de K. Schwaber : http://scrum.org 17 pages
● Scrum... de Claude Aubry chez Dunod (300 pages)
http://etre-agile.com 41
Lean Software Develoment :une autre voie vers l'agilité
v1
Lean Software - Être Agile 42
q Agile, Lean, Lean Softwareq Les sept principes de base
● 1. Éliminer les gaspillages● 2. Améliorer le système● 3. Qualité intrinsèque● 4. Gérer les décisions● 5. Livrer rapidement● 6. Fortement respecter les
personnes● 7. Créer et faire vivre la
connaissance
q
Agenda● Outils
– SIPOC– Value Stream Mapping– Go & See– ...
v1
Lean Software - Être Agile 43
Une autre conduite du changement
● AS IS● TO BE
● Scrum + XP– Le « package »
● L.S.D.– Améliorer
l'existant
v1
Lean Software - Être Agile 44
Kanban : le dernier venu
● Visualiser le workflow– Identifier le goulot
● Limiter le Work In Progress
– Terminer plutôt que commencer
● Optimiser le temps de cycle
– Début du travail sur un élément
– Début du cash-back
http://etre-agile.com 45
Agile aujourd'hui : une boite à outils
● Les méthodes ou guides (XP, Lean...)véritablement agiles offrent plus que le manifeste agile.
● Toutes ces méthodes forment un framework de plusieurs dizaines de principes et pratiques...
● … Sur lequel nous nous basons pour installer l'agilité.
http://etre-agile.com 46
Un dernier mot
● XP● Scrum● Lean Software Dev● Kanban● ...
● L'Agile se définit en – Valeurs– Principes
● Être agile c'est mettre en pratique ces principes
● Soit vous « achetez » ces valeurs, soit...
http://etre-agile.com 47
Bienvenue en agilité
Illustration : NASA
Thierry Cros
http://etre-agile.com
Twitter@thierrycros
Mél :[email protected]
http://etre-agile.com 48
Itération,objectif : TERMINER les histoires
ITERATION(sprint)
V(n+1)Produit testé
et incrémenté.
Périmètrede l'itération
= { Histoires }
Nouveau backlog
http://etre-agile.com 49
Une autre façon de dire le modèle « théorique »
C'est la quête éperduevers la perfection (avant d'écrire du code) qui est à l'origine de l'agilité
Anderson, Agile2008
L'Agilité va à l'encontre du « big * »
UML
MDA
CMMI
BPM
http://etre-agile.com 50
(R)UP : (Rational) Unified Process
- Piloté par les cas d'utilisation- Itératif incrémental- Centré architecture
http://etre-agile.com 51
Dérives usuelles (1)
Toujours7%
Souvent13%
Parfois16% Rarement
19%
Jamais45%
Standish Group Study Reported at XP2002 by Jim Johnson, Chairman
Fonctionnalités utilisées
dans un système
http://etre-agile.com 52
Dérives usuelles (2)
correctionscorrections
100%
Avancement du projet
Réali
satio
n du
dév
elopp
emen
t(%
codé
)
Date cible prévue
Début Integration
Date réellede fin
D'après Walker Royce