soft-shake.ch - Agile qu'es aco : scrum xp lean

Preview:

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 :tco@thierrycros.net

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