SlideShare uma empresa Scribd logo
1 de 53
Sommaire :
Historique
II.
Définition
III. Les valeurs d'eXtreme Programming
IV. Les principales pratique
V.
Projet XP
VI. Cycle de vie
VII. Membre d’équipe et rôles
VIII. Forces et faiblesses
I.
I - Historique:


L'Extreme Programming a été inventée
par Kent Beck, Ward Cunningham et Ron
Jeffries pendant leur travail sur un projet
« C3 » de calcul des rémunérations chez
Chrysler. Kent Beck, chef de projet en mars
1996 commença à affiner la méthode de
développement utilisée sur le projet. Celle-ci
est née officiellement en octobre 1999 avec
le livre «Extreme Programming
Explained »de Kent Beck.
II - Définition :


XP est l’une des méthodes agiles qui se
base sur la suppression des existants dans
un projet qui contient des besoins
changeants, elle pousse à l’extreme des
principes simple.



Les pères de la méthode, Ward
Cunningham et Kent Beck définissent
eXtreme Programming comme "une
méthode basée sur des pratiques qui sont
autant de boutons de contrôle poussés au
maximum".
III - Les valeurs d'eXtreme
Programming
Les valeurs du l’eXtreme
Programming sont :
Communication
 Simplicité
 Feedback
 Courage
 Respect

Communication :
L'absence de communication est certainement l'un des
défauts les plus graves qui mettent en péril un projet.
Diverses pratiques XP tendent à rendre la
communication omniprésente entre tous les
intervenants :
 entre développeurs (programmation en binôme)
 entre développeurs et managers (tests, estimations)
 entre développeurs et clients (tests, spécifications).
Simplicité :


Cette valeur de simplicité repose sur le pari
qu'il coûte moins cher de développer un
système simple aujourd'hui quitte à devoir
engager de nouveaux frais plus tard pour
rajouter des fonctionnalités
supplémentaires plutôt que de concevoir
dès le départ un système très compliqué
dont on risque de n'avoir plus besoin dans
un avenir proche.
Feedback :
Le retour est immédiat pour les développeurs grâce aux
tests unitaires. Pour les clients, le retour se fait à
l'échelle de quelques jours grâce aux tests fonctionnels
qui leur permettent d'avoir une vision permanente de
l'état du système.
Un feedback permanent est positif pour :
 le client qui a une bonne vision du projet, peut détecter
tout écart par rapport au planning et à ses attentes de
manière à les corriger rapidement.
 les développeurs, il lui permet de repérer et de corriger
les erreurs beaucoup plus facilement.
Courage :
Du courage est nécessaire aussi bien chez le client que chez les
développeurs.
Pour mener à bien un projet XP, le client doit avoir le courage de :
 donner un ordre de priorité à ses exigences.
 reconnaître que certains de ses besoins ne sont pas toujours très
clairs.
le développeur doit avoir le courage de :
 modifier l'architecture même si le développement est déjà bien
avancé.
 jeter du code existant et d'accepter qu'il est parfois plus rapide et
efficace de réécrire une portion de code à partir de zéro plutôt que
de bricoler du code existant.
Respect :



Les relations entre l’équipe de
developpement et le client et même
entre eux doivent êtres baser sur le
respect mutuel.
IV - Les principales pratique
Les principaux pratiques de
l’XP sont :













Planning game
Petites releases
Utilisation de métaphores
Conception simple
Tests (unitaires et fonctionnels)
Refactoring du code
Programmation en binôme
Appropriation collective du code
Intégration continue
Pas de surcharge de travail
Client sur site
Standards de code
Planning game :
Cette pratique a pour but de planifier uniquement les releases. La
planification se fait sous forme de jeu auquel participent les
développeurs et le client . Cette pratique est constituée de
deux phases :


première phase dite d'exploration, le client exprime ses
besoins en termes de fonctionnalités. Pour cela, il les écrit
sous forme de "user stories" .



deuxième phase dite d'engagement, les user stories sont
triées en fonction de la valeur qu'elles apportent au client et
des risques encourus lors de leur développement. Ceci permet
d'aboutir à les classer par ordre de priorité.



Troisième phase dite de direction permet de mettre à jour le
planning de la prochaine release.
User stories
Petites releases :


Pour une bonne gestion des risques, la sortie
des releases doit intervenir le plus souvent
possible.



D'une version à l'autre, l'évolution doit être la
plus petite possible, tout en s'efforçant
d'apporter le plus de valeur ajoutée et des
fonctionnalités dans leur intégralité.
Utilisation de métaphores :


XP recommande d'utiliser des métaphores
pour décrire l'architecture du système. De
telles images permettent à tout le monde
d'avoir une vision globale du système et d'en
comprendre les éléments principaux ainsi
que leurs interactions.
Conception simple :
La simplicité est une des valeurs fondamentales d'XP. Il
faut toujours développer la solution la plus simple
possible et éviter de développer plus que ce dont on
a besoin.
les exigences sont :
 satisfaire tous les tests.
 ne jamais dupliquer une logique
 utiliser le moins possible de classes et de méthodes.

Ceux qui pratiquent XP résument cela sous la phrase
YAGNI ("You ain't gonna need it", « vous n’en aurez
pas besoin »).
Tests (unitaires et fonctionnels) :
Les tests unitaires sont écrits et effectués par
les développeurs pour vérifier le bon
fonctionnement et la non régression des
méthodes ou des constructeurs.
 Les tests fonctionnels sont conçus par le client
et lui permettent de :


 vérifier le fonctionnement global du système.
 contrôler l'évolution du projet.

 affiner l'expression de ses besoins.
Pour une qualité de code encore meilleure, il est
recommandé d'écrire les tests avant le code de
l'application.
Refactoring du code :
Le but de cette pratique est de simplifier le
code, tout en faisant en sorte que tous les
tests soient satisfaits.
 D'un point de vue purement fonctionnel, cette
simplification n'est pas nécessaire.
 le refactoring du code a pour but de :


 assurer que l'ajout de fonctionnalités

supplémentaires sera facilité.
 tendre à produire un code mieux pensé, plus
modulaire, sans duplications de code et donc plus
facile à maintenir.
Programmation en binôme :
Toute l'écriture du code se fait à deux
personnes sur une même machine, avec une
seule souris et un seul clavier.
 On distingue deux rôles :


○ le pilote ("driver"), celui qui a le clavier, cherche la

meilleure approche sur une portion de code bien
précise.
○ le "partner" peut observer avec beaucoup plus de
recul et ainsi suggérer d'autres solutions ou
soulever des problèmes d'ordre plus général.
Appropriation collective du code :


Toute l'équipe est sensée connaître la totalité
du code.



Cela implique que tout le monde peut
intervenir pour faire des ajouts ou des
modifications sur une portion de code qu'il n'a
pas écrit lui même si cela s'avère nécessaire.
Intégration continue :


Après chaque fin de tâche le code
nouvellement écrit doit être intégré à
l'existant de manière à avoir à tout
moment un existant fonctionnel qui
passe avec succès tous les tests.
Pas de surcharge de travail :
L'objectif est de ne pas dépasser 40
heures de travail par semaine pour les
développeurs.
 Il ne s'agit pas de chercher à travailler
peu, mais les spécialistes d' eXtreme
Programming ont pris conscience du fait
que la surcharge de travail, en plus
d'être désagréable, est néfaste.

Client sur site :


le client est intégré à l’équipe pour définir
précisément les besoins, arbitrer sur les
priorités et visualiser « en direct » le résultat
des développements.



Pour une meilleure communication, le client
et les développeurs travaillent dans le même
espace autant que possible.
Standards de code :


Il est nécessaire de disposer de normes de
nommage et de programmation pour que
chacun puisse lire et comprendre facilement
le code produit par les autres.
V - Projet XP
Projet XP :
Itération :
Développement :
Appropriation collective du code
:
VI - Cycle de vie
Cycle de vie :
VII - Membre d’équipe et rôles
Membre d’équipe et rôles :
Développeur :
Il est l'élément principal d'un projet XP. Son rôle est
d’écrire des lignes de code, rajouter des
fonctionnalités, simplifier et optimiser son code mais
aussi d’avoir la qualité de communiquer et du courage.


Client :
Le client est l'autre moitié du duo essentiel dans
l'approche eXtreme Programming. Le développeur sait
comment programmer et le client sait quoi
programmer.

Testeur :
Étant donné que les tests unitaires sont à la
charge des développeurs, le testeur a pour
rôle d'aider le client à choisir et à écrire ses
tests fonctionnels.


Tracker :
C'est un peu la conscience de l'équipe. Son rôle
est d'aider l'équipe à mieux estimer le temps
nécessaire à l'implémentation de chaque user
story et de garder un œil sur le planning en
relation avec l'avancement réel du projet.

Coach :
Le coach a la responsabilité globale de tout le
processus. Son rôle est de recadrer le projet,
d'ajuster les procédures. Toute la difficulté de
sa tâche réside dans le fait qu'il se doit
d'intervenir de la manière la moins intrusive
possible.
 Consultant :
Le rôle d'un consultant est d'apporter à l'équipe
les connaissances nécessaires pour qu'ils
résolvent eux mêmes leur problème et non de
leur apporter une solution toute faite.



Big Boss :

Le Big Boss apporte à l'équipe courage et
confiance.
VII - Forces et faiblesses


Forces :
 Extreme Programming apparaît comme la plus

radicale des méthodes agiles.
 XP se révèle particulièrement efficace dans le

cadre de petits projets.
 XP réalise des applications de qualité grâce à la

rigueur imposée sur les tests, qui plus est collent
au désirs du client puisque celui-ci est intégré au
projet de A à Z.


Faiblesses :
 XP n'est pas applicable dans tous les cas.
 Le cas d'une équipe supérieure à une douzaine de

personnes est un autre exemple où XP est
difficilement adaptable car le nombre risque de
ralentir, d'alourdir les procédures et de rendre la
communication plus difficile et moins efficace.
 En ce qui concerne les développeurs, la pratique

de la programmation en binôme n'est pas
forcément très bien ressentie par tous.
Question ?
Merci pour votre attention

Mais conteúdo relacionado

Mais procurados

rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
Siwar GUEMRI
 
Méthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesMéthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiques
Sirine Barguaoui
 
La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoins
Ismahen Traya
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
Lina Meddeb
 
Rapport gestion de stock.pdf
Rapport gestion de stock.pdfRapport gestion de stock.pdf
Rapport gestion de stock.pdf
AchrafAntri2
 

Mais procurados (20)

rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
 
réaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testréaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de test
 
Méthode d'Agile: Scrum
Méthode d'Agile: ScrumMéthode d'Agile: Scrum
Méthode d'Agile: Scrum
 
Les méthodes Agiles - Introduction
Les méthodes Agiles - IntroductionLes méthodes Agiles - Introduction
Les méthodes Agiles - Introduction
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
 
Agile presentation
Agile presentationAgile presentation
Agile presentation
 
Méthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesMéthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiques
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développement
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vie
 
La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoins
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
 
Scrum Guide
Scrum GuideScrum Guide
Scrum Guide
 
Rapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueRapport pfe isi_Big data Analytique
Rapport pfe isi_Big data Analytique
 
Présentation des principes Scrum
Présentation des principes ScrumPrésentation des principes Scrum
Présentation des principes Scrum
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
 
Rapport gestion de stock.pdf
Rapport gestion de stock.pdfRapport gestion de stock.pdf
Rapport gestion de stock.pdf
 
Méthodes agiles
Méthodes agilesMéthodes agiles
Méthodes agiles
 
Les principales méthodes de gestion de projets
Les principales méthodes de gestion de projetsLes principales méthodes de gestion de projets
Les principales méthodes de gestion de projets
 
Présentation scrum pour cours leeaarn
Présentation scrum pour cours leeaarnPrésentation scrum pour cours leeaarn
Présentation scrum pour cours leeaarn
 
Methodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifiéMethodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifié
 

Semelhante a Method XP

Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1
DIALLO Boubacar
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
laurent_opnworks
 

Semelhante a Method XP (20)

Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
 
12 agile
12 agile12 agile
12 agile
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
 
CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?
CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?
CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?
 
RA et CCDS - Séance 1.pptx
RA et CCDS - Séance 1.pptxRA et CCDS - Séance 1.pptx
RA et CCDS - Séance 1.pptx
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221
 
4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel
 
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
qualimétrie logiciel -  Entreprise Software Analytic - nov 2015qualimétrie logiciel -  Entreprise Software Analytic - nov 2015
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficience
 
Gestion de projet #2 : méthodes
Gestion de projet #2 : méthodesGestion de projet #2 : méthodes
Gestion de projet #2 : méthodes
 
L'Approche SMV de COGENIT
L'Approche SMV de COGENITL'Approche SMV de COGENIT
L'Approche SMV de COGENIT
 
Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1
 
qualité logicielle (8).pdf
qualité logicielle (8).pdfqualité logicielle (8).pdf
qualité logicielle (8).pdf
 
Article de référence de Winston Royce
Article de référence de Winston RoyceArticle de référence de Winston Royce
Article de référence de Winston Royce
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
 
Methodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPMethodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XP
 
Agile - Que le choc commence !
Agile - Que le choc commence !Agile - Que le choc commence !
Agile - Que le choc commence !
 
introduction génie logiciel-1.ppt
introduction génie logiciel-1.pptintroduction génie logiciel-1.ppt
introduction génie logiciel-1.ppt
 

Último

Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
Faga1939
 

Último (13)

Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 

Method XP

  • 1.
  • 2.
  • 3. Sommaire : Historique II. Définition III. Les valeurs d'eXtreme Programming IV. Les principales pratique V. Projet XP VI. Cycle de vie VII. Membre d’équipe et rôles VIII. Forces et faiblesses I.
  • 5.  L'Extreme Programming a été inventée par Kent Beck, Ward Cunningham et Ron Jeffries pendant leur travail sur un projet « C3 » de calcul des rémunérations chez Chrysler. Kent Beck, chef de projet en mars 1996 commença à affiner la méthode de développement utilisée sur le projet. Celle-ci est née officiellement en octobre 1999 avec le livre «Extreme Programming Explained »de Kent Beck.
  • 7.  XP est l’une des méthodes agiles qui se base sur la suppression des existants dans un projet qui contient des besoins changeants, elle pousse à l’extreme des principes simple.  Les pères de la méthode, Ward Cunningham et Kent Beck définissent eXtreme Programming comme "une méthode basée sur des pratiques qui sont autant de boutons de contrôle poussés au maximum".
  • 8. III - Les valeurs d'eXtreme Programming
  • 9. Les valeurs du l’eXtreme Programming sont : Communication  Simplicité  Feedback  Courage  Respect 
  • 10. Communication : L'absence de communication est certainement l'un des défauts les plus graves qui mettent en péril un projet. Diverses pratiques XP tendent à rendre la communication omniprésente entre tous les intervenants :  entre développeurs (programmation en binôme)  entre développeurs et managers (tests, estimations)  entre développeurs et clients (tests, spécifications).
  • 11. Simplicité :  Cette valeur de simplicité repose sur le pari qu'il coûte moins cher de développer un système simple aujourd'hui quitte à devoir engager de nouveaux frais plus tard pour rajouter des fonctionnalités supplémentaires plutôt que de concevoir dès le départ un système très compliqué dont on risque de n'avoir plus besoin dans un avenir proche.
  • 12. Feedback : Le retour est immédiat pour les développeurs grâce aux tests unitaires. Pour les clients, le retour se fait à l'échelle de quelques jours grâce aux tests fonctionnels qui leur permettent d'avoir une vision permanente de l'état du système. Un feedback permanent est positif pour :  le client qui a une bonne vision du projet, peut détecter tout écart par rapport au planning et à ses attentes de manière à les corriger rapidement.  les développeurs, il lui permet de repérer et de corriger les erreurs beaucoup plus facilement.
  • 13. Courage : Du courage est nécessaire aussi bien chez le client que chez les développeurs. Pour mener à bien un projet XP, le client doit avoir le courage de :  donner un ordre de priorité à ses exigences.  reconnaître que certains de ses besoins ne sont pas toujours très clairs. le développeur doit avoir le courage de :  modifier l'architecture même si le développement est déjà bien avancé.  jeter du code existant et d'accepter qu'il est parfois plus rapide et efficace de réécrire une portion de code à partir de zéro plutôt que de bricoler du code existant.
  • 14. Respect :  Les relations entre l’équipe de developpement et le client et même entre eux doivent êtres baser sur le respect mutuel.
  • 15. IV - Les principales pratique
  • 16. Les principaux pratiques de l’XP sont :             Planning game Petites releases Utilisation de métaphores Conception simple Tests (unitaires et fonctionnels) Refactoring du code Programmation en binôme Appropriation collective du code Intégration continue Pas de surcharge de travail Client sur site Standards de code
  • 17. Planning game : Cette pratique a pour but de planifier uniquement les releases. La planification se fait sous forme de jeu auquel participent les développeurs et le client . Cette pratique est constituée de deux phases :  première phase dite d'exploration, le client exprime ses besoins en termes de fonctionnalités. Pour cela, il les écrit sous forme de "user stories" .  deuxième phase dite d'engagement, les user stories sont triées en fonction de la valeur qu'elles apportent au client et des risques encourus lors de leur développement. Ceci permet d'aboutir à les classer par ordre de priorité.  Troisième phase dite de direction permet de mettre à jour le planning de la prochaine release.
  • 18.
  • 20.
  • 21. Petites releases :  Pour une bonne gestion des risques, la sortie des releases doit intervenir le plus souvent possible.  D'une version à l'autre, l'évolution doit être la plus petite possible, tout en s'efforçant d'apporter le plus de valeur ajoutée et des fonctionnalités dans leur intégralité.
  • 22. Utilisation de métaphores :  XP recommande d'utiliser des métaphores pour décrire l'architecture du système. De telles images permettent à tout le monde d'avoir une vision globale du système et d'en comprendre les éléments principaux ainsi que leurs interactions.
  • 23. Conception simple : La simplicité est une des valeurs fondamentales d'XP. Il faut toujours développer la solution la plus simple possible et éviter de développer plus que ce dont on a besoin. les exigences sont :  satisfaire tous les tests.  ne jamais dupliquer une logique  utiliser le moins possible de classes et de méthodes. Ceux qui pratiquent XP résument cela sous la phrase YAGNI ("You ain't gonna need it", « vous n’en aurez pas besoin »).
  • 24. Tests (unitaires et fonctionnels) : Les tests unitaires sont écrits et effectués par les développeurs pour vérifier le bon fonctionnement et la non régression des méthodes ou des constructeurs.  Les tests fonctionnels sont conçus par le client et lui permettent de :   vérifier le fonctionnement global du système.  contrôler l'évolution du projet.  affiner l'expression de ses besoins.
  • 25. Pour une qualité de code encore meilleure, il est recommandé d'écrire les tests avant le code de l'application.
  • 26. Refactoring du code : Le but de cette pratique est de simplifier le code, tout en faisant en sorte que tous les tests soient satisfaits.  D'un point de vue purement fonctionnel, cette simplification n'est pas nécessaire.  le refactoring du code a pour but de :   assurer que l'ajout de fonctionnalités supplémentaires sera facilité.  tendre à produire un code mieux pensé, plus modulaire, sans duplications de code et donc plus facile à maintenir.
  • 27. Programmation en binôme : Toute l'écriture du code se fait à deux personnes sur une même machine, avec une seule souris et un seul clavier.  On distingue deux rôles :  ○ le pilote ("driver"), celui qui a le clavier, cherche la meilleure approche sur une portion de code bien précise. ○ le "partner" peut observer avec beaucoup plus de recul et ainsi suggérer d'autres solutions ou soulever des problèmes d'ordre plus général.
  • 28.
  • 29. Appropriation collective du code :  Toute l'équipe est sensée connaître la totalité du code.  Cela implique que tout le monde peut intervenir pour faire des ajouts ou des modifications sur une portion de code qu'il n'a pas écrit lui même si cela s'avère nécessaire.
  • 30.
  • 31.
  • 32. Intégration continue :  Après chaque fin de tâche le code nouvellement écrit doit être intégré à l'existant de manière à avoir à tout moment un existant fonctionnel qui passe avec succès tous les tests.
  • 33. Pas de surcharge de travail : L'objectif est de ne pas dépasser 40 heures de travail par semaine pour les développeurs.  Il ne s'agit pas de chercher à travailler peu, mais les spécialistes d' eXtreme Programming ont pris conscience du fait que la surcharge de travail, en plus d'être désagréable, est néfaste. 
  • 34. Client sur site :  le client est intégré à l’équipe pour définir précisément les besoins, arbitrer sur les priorités et visualiser « en direct » le résultat des développements.  Pour une meilleure communication, le client et les développeurs travaillent dans le même espace autant que possible.
  • 35.
  • 36. Standards de code :  Il est nécessaire de disposer de normes de nommage et de programmation pour que chacun puisse lire et comprendre facilement le code produit par les autres.
  • 42. VI - Cycle de vie
  • 44. VII - Membre d’équipe et rôles
  • 45. Membre d’équipe et rôles : Développeur : Il est l'élément principal d'un projet XP. Son rôle est d’écrire des lignes de code, rajouter des fonctionnalités, simplifier et optimiser son code mais aussi d’avoir la qualité de communiquer et du courage.  Client : Le client est l'autre moitié du duo essentiel dans l'approche eXtreme Programming. Le développeur sait comment programmer et le client sait quoi programmer. 
  • 46. Testeur : Étant donné que les tests unitaires sont à la charge des développeurs, le testeur a pour rôle d'aider le client à choisir et à écrire ses tests fonctionnels.  Tracker : C'est un peu la conscience de l'équipe. Son rôle est d'aider l'équipe à mieux estimer le temps nécessaire à l'implémentation de chaque user story et de garder un œil sur le planning en relation avec l'avancement réel du projet. 
  • 47. Coach : Le coach a la responsabilité globale de tout le processus. Son rôle est de recadrer le projet, d'ajuster les procédures. Toute la difficulté de sa tâche réside dans le fait qu'il se doit d'intervenir de la manière la moins intrusive possible.  Consultant : Le rôle d'un consultant est d'apporter à l'équipe les connaissances nécessaires pour qu'ils résolvent eux mêmes leur problème et non de leur apporter une solution toute faite. 
  • 48.  Big Boss : Le Big Boss apporte à l'équipe courage et confiance.
  • 49. VII - Forces et faiblesses
  • 50.  Forces :  Extreme Programming apparaît comme la plus radicale des méthodes agiles.  XP se révèle particulièrement efficace dans le cadre de petits projets.  XP réalise des applications de qualité grâce à la rigueur imposée sur les tests, qui plus est collent au désirs du client puisque celui-ci est intégré au projet de A à Z.
  • 51.  Faiblesses :  XP n'est pas applicable dans tous les cas.  Le cas d'une équipe supérieure à une douzaine de personnes est un autre exemple où XP est difficilement adaptable car le nombre risque de ralentir, d'alourdir les procédures et de rendre la communication plus difficile et moins efficace.  En ce qui concerne les développeurs, la pratique de la programmation en binôme n'est pas forcément très bien ressentie par tous.
  • 53. Merci pour votre attention