XP PDF
XP PDF
XP PDF
Gauthier Picard
Octobre 2009
. Sommaire
.
. .1 Introduction
.
. .2 quipe et rles XP
.
. .3 Pratiques XP
.
. .4 Processus XP
.
. .5 Autres considrations
. Sommaire
.
. .1 Introduction
.
. .2 quipe et rles XP
.
. .3 Pratiques XP
.
. .4 Processus XP
.
. .5 Autres considrations
. La prhistoire : Influences
.
Culture SmallTalk .
..
198x : Kent Beck et Ward Cunningham travaillent chez Tektronix
.
.
Episodes .
..
1986-1996 : Kent Beck et Ward Cunningham dveloppent un ensemble de
bonnes pratiques
Support dans le language Episodes de Ward Cunningham
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 4 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
Refactoring .
..
1989-1992 : William F. Opdyke, Refactoring Object-Oriented Frameworks.
PhD Thesis
1995-1996 : Kent Beck, Smalltalk Best Practices Patterns
1999 : Martin Fowler, Refactoring : Improving the Design of Existing Code
.
.. .
.
.
Test-Driven Development .
..
Driv des pratiques de refactoring
.
Introduction leXtreme Programming et au dveloppement agile 5 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
Design Patterns .
..
Ide reprise de larchitecture, plus particulirement de Christopher Alexander
.
Introduction leXtreme Programming et au dveloppement agile 6 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Les dbuts
.
Projet C3 (Chrysler, 1996) : Naissance du processus .
..
Intervention de Kent Beck pour amliorer les performances
.
.
De lutilisation du Wiki Wiki Web .
..
Ward Cunningham a mis au point ce site collaboratif
.
Introduction leXtreme Programming et au dveloppement agile 7 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
Evolution et gain de popularit .
..
Septembre 1999 : Extreme Programming Explained par Kent Beck
.
Introduction leXtreme Programming et au dveloppement agile 8 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Le Manifeste Agile
.
Runion organise par Kent Beck en Fvrier 2001 .
17 personnalits, dont les crateurs de Crystal, Scrum, Adaptive Software
Development, etc.
.
.. .
.
.
http://www.agilemanifesto.org/ .
..
Nous cherchons de meilleures manires pour dvelopper des logiciels en aidant les
autres et en dveloppant nous mmes. travers ce travail nous en sommes venus
valoriser :
Personnes et interaction plutt que processus et outils
Logiciel fonctionnel plutt que documentation complte
Collaboration avec le client plutt que ngociation de contrat
Ragir au changement plutt que suivre un plan
En fait, bien que les lments de droite soient importants, nous pensons que les lments
de
. gauche le sont encore plus.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 9 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
.
...
1 Cahier des charges .
...
2 Document de spcifications
...
3 Document de conception gnrale
...
4 Document de conception dtaille
...
5 Plans de tests
...
6 ...
.
...
7 Et lapplication ?
.. .
.
Introduction leXtreme Programming et au dveloppement agile 10 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
.
1994 : Rapport CHAOS (tude sur 8000 projets) .
16% finaliss dans les temps et le budget prvus
32% interrompus en cours de route
Diagnostic courant des drapages :
Spcifications ambitieuses et Conception pousse
Puis, enlisement de la construction
Remise en cause de choix initiaux
Mise mal de la conception propose
Effet Tunnel
Le processus correspond il aux besoins du projet ?
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 10 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
.
Consquences .
..
Remises en question des spcifications
.
Introduction leXtreme Programming et au dveloppement agile 11 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Valeurs XP
.
Communication .
..
Dveloppement = Effort collectif de cration
Avoir une vision commune et pouvoir se synchroniser
Qualit de la communication
Communication directe et le contact humain
Faiblesse pour la traabilit et la structuration
Augmentation de la ractivit
Communication crite prsente, en gnral par du code
.
.. . .
.
Simplicit .
..
La chose la plus simple qui puisse marcher
Simple Simpliste
Eviter la complexit inutile dans le code
Toute duplication doit tre limine
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 12 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Valeurs XP (cont.)
.
Retour dinformation (Feedback) .
..
Boucles de feedback pour rduire les risques
Connatre ltat du projet
Rectifier le tir si ncessaire
Facteur de qualit
Acquisition dexprience
Amlioration constante du travail
.
.. .
.
.
Courage .
..
Se lancer dans un projet non entirement spcifi
.
Introduction leXtreme Programming et au dveloppement agile 13 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Principes XP
.
Le client (matrise douvrage) pilote lui-mme le projet, et ce de trs prs .
grce des cycles itratifs extrmement courts (1 ou 2 semaines)
Lquipe livre trs tt dans le projet une premire version du logiciel, et les
livraisons de nouvelles versions senchanent ensuite un rythme soutenu
pour obtenir un feedback maximal sur lavancement des dveloppements
Lquipe sorganise elle-mme pour atteindre ses objectifs, en favorisant
une collaboration maximale entre ses membres
Lquipe met en place des tests automatiques pour toutes les
fonctionnalits quelle dveloppe, ce qui garantit au produit un niveau de
robustesse trs lev
Les dveloppeurs amliorent sans cesse la structure interne du logiciel
pour que les volutions y restent faciles et rapides
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 14 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Sommaire
.
. .1 Introduction
.
. .2 quipe et rles XP
.
. .3 Pratiques XP
.
. .4 Processus XP
.
. .5 Autres considrations
. Programmeur
.
Deux hypothses dans XP pour justifier limportance du code .
..
En gnie logiciel, lactivit correspondant la fabrication est la compilation,
pas la programmation
Code clair, structur et simple modifi autant de fois que ncessaire pour quil
soit comprhensible et non redondant est la meilleure forme de conception
.
.. .
.
.
Tests et proximit du client .
..
Tests (cf. Feedback)
Eviter les dcalages entre ce que lon veut coder et le comportement rel
Ce qui nest pas test nexiste pas (cf. Courage)
Ecouter le client (cf. Communication)
Lui seul sait comment le logiciel doit fonctionner
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 16 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Programmeur (cont.)
.
Conception pour un codage durable .
..
Elle est trs importante !
.
Interventions sur la conception .
..
Collectivement lors des sances de planification
.
Introduction leXtreme Programming et au dveloppement agile 17 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Programmeur (cont.)
.
Responsabilisation .
..
Retour du programmeur comme rle central
.
.
Pratiques XP .
..
Programmation en binme Responsabilit collective du code
Tests unitaires Rgles de codage
Conception simple Intgration continue
Remaniement Rythme durable
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 18 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Client
. .
Qui est-il ? . Client sur site et feedback .
.. ..
Pas ncessairement le client Intgr lquipe de
contractuel dveloppement
Assistant matrise douvrage Plus de cahier des charges
Reprsentant des utilisateurs
vague ou incomprhensible
A dfaut quelquun pour agir Plus de dmo truque
comme client artificiel
Explique se quil souhaite aux
Chef de projet
dveloppeurs
Ingnieur charg des
Vision plus rapide du rsultat
spcifications
. Prise de conscience en cas
.. .
.
derreur
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 19 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Client (cont.)
.
Scnarios clients .
..
Description informelle dune fonctionnalit ou dune interaction avec
lutilisateur
Le plus simple possible
.
.. .
.
. .
Dmarrage du projet . A chaque itration... .
.. ..
Des scnarios initiaux Grce au feedback introduit (logiciel
sont dgags et fonctionnel) :
prsents Il peut revoir le contenu des itrations
Modifier ses scnarios
Ils sont classs par
priorit et rpartis en Il est garant des fonctionnalits du
itrations logiciel
. .
.. .
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 20 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Client (cont.)
.
Tests de recette .
..
But : prciser les contours des scnarios
.
.
Pratiques XP .
..
Planification itrative
.
Introduction leXtreme Programming et au dveloppement agile 21 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Testeur
. .
Le bras droit du client . Comptences requises .
.. ..
Dfinit et automatise les tests Programmeur htroclite
de recette (matriser loutillage de test)
Conseille le client sur la Rigoureux et intgre
testabilit dune .
.. .
.
fonctionnalit
.
Utilisation doutils diffrents Pratiques XP .
pour scripter ..
Suivi des tests (planification
Garant du sentiment de russite itrative)
sur le projet Tests de recette
Test fonctionnel russi
Intgration continue
Progression
Communiquer pour motiver Rythme durable
(graphique de progression...) .
.. .
.
.
.. .
.
. Tracker
.
Missions .
..
Suivre les tches en cours ditration
.
Introduction leXtreme Programming et au dveloppement agile 23 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Tracker (cont.)
.
Qui est-il ? .
..
Pas un suprieur hirarchique
.
.
Pratiques XP .
..
Planfication itrative
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 24 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Manager
.
Position dans lorganisation .
..
Suprieur hirarchique des programmeurs
.
. .
Responsabilits . Pratiques XP .
.. ..
Il soccupe matriellement de lquipe Scnarios client
.
dun sous-projet)
.
.. .
.
. Coach
.
Garant du processus .
..
Il runit tout les autres rles
.
.
Pratiques XP .
..
Toutes !
.
. .Introduction leXtreme Programming et au dveloppement agile .
.
26 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
.
Plusieurs personnes pour un rle .
..
Programmeur, le plus grand nombre
.
Introduction leXtreme Programming et au dveloppement agile 27 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
Programmeur
Programmeur
Manager
Tracker
Coach
Client
Programmeur 7 ! ! 7 !
Client 7 3 7 7 7
Testeur ! 3 7 7
Tracker ! 7 7 ! !
Manager 7 7 7 !
Coach ! 7 7 ! 7
3 bonne combinaison
7 mauvais combinaison
! combinaison envisageable mais risque
. Prcautions
.
Comportements contre-indiqus .
..
Sattribuer les mrites ou rejeter la faute sur les autres
.
.
Eviter la spcialisation .
..
Tendance naturelle la constitution de sous-groupes
Avec XP, pas de consquences tant que le groupe est petit
Envisager des mcanismes de rotation pour les binmes
Cas particulier du consultant
....
1 Le consultant est appel pour un problme prcis
...
2 Il travaille toujours accompagn par un programmeur
..3 Lquipe souhaitera probablement refaire le travail
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 29 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Sommaire
.
. .1 Introduction
.
. .2 quipe et rles XP
.
. .3 Pratiques XP
.
. .4 Processus XP
.
. .5 Autres considrations
. Pratiques XP
.
Whole
Team
. .
Collective Coding
Ownership Standards
.
Test-Driven
Development
. . .
Customer Pair . . Planning
Refactoring
Tests Programming Game
. .
Continuous . Sustainable
Integration Simple Pace
Design
.
Metaphor
.
Small
Releases
. Pratiques XP
.
.
Ecrire les tests en premier .
..
Position a priori paradoxale, mais...
Elimination du dilemme habituel en fin de projet
Code plus facilement testable
Moins denchevtrement Meilleure conception
Tests fonctionnels Forme de spcification
Tests unitaires Forme de conception dtaille
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 33 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
.
Test Unitaires .
..
Ecrits avant le code tester
Plusieurs rles :
Rythmer la programmation (progression dalpiniste )
Guider la conception
Documenter le code produit (cf. notion de contrat )
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 34 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
...
2 Ecrire un test indiquant si le problme est rsolu
...
3 Excuter le test... qui doit chouer
...
4 Ecrire le code
.
...
Excuter le test pour vrifier que le code fonctionne correctement
5
.. .
.
.
Test Unitaires (modification de conception) .
..
.
.. Modifier le test concern
1
.
.2. Excuter le test... qui doit chouer
...
3 Modifier le code
.
...
4 Excuter le test pour vrifier que le code fonctionne correctement
.. .
.
Introduction leXtreme Programming et au dveloppement agile 35 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Conception simple
.
Eviter la spculation .
..
Conception = Investissement (en temps et/ou complexit)
Identifier toutes les classes ou modules dont sera constitu le systme, hritage...
Implmenter un systme gnrique pour facilement implmenter chaque
fonctionnalit spcifique
Cet investissement peut-tre bnfique...
Mais si on a mal spcul ?
XP : Se concentrer sur une et une seule fonctionnalit
Obtenir la meilleure conception possible... ...
sans aller au-del
Do the simplest thing that could possibly work
You Arent Gonna Need It (YAGNI)
Implmenter le strict ncessaire
Compltement et correctement
Tests unitaires compris
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 36 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
corriger
Toutefois, ne pas oublier de progresser
.
.. .
.
.
Rgles de simplicit XP .
..
Tous les tests doivent tre excuts avec succs
.
Introduction leXtreme Programming et au dveloppement agile 37 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Remaniement
.
Dfinition .
..
Procd consistant modier un logiciel de telle faon que, sans altrer son
.comportement vu de lextrieur, on en ait amlior la structure interne
.. .
.
.
Transformations de code .
..
Martin Fowler en a rpertori plusieurs dizaines
.
Exemples de rsultats .
..
Elimination du code dupliqu
.
Introduction leXtreme Programming et au dveloppement agile 38 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Remaniement (cont.)
.
Lien avec les tests .
..
Chaque modification apporte par une transformation est minime
.
Introduction leXtreme Programming et au dveloppement agile 39 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Mtaphores
.
Dans un projet classique .
..
On cherche communiquer
Sur ce que lon attend du projet
Sur ce que lon a ralis
Do un effort de rdaction non ngligeable
But : obtenir une vision commune
Souvent noye dans une documentation trop dtaille
.
.. .
.
.
XP se focalise sur la vue densemble .
..
Conserver uniquement le strict ncessaire
Eviter la redondance
En gnral quelques pages suffisent
Utilisation de mtaphores
Eviter le jargon technique
Utiliser des images
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 40 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Programmation en binme
.
Fonctionnement du binme .
..
Toujours deux dveloppeurs devant une machine
.
.
Formation des binmes .
..
Changement frquent des binmes (plusieurs fois par jour)
Slection libre :
On demande laide de quelquun dautre
Il ne peut refuser ou seulement temporairement
Exemples de critres de choix :
(Faire) Profiter de lexprience
Intrt pour la tche raliser
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 41 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
Rpartition des tches .
..
Chaque dveloppeur est responsable de ses tches
Alors, tout instant :
Il travaille sur une de ses tches
Il aide quelquun dautre raliser sa tche
NB : Une tche pourra tre ralise en plusieurs fois
.
.. .
.
.
Une pratique rentable ? .
..
Un binme est plus rapide sur une tche donne quun programmeur seul
.
Introduction leXtreme Programming et au dveloppement agile 42 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
.
Espace de travail .
..
Eviter le cloisonnement pour favoriser les changes
.
Introduction leXtreme Programming et au dveloppement agile 43 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
.
Modles actuels : Absence de responsabilit .
..
Code appartenant toute lquipe et personne la fois
.
44 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
.
La fin des spcialistes ? Non ! .
..
Ils doivent devenir polyvalent
.
Introduction leXtreme Programming et au dveloppement agile 45 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Rgles de codage
.
Pourquoi ? .
..
Homognisation ncessaire (responsabilit collective)
Prise en main plus rapide du code crit par dautres
A dfinir avant le dmarrage du projet
Parfois mal perues, mais
Adaptation assez rapide
Prise de conscience du travail en quipe
Peut sinscrire dans une dmarche qualit
.
.. . .
.
Aspects couverts .
..
Prsentation du code (indentation, espaces...)
.
46 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Intgration continue
.
Pourquoi viter des priodes dintgration ? .
..
Profiter immdiatement des efforts de chacun
Cot de lintgration augmente trs vite avec lloignement dans le temps des
intgrations successives
Frquence dintgration classique : 1/semaine
Frquence XP : 1/jour n/heure
.
.. .
.
.
Mthode de travail : Gestion de versions .
..
Test Unitaires = Tests de non-rgression
Processus suivi :
....
1 Rcupration dune copie locale
...
2 Modification de la copie
...
3 Mise jour de la copie locale lorsquelle passe les tests
...
4 Correction des ventuels problmes
..5 Mise en dpt de la copie locale lorsquelle passe les tests
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 47 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
Equipe
Ensemble des dveloppeurs
Whole Team (client et programmeurs)
.
.. .
.
.
Avantages .
..
Spcifications fonctionnelles gnralement floues, ici :
.
.
Une pratique inaccessible ? .
..
Trs difficile de trouver quelquun de suffisamment disponible
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 48 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Rythme durable
.
Maintenir un niveau optimal .
..
Savoir travailler... mais aussi se reposer !
Beaucoup dnergie ncessaire pour :
Trouver des solutions de conception simples
Ecrire du code propre
Penser des tests unitaires
Explorer avec son binme les problmes rencontrs
On peut faire des heures supplmentaires
Sur une cour te priode de temps
Suivie dune priode de relchement
.
.. .
.
.
Traiter les problmes rels .
..
Rgle : Pas dheures sup deux semaines de suite
Ne pas la respecter est le signe dun problme plus profond
Plutt le rsoudre que le masquer par un sur plus de travail
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 49 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Livraisons frquentes
.
Rythment le projet .
..
Livraisons rgulires comme point de synchronisation
.
Introduction leXtreme Programming et au dveloppement agile 50 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
Un feedback pour le client .
..
Mieux cerner ses besoins
.
.
Un feedback pour lquipe .
..
Sentiment rgulier de travail fini
.
Introduction leXtreme Programming et au dveloppement agile 51 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Planification itrative
.
Rythme .
..
Environ 2 ou 3 itrations entre deux livraisons
Pour un projet de six ou sept mois
Itrations de deux semaines environ
.
.. .
.
.
Sances de planification ( Planning Game ) .
..
Livraisons et itrations sont des cycles imbriqus
Deux niveaux de granularit pour le pilotage
Livraisons Fonctionnalits
.
Introduction leXtreme Programming et au dveloppement agile 52 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
Exploration (de plusieurs jours quelques heures) .
..
Dfinir les scnarios client
Granularit fine (plus fine que les Use Cases)
Doit tre testable
Gnralement nots sur des fiches A5
Plus simples manipuler
.
Introduction leXtreme Programming et au dveloppement agile 53 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
Engagement (quelques heures seulement) .
..
Trier les scnarios (9 tas)
Par priorit (client) : Indispensable, Essentiel, Utile
Par risque (programmeurs) : Fort, Moyen, Faible
Annoncer la vlocit de lquipe
Nombre de points que peut traiter lquipe en une itration
Pour la premire itration le coach fourni sa propre estimation
Rpartir les scnarios parmi les livraisons venir
Le client achte les scnarios en fonction de la vlocit
Cration du plan de livraison provisoire
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 54 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
..2 Priorit absolue
.. .
.
.
Et ensuite ? .
..
Livrer sans dlai Reporter les scnarios manquants
.
Introduction leXtreme Programming et au dveloppement agile 55 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
.
Engagement .
..
Choisir et estimer des tches
.
Introduction leXtreme Programming et au dveloppement agile 56 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
.
Et ensuite ? .
..
Petite livraison informelle au client de lquipe
.
Introduction leXtreme Programming et au dveloppement agile 57 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Sommaire
.
. .1 Introduction
.
. .2 quipe et rles XP
.
. .3 Pratiques XP
.
. .4 Processus XP
.
. .5 Autres considrations
. Cycle de vie XP
. .
User Test S
cena rios
Stories .
Re
uirq .
em New User Story,
en .
ts Project Velocity Bugs
. . . . . . . .
Architectural System Release Release . Latest Acceptance Customer Small
Iteration
Spike Metaphor Planning Plan Version Tests Approval Release
.
. . Next Iteration
Uncertain Confident
Estimates Estimates
.
Spike
. . . .
Exploration Planning Iterations to Release Productionizing
. Phase Phase Phase Phase
.
Maintenance Phase
http://www.extremeprogramming.org/
. Cycle de vie XP
. .
User Test S
cena rios
Stories .
Re
uirq .
em New User Story,
en .
ts Project Velocity Bugs
. . . . . . . .
Architectural System Release Release . Latest Acceptance Customer Small
Iteration
Spike Metaphor Planning Plan Version Tests Approval Release
.
. . Next Iteration
Uncertain Confident
Estimates Estimates
.
Spike
. . . .
Exploration Planning Iterations to Release Productionizing
. Phase Phase Phase Phase
.
Maintenance Phase
http://www.extremeprogramming.org/
. Itration
.
New User Story,
Project Velocity
.
Release
Plan . .
Learn and
Us
Sto er Communicate
rie .
s . New
. Unfinished Tasks
Projet Functionnality
. . .
Next Velocity Iteration . Latest
. Development
Iteration Planning Iteration Version
s .
led est Plan Bug Fixes
Fai ce T
ta n
.
cep
Ac .
Day by Day
.
Bugs
. Itration
.
New User Story,
Project Velocity
.
Release
Plan . .
Learn and
Us
Sto er Communicate
rie .
s . New
. Unfinished Tasks
Projet Functionnality
. . .
Next Velocity Iteration . Latest
. Development
Iteration Planning Iteration Version
s .
led est Plan Bug Fixes
Fai ce T
ta n
.
cep
Ac .
Day by Day
.
Bugs
. Dveloppement
. .
Unfinished Learn and
Tasks Communicate
.
Pair Programming
. .
Iteration Too Much are Refactor Merciless
. Sh
Plan To Do Move People Around .
.
CRC Cards New
Ta
sk Functionality
s n i t
%U
. 100 Passed
. . . Tests
Stand Up Next Task or Collective
Meeting Failed Acceptance Test Code Ownership.
d sts Ac
c
ile Te Tes epta
Fa nce t P nce
a ass
. pt ed
ce
.
Day by Ac .
Bug Fixes
Day
. Dveloppement
. .
Unfinished Learn and
Tasks Communicate
.
Pair Programming
. .
Iteration Too Much are Refactor Merciless
. Sh
Plan To Do Move People Around .
.
CRC Cards New
Ta
sk Functionality
s n i t
%U
. 100 Passed
. . . Tests
Stand Up Next Task or Collective
Meeting Failed Acceptance Test Code Ownership.
d sts Ac
c
ile Te Tes epta
Fa nce t P nce
a ass
. pt ed
ce
.
Day by Ac .
Bug Fixes
Day
. . .
CRC Move People 100% Unit
Cards Around Test Passed
.
Simple . . . .
Complex Change We Need Run All
Design
Problem Pair Help Unit Tests
. .
Failed New Unit
. Unit Test Tests .
Next Task or . . . . Run Failed
Pair Create Pair Continuous
Failed Acceptance Acceptance
Up Unit Test Programming Integration
Test . . Test
Passed New
Unit Test Functionality
. .
Simple Complex
Code Code
. .
. Refactor Acceptance
Merciless Test Passed
. Feedback
.Release Plan
.Months
.Iteration Plan
.Weeks
.Acceptance Test
.Days
.Stand Up Meeting
. .One Day
.Pair Negotiation
.Hours
.Unit Test
.Minutes
.Pair Programming
S. econds
.Code
. Sommaire
.
. .1 Introduction
.
. .2 quipe et rles XP
.
. .3 Pratiques XP
.
. .4 Processus XP
.
. .5 Autres considrations
. XP et la modlisation
.
Can you use UML with XP ? .
..
Yes. You can apply the artifacts of the UML activity diagrams, class diagrams,
collaboration diagrams, component diagrams, deployment diagrams, sequence
diagrams, statechart diagrams, and use case diagrams when you are taking an XP
approach
. to development.
.. .
.
.
How do you use UML with XP ? .
..
Minimally you should apply Agile Modelling and use UML artifacts on your XP project
only where appropriate. Ideally you should apply all of the principles and practices of
Agile
. Modelling when doing so.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 65 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. XP et la documentation
.
Au centre des dbats .
..
On ncrit pas de documentation dans XP : Faux !
.
.
Documentation utilisateur .
..
Manuel utilisateur, Procdure dinstallation...
Ils doivent tre crits, mais planifis comme les tches techniques
.
.. .
.
.
Documents lis au projet .
..
Comptes rendus, Plannings...
.
Introduction leXtreme Programming et au dveloppement agile 66 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. XP et la documentation (cont.)
.
Documentation technique .
..
Document de conception, Diagrammes...
.
.
Autour du programmeur .
..
Code source comme principale production du projet
.
Introduction leXtreme Programming et au dveloppement agile 67 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
.
Sur le plan Organisationnel .
..
Environnement de travail adapt ( War Room )
Hirarchie consentante
Culture dentreprise adapte
Pas de mrite bas sur les heures supplmentaires
Pas de jeu politique (gagnant-gagnant)
Pas dattachement aux mthodes linaires, ou aux tonnes de documents comme
reflet de la qualit
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 68 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
Sur le plan Technique .
..
Possibilit de travailler sur des portions rduites de lapplication
Valable dans le cas dune reprise dun gros projet
Redcouper le logiciel dans un tel cas
Langage de programmation permettant des mcanismes dabstraction et de
factorisation
La plupart des langages objets entrent dans cette catgorie
Disposer dun outil de gestion de versions efficace
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 69 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
. Le problme du contrat...
.
Aujourdhui en France... .
..
Mise en uvre dXP encore peu prsente en entreprise
.
.
Contrats forfaitaires .
..
Un fournisseur sengage un rsultat donn, dans un dlai donn pour un
prix fix
Limites du modle
Primtre fonctionnel rarement clair
Rapports conflictuels
Tout le monde perd
Fige un maximum de paramtres (cahier des charges...)
Difficile de pratiquer XP dans ces conditions
Sauf pour deux entreprises ayant une relation partenariale
Impose lutilisation davenants au contrat
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 70 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
Contrats dassistance technique ( rgie ) .
..
Un fournisseur met disposition du personnel comptent
Le client assure matrise douvrage et matrise duvre
Le fournisseur facture au client le temps pass
Limites du modle
Repousse simplement la question de la matrise duvre
Quelle est lexprience du client dans ce domaine ?
Motivation des collaborateurs mis disposition peut tre un problme
La possibilit dappliquer XP dpendra donc du client
Sil est capable de le faire en interne
Sinon une intervention extrieure peut permettre la transition vers XP
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 71 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
.
Difficults spcifiques la France .
..
Culture institutionnelle franaise
XP est une mthode privilgiant les ralits du terrain
En France, les dcisions partent du management pour se rpercuter sur les
oprationnels
Directions financires attaches au contrat forfaitaire
Budget prvisionnel dans un primtre bien dfini
Besoins rels de lutilisateur financirement inexistants
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 72 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
.
.
Une utopie ? .
..
Mthode profondment humaniste (cf. manifeste agile)
.
.
Matriser XP... .
..
... cest savoir quand ne pas utiliser XP
... cest savoir adapter XP aux besoins courants
.
.. .
.
Introduction leXtreme Programming et au dveloppement agile 73 / 76
Introduction quipe et rles XP Pratiques XP Processus XP Autres considrations
http://www.devx.com/architect/Article/32836
Crystal
Scrum
DSDM
Lean
FDD
AUP
XP
Condition
Small Team 3 3 3 7 7 - 3
Highly Volatile Requirements 3 3 3 3 - - 7
Distributed Teams 7 3 3 3 3 7 7
High Ceremony Culture 7 7 - - 3 - 3
High Criticality Systems 7 - - - - 3 7
Multiple Customers / Stakeholders 7 3 3 - - - 7
The table illustrates which conditions favor (3), discourage (7), or are neutral (-)
http://www.devx.com/architect/Article/32836
LeXtreme Programming
J.L. Bnard, L. Bossavit, R. Mdina, D. Williams
Editions Eyrolles
Extreme Programming Explained
Kent Beck, Cynthia Andres
XProgramming.com
http://xprogramming.com/
Extreme Programming : A gentle
introduction
http://www.extremeprogramming.org/
eXtreme Programming France
http://xp-france.net/
Design Up
http://www.design-up.com/