1. Be prepared for changes!
Hortis GRC SA - www.hortis.ch
Introduction à XP
2. eXtreme Programming,
une introduction
Par Didier Besset
didier.besset@hortis.ch
Hortis GRC SA - www.hortis.ch
3. Coût du développement software
10000
8000
6000
Cost
But de XP
4000
2000
0
0 5 10 15 20
Time
Barry W. Boehm , Software Engineering Economics, Prentice Hall PTR, 1981;
ISBN: 0138221227
3
Hortis GRC SA - www.hortis.ch
Introduction à XP
4. eXtreme Programming: principes
Développement itératifs,
Plannification adaptable, pas rigide,
Architecture évolutive, non-contraignante,
Des tests, des tests, et encore des tests,
Be prepared for changes!
4
Hortis GRC SA - www.hortis.ch
Introduction à XP
5. La Métaphore du Cycle
eXtreme
Programming
Méthodologies Rapid
Application
Héritées des
gros systèmes Development5
7. Perspective littéraire
Voltaire (1694-1778),
Dictionaire Philosophique :
“ Le bon sens est la chose du monde la mieux
partagée, car chacun pense en être bien pourvu.”
7
Hortis GRC SA - www.hortis.ch
Introduction à XP
8. eXtreme Programming en quelques mots
Utilisation du bon sens,
Faire les choses simplement,
Priviliégier la communication,
Interagir de près avec le client;
Faire tout cela à 100%,
Sans compromis!
Be prepared for changes!
8
Hortis GRC SA - www.hortis.ch
Introduction à XP
9. Perspective littéraire
René Descartes (1596-1650),
Discours de la méthode :
• “ ... La seconde, de diviser chacune des difficultés que
j’examinerais, en autant de parcelles qu’il se pourrait, et
qui serait requis pour les mieux résoudre.”
(page 47 de l’édition G.F. 1966)
9
Hortis GRC SA - www.hortis.ch
Introduction à XP
10. Méthodologie “Cascade”
Analyse
Années
Design
Code
Analyse dépassée!
Test
10
Hortis GRC SA - www.hortis.ch
Introduction à XP
11. Application de la 2ème méthode de Descartes
Fonctions Tâches
Projet Analyse
Analyse
Design
Code
Analyse Design
Test
Analyse
Code Design
Jours
Code
Test
Design Test
Années Analyse
Analyse Design
Code
Design Test
SemainesAnalyse
Code Design
Code
Code
Test
Analyse
Test
Design
Analyse
Test Code
Test
Design Analyse
Design
Code Code
Test
Analyse
Test Design
Code
Test
11
Hortis GRC SA - www.hortis.ch
Introduction à XP
12. Plannification à la SCRUM
Client et développeurs écrivent ensembles les
fonctionalités sur un support (cartes ou JIRA):
User stories;
Le client donne des priorités à chaque
fonctionalités ,
Les développeurs fractionnent chaque
fonctionalité en tâches,
Les développeurs attribuent “une mesure de
complexité” à chaque tâche.
12
Hortis GRC SA - www.hortis.ch
Introduction à XP
13. Plannification à la SCRUM
La mesure de complexité peut se convertir en
temps de réalisation,
vélocité (auto-calibrée!);
La complexité de chaque fonctionalité est
calculée comme la somme des complexités de
chaque tâche,
Le client décide alors de la prochaine livraison
du système.
13
Hortis GRC SA - www.hortis.ch
Introduction à XP
14. Plannification à la SCRUM
Si une date de livraison est en passe d’être
dépassée...
... on signale le probléme au client...
... qui décidera des fonctionalités a retirer pour
conserver la date de livraison;
Après une “bonne” livraison, le client décide de
la mise en service.
14
Hortis GRC SA - www.hortis.ch
Introduction à XP
15. Structure en itérations et livraisons
User Stories
Sénarios de test
New user
Requirements Bugs
stories
Plannifi- Release Latest Recette
Iteration Acceptance Livraison
plan version client
cation
Structure
Estimation de
Architecture la vélocité
15
Hortis GRC SA - www.hortis.ch
Introduction à XP
16. Les 8 chemins vers XP
Sépar. métier et technique Simplicité
Test Programmer en paires
Intégration continue Code à tous
Livraisons fréquentes Refactoring
16
Hortis GRC SA - www.hortis.ch
Introduction à XP
17. Séparation métier et technique
Le client connait son métier,
Les développeurs connaissent leurs outils,
Le client définit les priorités,
Les développeurs définissent les délais.
17
Hortis GRC SA - www.hortis.ch
Introduction à XP
18. Séparation métier et technique
Le client a le dernier mot pour
doit les développeurs pas!
décider des enchainements (workflow),
définir les champs, les menus et les boutons,
choisir une charte graphique;
Les développeurs ont le dernier mot pour pas!
doivent le client
décider d’une architecture,
choisir leurs outils (langage, data base, etc...),
définir les classes et les interfaces.
18
Hortis GRC SA - www.hortis.ch
Introduction à XP
19. Tests
Test Driven Design:
Écrire un test avant de coder;
Tests unitaires écrits par les développeurs:
Tester tout ce qui peut “foirer”,
utiliser les valeurs limites;
Tests d’acceptance écrits par le client:
Vérification des requirements,
Bon départ pour la documentation;
Be prepared for changes!
19
Hortis GRC SA - www.hortis.ch
Introduction à XP
20. Intégration Continue
Chaque changement est immédiatement
inclus dans un système déployé,
Le déploiement fait partie du développement,
Un système utilisable existe en permanence,
les développeurs peuvent essayer le système,
le client aussi!
Be prepared for changes!
20
Hortis GRC SA - www.hortis.ch
Introduction à XP
21. Livraisons fréquentes
Conséquence directe du principe d’intégration
continue,
Le client a le système en main le plus tôt
possible,
Cela lui donne l’occasion de réagir avant qu’il
ne soit trop tard,
Choc des nouvelles fonctionnalités atténué,
Be prepared for changes!
21
Hortis GRC SA - www.hortis.ch
Introduction à XP
22. Simplicité
Écrire du code lisible (pas de virtuosité),
Les autres doivent pouvoir le lire,
vous aussi, après quelques semaines!
Les intentions doivent être claires:
Utiliser des standards (format, coding),
Éviter les abbréviations,
Éviter les commentaires;
Ne pas prévoir le futur (vous n’êtes pas devin):
C’est une perte de temps pour aujourd’hui,
Ce sera une perte de temps demain!
22
Hortis GRC SA - www.hortis.ch
Introduction à XP
23. Programmation par paires
2 personnes font plus que le double de travail,
“One types while the other thinks,”
Une variation des paires est le meilleur moyen
de faire circuler l’information,
Les nouveaux venus sont promptement
intégrés,
Les juniors apprennent beaucoup plus vite...
… et donc, contribuent beaucoup plus vite!
23
Hortis GRC SA - www.hortis.ch
Introduction à XP
24. Le code appartient à tous
Chaque développeur doit savoir tout faire,
Pas de chasse gardée, pas de “prima donna”,
Personne ne doit être indispensable,
Donc, le projet ne s’arrêtera pas si quelqu’un
s’absente,
Le principe de simplicité est un pré-requis.
24
Hortis GRC SA - www.hortis.ch
Introduction à XP
25. Refactoring
Amélioration continue qui fait partie du
développement,
Architecture évolutive, qui s’adapte:
“This skill helps develop software that stays soft,
and allows more focus on features and less on
infrastructure, delivering more value without
risking the long term.” (Ron Jeffries)
Be prepared for changes!
25
Hortis GRC SA - www.hortis.ch
Introduction à XP
26. Conséquences sur le code
Coder dans l’ordre suivant:
“Make it run ”
Créer un cas test, le faire passer,
“Make it good ”
Refactorer le code pour en améliorer la lisibilité et
l’architecture,
“Make it fast ”
Si besoin est, optimiser l’exécution;
“Say things once and once only! ”
Ne rien duplifier
“extract method” au lieu de “cut&paste”.
26
Hortis GRC SA - www.hortis.ch
Introduction à XP
27. Les 8 chemins vers XP (conclusion)
Sépar. métier et technique Simplicité
Customers know their business, Clearly stated code, no duplicated logic,
Developer team knows how to use the tools. fewest number of objects.
Test Programmer en paires
“One types, the other thinks”. This ensures
Automated tests ensure that a change does
not create new errors. Business test cases. the best communication within the team.
Intégration continue Code à tous
Anyone would can contribute to the code will.
Customers can always see a working version.
Customers get the best of our developers.
Full control over development.
Livraisons fréquentes Refactoring
Customers make their product evolve with When adding a new feature, existing code is
the market. Changes are possible on the fly. adapted if needed, ensuring code reuse.
27
Hortis GRC SA - www.hortis.ch
Introduction à XP
28. Questions
?
28
Hortis GRC SA - www.hortis.ch
Introduction à XP