La méthodologie eXtreme Programming ou XP est une méthode de gestion de projet qui applique à l’extrême les principes du développement Agile, c’est-à-dire se concentrer sur les besoins du clients, mettre en place un développement itératif et l’intégration continue. L’équipe projet et ses relations avec le client sont au cœur de XP. Nous préférons cette méthode à la méthode SCRUM que nous pouvons aussi appliquer sur certains projets.

Cette méthode a été créée par Kent Beck entre 1996 et 1999, lorsqu’il travaillait sur un projet pour Chrysler. Élaborée à l’origine pour le secteur informatique, la méthode eXtreme Programming est aujourd’hui très populaire car elle fonctionne pour tous types de projets, de toutes tailles et de tous secteurs confondus, partout dans le monde.

A – Principe et Valeurs

Les principes de la méthode eXtreme Programming (XP) ne sont pas nouveaux puisqu’il s’agit de ceux des méthodes Agiles. La différence et l’originalité résident dans le fait qu’ils sont poussés à l’extrême.

> La méthode eXtreme Programming s’appuie sur :

> XP repose sur cinq valeurs fondamentales

#1 Communication : il est essentiel que chaque membre de l’équipe communique quotidiennement avec ses collègues ainsi qu’avec le client. C’est un moyen incontournable pour résoudre les problèmes.

#2 Simplicité : la façon la plus simple d’arriver au résultat est privilégiée. L’équipe projet fait ce qui est nécessaire et demandé, rien de plus. Une application simple sera plus facile à faire évoluer ensuite.

#3 Feedback : le retour d’information entre l’équipe projet et le client est essentiel. Chaque étape du projet est envoyée aussi rapidement et souvent que possible au client afin qu’il teste, donne son avis et valide l’étape. Chaque demande de modification est prise en compte immédiatement.

#4 Respect : le respect de chaque membre de l’équipe et de son travail sont primordiaux. Le management, l’équipe projet et le client se respectent mutuellement.

#5 Courage : Il faut du courage pour effectuer certains changements comme essayer une nouvelle technique, recommencer une itération non validée ou revoir l’organisation du projet. Le courage permet de sortir d’une situation inadaptée.

B –  Fonctionnement : Les 13 pratiques

Les cinq valeurs de XP se déclinent en treize pratiques qui se renforcent mutuellement :

#Client sur site : le client doit être représenté sur place pendant toute la durée du projet. Ce représentant doit avoir une vision globale du résultat à obtenir et être disponible pour répondre aux questions de l’équipe.

#Jeu du planning (ou planning poker) : le planning est réalisé en collaboration avec le client. Ce dernier crée des scénarios pour les fonctionnalités qu’il souhaite obtenir. L’équipe évalue le temps nécessaire pour les mettre en œuvre. Le client sélectionne ensuite les scénarios (User Stories) en fonction des priorités et du temps disponible.

#Intégration continue : lorsqu’une tâche est terminée, elle est tout de suite intégrée dans le produit complet. Cela permet d’éviter la surcharge de travail due à l’intégration de tous les éléments avant la livraison. Les tests facilitent cette intégration : quand tous les tests sont positifs, l’itération est terminée.

#Petites livraisons : les livraisons doivent être les plus fréquentes possible afin que le client donne son avis et que les modifications soient rapidement prises en compte par l’équipe.

#Rythme soutenable : aucune heure supplémentaire n’est tolérée. S’il y en a, alors le planning doit être revu. Un collaborateur fatigué travaille mal et fait plus d’erreurs.

#Tests fonctionnels : à partir des scénarios définis par le client, l’équipe crée des procédures de test qui permettent de vérifier l’avancement du développement. Lorsque tous les tests fonctionnels passent, l’itération est terminée.

#Tests unitaires : pour chaque fonctionnalité, un test est prévu afin de vérifier qu’elle fonctionnera comme prévu. Ce test sera conservé jusqu’à la fin du projet, tant que la fonctionnalité est requise. À chaque modification du code, tous les tests sont lancés afin d’identifier immédiatement s’il y a un problème de fonctionnement.

#Conception simple : on va droit à l’essentiel en se focalisant uniquement sur les besoins actuels du client. Plus l’application est simple, plus il sera facile de la faire évoluer lors des prochaines itérations.

#Utilisation de métaphores : les équipes XP utilisent des métaphores pour décrire le système et son fonctionnement afin de clarifier les fonctionnalités à atteindre. Tout le monde parle le même langage.

#Refactoring (ou remaniement du projet) : le projet est amélioré régulièrement. Le but étant d’avoir de bonnes bases et de meilleures conditions de travail pour l’équipe.

#Appropriation collective du projet : la responsabilité du projet est collective. Chaque membre de l’équipe peut modifier toutes les portions du projet, même celles sur lesquelles il n’a pas travaillé. L’objectif est d’être efficace et rapide.

#Standards de langage : puisque tout le monde travaille ensemble sur le projet, il est essentiel de faciliter le travail de chacun en utilisant les mêmes termes, le même style et des règles de communication claires.

#Travail en binôme : les collaborateurs travaillent en binôme (pair programming). Le pilote et le copilote changent régulièrement afin d’améliorer la communication et la connaissance collective du projet.

C – Cycles de production

Les projets gérés par la méthode eXtreme Programming reposent sur des cycles de développement (itérations) courts et rapides qui sont réalisés collectivement par l’équipe projet et le client dont l’implication est constante.

Les activités contre-productives ont été supprimées afin de réduire les coûts et la frustration de toutes les personnes impliquées.

D – En conclusion

Avec la méthodologie eXtreme Programming, managers, équipe projet et client travaillent en collaboration. Cette approche privilégie la méthode la plus simple, favorise la réactivité de l’équipe et instaure un contrôle continu de la qualité.

Concrètement, la méthodologie XP demande beaucoup de discipline et de communication. Il faut aller vite, sans perdre de vue la rigueur du travail et les fonctions finales du projet. La grande force de la méthode eXtreme Programming réside dans sa simplicité et le fait qu’on va droit à l’essentiel, en suivant un rythme qui doit rester constant pour garantir les meilleurs coûts, sans négliger la qualité et les délais.