Académique Documents
Professionnel Documents
Culture Documents
Plan
1 Introduction
Définitions et motivations
Les quatres valeurs d’XP
2 Pratiques XP
Les pratiques de gestion de projet
Les pratiques de programmation
Les pratiques de collaboration
3 Equipe et rôles XP
Technique : programmeur
Domaine : client, testeur
Organisationnel : tracker, manager, coach
Répartitions des rôles
4 Cycle de vie
Cycle de vie XP
XP vs RUP
5 Références
Année Universitaire : 2018/2019 3
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Introduction Définitions et motivations
Questions
Les variables de XP
Le cycle standard XP
Plan
1 Introduction
Définitions et motivations
Les quatres valeurs d’XP
2 Pratiques XP
Les pratiques de gestion de projet
Les pratiques de programmation
Les pratiques de collaboration
3 Equipe et rôles XP
Technique : programmeur
Domaine : client, testeur
Organisationnel : tracker, manager, coach
Répartitions des rôles
4 Cycle de vie
Cycle de vie XP
XP vs RUP
5 Références
Année Universitaire : 2018/2019 9
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Introduction Les quatres valeurs d’XP
Comment mieux travailler avec le client pour nous focaliser sur ses
besoins les plus prioritaires et être aussi réactif que possible ?
Afin de satisfaire les quatre variables, Extreme Programming met en
évidence quatre valeurs essentielle au travers de la méthode :
La communication au sein de l’équipe, avec le client,
La simplicité du code, livrables ne contenant que les exigences du
client,
Le feedback : itérations rapides, permet la réactivité,
Le courage : il faut parfois faire des choix difficiles, cela est facilité par
les trois premières valeurs.
Courage pour se lancer dans un projet sans avoir tout spécifié.
Courage pour se borner à réaliser des choses simples.
Courage pour appliquer les principes de communication et de feedback.
Courage de mettre en place des méthodes nouvelles.
La chose la plus simple qui puisse marcher (The simplest thing that
could possibly work).
L’effort de simplicité s’applique également au client.
Il doit définir ses besoins avec une grande précision pour éviter
d’implémenter des choses inutiles.
La simplicité est également recherchée dans le choix des outils et dans
la méthode de travail elle-même.
Le code devrait être évident et contenir un minimum de commentaires
vraiment utiles!
Les commentaires sont souvent "évidents" et polluent le code.
Les commentaires peuvent être dangereux - Les développeurs modifient
les codes et laissent les commentaires devenus obsolètes.
Les commentaires
Les activités de XP
Plan
1 Introduction
Définitions et motivations
Les quatres valeurs d’XP
2 Pratiques XP
Les pratiques de gestion de projet
Les pratiques de programmation
Les pratiques de collaboration
3 Equipe et rôles XP
Technique : programmeur
Domaine : client, testeur
Organisationnel : tracker, manager, coach
Répartitions des rôles
4 Cycle de vie
Cycle de vie XP
XP vs RUP
5 Références
Année Universitaire : 2018/2019 16
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Pratiques XP Les pratiques de gestion de projet
Plan
1 Introduction
Définitions et motivations
Les quatres valeurs d’XP
2 Pratiques XP
Les pratiques de gestion de projet
Les pratiques de programmation
Les pratiques de collaboration
3 Equipe et rôles XP
Technique : programmeur
Domaine : client, testeur
Organisationnel : tracker, manager, coach
Répartitions des rôles
4 Cycle de vie
Cycle de vie XP
XP vs RUP
5 Références
Année Universitaire : 2018/2019 19
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Pratiques XP Les pratiques de programmation
Remaniement (refactoring)
Les développeurs n’hésitent pas à revenir sur le code écrit pour le
rendre plus «propre»,
le débarrasser d’éventuelles parties inutilisées, et
le préparer à l’ajout de la fonctionnalité suivante.
Cette pratique propose une démarche de conception continue qui fait
émerger la structure de l’application au fur et à mesure du
développement.
Année Universitaire : 2018/2019 20
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Pratiques XP Les pratiques de programmation
Plan
1 Introduction
Définitions et motivations
Les quatres valeurs d’XP
2 Pratiques XP
Les pratiques de gestion de projet
Les pratiques de programmation
Les pratiques de collaboration
3 Equipe et rôles XP
Technique : programmeur
Domaine : client, testeur
Organisationnel : tracker, manager, coach
Répartitions des rôles
4 Cycle de vie
Cycle de vie XP
XP vs RUP
5 Références
Année Universitaire : 2018/2019 22
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Pratiques XP Les pratiques de collaboration
Métaphore (metaphor)
Plan
1 Introduction
Définitions et motivations
Les quatres valeurs d’XP
2 Pratiques XP
Les pratiques de gestion de projet
Les pratiques de programmation
Les pratiques de collaboration
3 Equipe et rôles XP
Technique : programmeur
Domaine : client, testeur
Organisationnel : tracker, manager, coach
Répartitions des rôles
4 Cycle de vie
Cycle de vie XP
XP vs RUP
5 Références
Année Universitaire : 2018/2019 26
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Equipe et rôles XP Technique : programmeur
Programmeur
Va écrire, connaître, modifier, gérer l’existence, la sauvegarde, les
versions, la transformation en exécutable du code.
Va tester le code pour en obtenir un feedback.
Va faire preuve de courage, toute fonctionnalité qui n’a pas été
suffisamment testée doit être considérée comme n’existant pas.
Va poser des questions au client et écouter ses réponses.
C’est le client qui détient la connaissance de ce que doit faire le
système.
Va aider le client à définir ses besoins.
XP fournit un cadre méthodologique pour cela.
Est le seul à avoir la reponsabilité des délais (ni le client, ni le
manager, ni le coach ne peuvent influencer le programmeur dans ses
estimations).
Il est codeur, testeur, concepteur, analyste. Il a la volonté
d’apprendre. A donc un rôle varié.
Année Universitaire : 2018/2019 27
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Equipe et rôles XP Technique : programmeur
Pratiques XP du programmeur
Plan
1 Introduction
Définitions et motivations
Les quatres valeurs d’XP
2 Pratiques XP
Les pratiques de gestion de projet
Les pratiques de programmation
Les pratiques de collaboration
3 Equipe et rôles XP
Technique : programmeur
Domaine : client, testeur
Organisationnel : tracker, manager, coach
Répartitions des rôles
4 Cycle de vie
Cycle de vie XP
XP vs RUP
5 Références
Année Universitaire : 2018/2019 30
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Equipe et rôles XP Domaine : client, testeur
Client
Qui est-il ?
Pas nécessairement le client contractuel.
Assistant à maîtrise d’ouvrage.
Représentant des utilisateurs.
A défaut quelqu’un pour agir comme client «artificiel».
Chef de projet.
Ingénieur chargé des spécifications.
Client
Scénarios clients
Description informelle d’une fonctionnalité ou d’une interaction avec
l’utilisateur. Le plus simple possible.
Démarrage du projet
Des scénarios initiaux sont dégagés et présentés. Ils sont classés par
priorité et répartis en itérations.
A chaque itération...
Grâce au feedback introduit (logiciel fonctionnel) :
Il peut revoir le contenu des itérations.
Modifier ses scénarios.
Il est garant des fonctionnalités du logiciel.
Client
Tests de recette
Données concrètes levant les ambiguïtés.
Preuve que le système fait ce qu’il demandait.
A chaque fin d’itération tous les tests de recette doivent passer avec
succès.
Pratiques XP client
1 Planification itérative.
2 Rédaction des scénarios clients.
3 Séances de planification.
4 Tests de recettes.
5 Intégration continue.
6 Rythme durable.
Année Universitaire : 2018/2019 33
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Equipe et rôles XP Domaine : client, testeur
Le client a le droit :
a un plan d’ensemble, montrant ce qui peut être accompli, pour quand,
à quel coût.
d’obtenir le plus de valeur possible de chaque semaine de
programmation.
de voir des progrès sur une application qui marche, comme doivent le
prouver les tests répétables qu’il spécifie.
de changer d’avis, de substituer des fonctionnalités et de changer ses
priorités sans en payer un prix exorbitant.
d’être informé des modifications portées au calendrier de réalisation,
assez tôt pour avoir la possibilité de réduire le périmètre fonctionnel et
retomber ainsi sur la date de livraison initiale.
d’annuler le projet à tout moment et de disposer d’une application utile
et utilisable en contrepartie de son investissement.
Testeur
Pratiques XP Testeur
1 Suivi des tests (planification itérative).
2 Tests de recette.
3 Intégration continue.
4 Rythme durable.
Année Universitaire : 2018/2019 35
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Equipe et rôles XP Organisationnel : tracker, manager, coach
Plan
1 Introduction
Définitions et motivations
Les quatres valeurs d’XP
2 Pratiques XP
Les pratiques de gestion de projet
Les pratiques de programmation
Les pratiques de collaboration
3 Equipe et rôles XP
Technique : programmeur
Domaine : client, testeur
Organisationnel : tracker, manager, coach
Répartitions des rôles
4 Cycle de vie
Cycle de vie XP
XP vs RUP
5 Références
Année Universitaire : 2018/2019 36
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Equipe et rôles XP Organisationnel : tracker, manager, coach
Tracker
Qui est-il ?
Pas un supérieur hiérarchique.
Quelqu’un a qui on peut se confier.
De préférence pas un programmeur, mais quelqu’un d’extérieur.
Pratiques XP tracker
1 Planfication itérative.
Année Universitaire : 2018/2019 37
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Equipe et rôles XP Organisationnel : tracker, manager, coach
Manager
Responsabilités
Il s’occupe matériellement de l’équipe.
Il demande des comptes (sur les engagements pris).
Interface avec l’extérieur (dans le cadre d’un sous-projet).
Pratiques XP manager
Scénarios client, Planification itérative, Rythme durable.
Année Universitaire : 2018/2019 38
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Equipe et rôles XP Organisationnel : tracker, manager, coach
Coach
Responsabilités
Garant du processus.
Organise et anime les séances de planification.
Aide le client à rédiger ses premiers scénarios.
Doit avoir le courage de dire les choses telles qu’elles sont.
Il réunit tout les autres rôles.
Vérifie que chaque rôle est respecté.
Objectifs du coach : que l’équipe fonctionne bien, sans lui...
Ses qualités : Expert de la méthode XP, Expert technique,
Programmeur chevronné, Architecte, Pédagogue et sensible.
Pratiques XP coach
Toutes !
Année Universitaire : 2018/2019 39
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Equipe et rôles XP Répartitions des rôles
Plan
1 Introduction
Définitions et motivations
Les quatres valeurs d’XP
2 Pratiques XP
Les pratiques de gestion de projet
Les pratiques de programmation
Les pratiques de collaboration
3 Equipe et rôles XP
Technique : programmeur
Domaine : client, testeur
Organisationnel : tracker, manager, coach
Répartitions des rôles
4 Cycle de vie
Cycle de vie XP
XP vs RUP
5 Références
Année Universitaire : 2018/2019 40
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Equipe et rôles XP Répartitions des rôles
Plan
1 Introduction
Définitions et motivations
Les quatres valeurs d’XP
2 Pratiques XP
Les pratiques de gestion de projet
Les pratiques de programmation
Les pratiques de collaboration
3 Equipe et rôles XP
Technique : programmeur
Domaine : client, testeur
Organisationnel : tracker, manager, coach
Répartitions des rôles
4 Cycle de vie
Cycle de vie XP
XP vs RUP
5 Références
Année Universitaire : 2018/2019 44
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Cycle de vie Cycle de vie XP
Exploration et planning
Exploration
Les développeurs se penchent sur des questions techniques.
Explorer les différentes possibilités d’architecture pour le système.
Etudier par exemple les limites au niveau des performances présentées
par chacune des solutions possibles.
Le client s’habitue à exprimer ses besoins sous forme de user strories
(proches de diagrammes de cas illustrés par des diagrammes de
séquences). Les développeurs estiment les temps de développement.
Planning
Planning de la première release : uniquement les fonctionnalités
essentielles et la première release à enrichir par la suite.
Durée du planning : 1 ou 2 jours.
Première version (release) au bout de 2 à 6 mois.
Année Universitaire : 2018/2019 46
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Cycle de vie Cycle de vie XP
Mise en production
Maintenance et mort
Maintenance
Continuer à faire fonctionner le système.
Adjonction de nouvelles fonctionnalités secondaires.
Pour les fonctionnalités secondaires, on recommence par une rapide
exploration.
L’ajout de fonctionnalités secondaires donne lieu à de nouvelles releases.
Mort
Quand le client ne parvient plus à spécifier de nouveaux besoins, le
projet est dit mort.
Soit que tous les besoins possibles sont remplis.
Soit que le système ne supporte plus de nouvelles modifications en
restsant rentable.
Plan
1 Introduction
Définitions et motivations
Les quatres valeurs d’XP
2 Pratiques XP
Les pratiques de gestion de projet
Les pratiques de programmation
Les pratiques de collaboration
3 Equipe et rôles XP
Technique : programmeur
Domaine : client, testeur
Organisationnel : tracker, manager, coach
Répartitions des rôles
4 Cycle de vie
Cycle de vie XP
XP vs RUP
5 Références
Année Universitaire : 2018/2019 50
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Cycle de vie XP vs RUP
A chacun son XP
XP n’est pas une approche dogmatique, elle se fonde sur des valeurs
et quelques principes dont la mise en oeuvre très libre appartient à
chaque équipe ;
L’industrialisation du Genie Logiciel, le mouvement pour la qualité, le
diktat du management nous avait peu à peu fait oublier qu’il n’y a pas
de logiciel sans développeurs ;
XP met l’accent sur l’importance des facteurs humains et redonne aux
développeurs la place qu’ils avaient peu à peu perdue.
Inconvénients de XP
Focalisation sur l’aspect individuel du développement, au détriment
d’une vue globale et des pratiques de management ou de formalisation.
Manquer de contrôle et de structuration, risques de dériveLe modèle
d’implémentation qui définit les composants.
Inconvénients de RUP
Fait tout, mais lourd, usine à gaz.
Parfois difficile à mettre en oeuvre de façon spécifique.
XP vs RUP
XP pour les petits projets en équipe de 12 max.
RUP pour les gros projets qui génèrent beaucoup de documentation.
Année Universitaire : 2018/2019 52
Prof. Said El Kafhali Chapitre 3 : Extreme Programming (XP) / 53
Références
Références