L’eXtreme Programming (XP) : le guide

Portrait du contributeur – Alicia RaeburnAlicia Raeburn16 mai 202211 min de lecture
facebooktwitterlinkedin
What is extreme programming (XP) article banner image
Essayer Asana

Summary

Extreme programming (XP) is an Agile project management methodology that targets speed and simplicity with short development cycles. XP uses five guiding values, five rules, and 12 practices for programming. The structure is rigid, but the result of these highly focused sprints and continuous integrations can result in a much higher quality product.

La dénomination « eXtreme Programming » vous fait penser à la compétition X Games axée sports extrêmes ? Il n’y a là rien d’étonnant. Comme son nom l’indique, il s’agit en effet d’un processus de programmation très intense. Comme d’autres méthodes de développement logiciel Agile, l’eXtreme Programming mise sur une approche flexible, principalement fondée sur des tests et appliquée au domaine de l’ingénierie logicielle. Ce type de programmation comporte cependant des règles et valeurs fondamentales assez strictes régissant l’exécution du travail.

Qu’est-ce-que l’eXtreme Programming (XP) ?

L’eXtreme Programming est une méthode de gestion de projet Agile qui mise non seulement sur la rapidité et la simplicité avec des cycles de développement courts, mais également sur une moindre documentation. La structure du processus repose sur 5 valeurs fondamentales, 5 règles et 12 pratiques bien particulières (que nous détaillerons un peu plus tard dans cet article).

Comme toute autre structure Agile, l’XP est une méthodologie de développement logiciel décomposée en sprints. Elle suit donc un processus itératif, c’est-à-dire que vous devez réviser le système à la fin de chaque sprint, l’affiner pour optimiser au maximum son efficacité tout en vous adaptant aux nouveaux besoins. L’eXtreme Programming permet aussi aux développeurs de prendre en compte les demandes des clients, de s’adapter et de faire des modifications en temps réel. Bien plus rigoureuse, cette méthode effectue fréquemment des révisions de code et des tests unitaires pour apporter des changements rapidement. Très créative et collaborative, elle favorise le travail d’équipe à toutes les étapes du développement.

XP ou Scrum ?

Scrum correspond à un autre type de méthodologie Agile très populaire, gérée cette fois-ci par un Scrum master. Comme la méthode XP, elle organise des sprints à partir des récits utilisateurs pour développer de nouvelles fonctionnalités de produits ou logiciels. L’eXtreme Programming est toutefois bien plus rigide que Scrum, puisqu’il comporte des règles et principes stricts qui favorisent des échanges constants entre les développeurs et les clients. Tandis que Scrum peut s’appliquer à tout processus nécessitant une itération et une contribution du client, la méthode XP ne peut quant à elle s’utiliser que dans le cadre de la programmation.

D’où vient l’eXtreme Programming ?

La création de l’eXtreme Programming remonte à la fin des années 1990, lorsque Kent Beck s’occupe du développement d’un logiciel de paie pour l’entreprise Chrysler, appelé projet C3. L’objectif de l’XP était (et est toujours) d’éliminer toute résistance aux modifications de code au sein des projets de développement. Dans les méthodes plus traditionnelles, le code n’est généralement plus modifié une fois qu’il est écrit (sauf en cas de dépannage). Avec l’XP, le code est examiné dans les moindres détails, si bien que les développeurs peuvent décider de le réécrire entièrement après une seule itération.

Quand recourir à l’eXtreme Programming ?

Portant essentiellement sur le développement logiciel, l’eXtreme Programming n’est la plupart du temps utilisé que par des équipes d’ingénieurs. Contrairement à ce que l’on pourrait penser, les équipes en charge des logiciels ne peuvent, quant à elles, l’appliquer que dans certains contextes bien particuliers. Voici quelques exemples de situations vous permettant d’en tirer le meilleur parti possible :

  • Vous dirigez une petite équipe. En raison de sa nature très collaborative, l’XP fonctionne bien mieux au sein des équipes de moins de 10 personnes.

  • Vous êtes en contact permanent avec vos clients. L’XP intègre non seulement les exigences des clients tout au long du processus de développement, mais s’appuie sur ces dernières pour les tests et approbations.

  • Vous travaillez avec une équipe flexible, encline au changement. Du fait de ses caractéristiques, l’eXtreme Programming mettra votre équipe à rude épreuve et la condamnera bien souvent à repartir de zéro malgré son dur labeur. Certaines règles permettent par ailleurs aux membres de l’équipe d’apporter des modifications au processus, et donc au travail de leurs collègues, à tout moment. Pas de susceptibilité qui tienne !

  • Vous maîtrisez bien les aspects techniques de codage. Que les débutants s’abstiennent. Vous devez être capable de travailler et d’effectuer des modifications rapidement.

Le cycle de vie de l’eXtreme Programming (XP)

Le cycle de vie de la méthode XP requiert une intégration en continu et exige des membres de l’équipe qu’ils travaillent de manière quasi permanente, toutes les heures ou tous les jours. Il se décompose comme suit :

  • Identification des travaux inachevés à partir des récits utilisateurs (user stories)

  • Hiérarchisation des éléments les plus importants

  • Début de la planification itérative

  • Intégration d’une planification réaliste

  • Maintien d’une communication constante avec toutes les parties prenantes et responsabilisation de l’équipe

  • Livraison du travail

  • Réception des retours

  • Retour à l’étape de planification itérative et répétition si nécessaire

Les 5 valeurs de l’eXtreme Programming

Plutôt que d’utiliser des facteurs de motivation externes, l’eXtreme programming s’appuie sur 5 valeurs fondamentales et facilite le travail de votre équipe (en privilégiant la simplicité et la collaboration plutôt que des conceptions complexes).

1. La simplicité

Avant de vous lancer, posez-vous la question suivante : comment cela pourrait-il fonctionner plus simplement ? Le concept de fonctionnement est ici un élément clé de différenciation. En effet, la simplicité ne va pas toujours de pair avec la praticité ou l’efficacité. La méthode XP met l’accent sur la réalisation du travail le plus important en premier. Vous devez donc rechercher un projet aussi simple que possible, dont vous pouvez facilement vous occuper.

2. La communication

Cette méthode repose sur une réactivité rapide et une communication efficace. Pour fonctionner, les membres de votre équipe doivent faire preuve d’ouverture et d’honnêteté les uns envers les autres. En effet, il sera essentiel de faire part des éventuels problèmes au groupe tout entier, et ce, le plus vite possible. Pourquoi ? Parce qu’il est fort probable que l’un d’entre eux dispose déjà d’une solution adéquate. Dans le cas contraire, c’est en réfléchissant ensemble que vous parviendrez à résoudre votre problème plus rapidement.

[À lire] 6 stratégies pour une communication d’équipe efficace

3. Les retours

Comme d’autres structures Agile, la méthode XP intègre les users stories et les retours directement au sein du processus. Elle mise sur la rapidité et la simplicité de mise en œuvre du travail, puis sur le partage des résultats afin d’obtenir un feedback quasi immédiat. Les développeurs sont ainsi en contact permanent avec les clients, et ce, tout au long du processus. Avec l’XP, de nouvelles versions sont régulièrement livrées afin d’obtenir autant d’informations que possible dans les plus brefs délais. Le feedback reçu doit être pris en compte et permettre à votre équipe d’adapter le processus (et non le projet) en conséquence. Si par exemple les retours en question vous suggèrent de réduire les retards inutiles, vous ajusterez votre processus de manière à ce qu’un binôme de développeurs travaille sur le sujet. Vous n’adapterez en aucun cas le projet tout entier.

[À lire] 20 conseils pour un feedback efficace

4. Le courage

Avis aux plus courageux ! Il est crucial que vous fassiez toujours preuve d’honnêteté concernant vos progrès, même si cela ne joue pas forcément en votre faveur. Si vous manquez une échéance, votre chef d’équipe ne s’intéressera probablement pas au pourquoi du comment. Il s’attendra cependant à ce que vous fassiez preuve de franchise, que vous endossiez la responsabilité de vos actes et que vous vous remettiez le plus vite possible au travail.

En début de processus XP, il sera de la responsabilité du chef d’équipe de fixer les attentes en matière de réussite et de définir clairement le travail à réaliser. Ce processus ne laisse généralement que peu de place à l’erreur, car l’équipe se concentre essentiellement sur l’atteinte de ses objectifs. Cependant, tout ne se passe pas toujours comme prévu, et l’avenir réserve régulièrement son lot de surprises et de sueurs froides. Si des changements surviennent en cours de processus XP, sachez que ce sera à votre équipe de s’adapter et non l’inverse.

5. Le respect

Compte tenu de l’importance accordée à la communication et à l’honnêteté, il est logique que le respect joue également un rôle essentiel. Pour que les équipes puissent communiquer et collaborer efficacement, elles doivent être en mesure d’exprimer des opinions différentes, et ce, toujours avec bienveillance. Terreau de la gentillesse et de la confiance, le respect favorise grandement l’honnêteté des échanges. La méthode XP requiert en effet :

  • Le respect mutuel entre les clients et l’équipe de développement.

  • Le respect mutuel entre les membres de l’équipe.

  • La reconnaissance des contributions uniques de chacun à la réussite du projet.

Les 5 règles de l’eXtreme Programming

Les valeurs fondamentales constituent l’aspect plus philosophique de l’eXtreme Programming. Les règles, en revanche, encadrent la mise en pratique du travail. Ces deux aspects seront essentiels à la réussite de votre équipe XP.

1. La planification

C’est au cours des étapes de planification que vous déterminerez si le projet est viable et s’il correspond aux critères XP. Pour ce faire, vous devrez examiner :

  • Les user stories, pour vous assurer de leur simplicité, mais aussi de la disponibilité du client pour participer au processus. Si ces récits s’avèrent plus complexes ou s’ils ont été rédigés par un client anonyme, il y a peu de chances que la méthode XP fonctionne.

  • La valeur commerciale et le niveau de priorité du projet, pour vous assurer que le travail le plus important est bien effectué en premier.

  • Le stade de développement auquel vous vous trouvez. L’eXtreme Programming convient en effet bien mieux aux premières phases de développement qu’aux itérations ultérieures.

Le projet en question semble répondre à tous les critères nécessaires à la mise en œuvre de la méthode XP ? Parfait, établissez alors un calendrier de lancement. Gardez cependant à l’esprit que vous devrez effectuer des livraisons le plus tôt et le plus souvent possible afin d’obtenir les retours souhaités. Pour ce faire :

  • Décomposez le projet en itérations et créez un plan pour chacune d’entre elles.

  • Fixez des échéances réalistes et un rythme durable.

  • Communiquez les mises à jour au fur et à mesure pour permettre à votre équipe d’être aussi honnête et transparente que possible.

  • Partagez les mises à jour en temps réel pour aider votre équipe à s’adapter, identifier et effectuer des modifications plus rapidement.

  • Utilisez un outil de gestion de projet pour créer un tableau Kanban ou une chronologie, et ainsi suivre votre progression en temps réel.

2. La gestion

L’un des éléments clés de la méthode XP est l’espace de travail. Les puristes recommandent aux membres de l’équipe de travailler dans une seule et même pièce. Du fait de sa nature collaborative, il est en effet préférable de choisir un espace ouvert pouvant accueillir physiquement l’ensemble de votre équipe, même si cela n’est pas toujours pratique de nos jours. Si vous travaillez à la maison, envisagez d’utiliser une plateforme qui favorise le travail asynchrone et donc une collaboration à distance. Tous les membres de votre équipe pourront alors travailler sur un même projet, sans forcément être physiquement réunis.

Comme pour d’autres méthodes agiles, organisez des réunions debout quotidiennes afin de faire le point et d’encourager les échanges réguliers et ouverts au sein de votre équipe. Un cycle hebdomadaire et un cycle trimestriel sont recommandés. Au cours du cycle trimestriel, vous et votre équipe passerez en revue les récits utilisateurs qui guideront votre travail. Vous étudierez par la même occasion votre processus XP afin d’identifier des points faibles ou des changements à effectuer. Viendront ensuite les cycles hebdomadaires. Ces derniers commenceront toujours par un entretien avec le client. Ce dernier vous indiquera la user story sur laquelle les programmeurs devront passer la semaine à travailler.

En tant que manager ou chef d’équipe, vous vous concentrerez essentiellement sur les éléments suivants : la progression constante du projet en cours, le suivi du rythme de travail, l’attribution pertinente des tâches en fonction des erreurs ou des problèmes à résoudre au fur et à mesure qu’ils se présentent, ou encore les changements à effectuer pour adapter au mieux votre processus XP au projet et à l’itération en cours. Gardez bien à l’esprit que l’objectif est d’être aussi flexible et réactif que possible, de manière à vous concentrer pleinement sur le travail de votre équipe et gérer immédiatement la moindre modification.

3. La conception

Vous n’avez que peu d’expérience en la matière ? Faites alors au plus simple, les itérations ultérieures se chargeront de complexifier davantage votre conception. Un conseil, n’ajoutez aucune fonctionnalité à ce stade et simplifiez ainsi votre système au maximum.

Les équipes XP utilisent souvent des cartes CRC (classe, responsabilité, collaborateurs) pour présenter la manière dont interagissent les différents éléments entre eux. C’est en remplissant les multiples champs de la carte que vous pourrez visualiser les relations et interactions de toutes les fonctions. Les cartes CRC comprennent :

  • La classe (regroupement d’éléments similaires)

  • Les responsabilités (selon la classe)

  • Les collaborateurs (la classe qui interagit avec celle en question)

Les CRC permettent de simuler l’ensemble du processus et de détecter les problèmes potentiels. Quel que soit le type de conception, vous devez utiliser un système limitant les éventuels points de blocage. Veillez donc à prévenir les risques de manière proactive : dès que l’ombre d’une menace potentielle plane, chargez un ou deux membres de l’équipe d’y trouver une solution.

[À lire] Le processus de gestion des risques de projet en 6 étapes claires

4. Le codage

La méthode XP se différencie notamment par le maintien d’un contact permanent avec le client tout au long du processus de codage. Cette collaboration vous permet de tester et d’intégrer les retours à chaque itération, au lieu de devoir attendre la fin d’un sprint. Les règles de codage sont toutefois assez strictes. En voici quelques exemples :

  • L’ensemble du code doit être conforme aux normes de codage.

  • Des tests unitaires doivent être effectués pour définir les exigences et développer tous les aspects du projet.

  • La programmation doit se faire en binôme. Deux développeurs doivent ainsi travailler ensemble et simultanément sur le même ordinateur. Le temps de programmation reste le même, mais les résultats sont de bien meilleure qualité en raison d’une attention décuplée.

  • L’intégration continue est de mise pour ajouter du nouveau code et le tester immédiatement.

  • Un seul binôme peut modifier le code à un instant t afin de réduire le nombre d’erreurs.

  • La propriété collective du code, selon laquelle chaque membre de l’équipe peut le modifier à tout moment, doit être respectée.

5. Les tests

La dernière règle de l’eXtreme Programming concerne la réalisation de tests tout au long du processus. L’ensemble du code devra en effet être soumis à des tests unitaires avant de pouvoir être publié. Des erreurs s’y sont glissées ? Pas de panique, il vous suffira de mettre en place des tests supplémentaires pour les corriger. Par la suite, vous convertirez la user story sur laquelle vous avez travaillé en test d’acceptation. C’est au cours de ce dernier test que le client examinera les résultats pour vérifier si le produit reflète correctement les besoins évoqués.

En quoi consistent les 12 pratiques de l’eXtreme Programming ?

Pour affiner davantage le processus, la méthode XP a recours à 12 pratiques, toutes fondées sur le Manifeste Agile mais adaptées à ses propres besoins :

  1. Le jeu de la planification : la planification XP guidera votre travail. Elle doit définir les objectifs que vous souhaitez atteindre, les délais dans lesquels vous devez y parvenir ainsi que l’ensemble des étapes qui suivront.

  2. Les tests clients : à toute nouvelle fonctionnalité son test d’acceptation. C’est au cours de ce test que le client déterminera si celle-ci répond ou non aux besoins décrits par le récit utilisateur d’origine.

  3. Les petites livraisons : effectuez régulièrement de petites livraisons et obtenez ainsi des informations tout au long du processus. Les nouvelles versions sont généralement envoyées directement aux clients, mais elles peuvent aussi être destinées à l’équipe interne.

  4. La simplicité de la conception : le système XP misant avant tout sur la simplicité, il est donc question de ne produire que le strict nécessaire.

  5. La programmation en binôme : ce type de programmation requiert le travail simultané de deux développeurs physiquement côte à côte. Vive le travail d’équipe !

  6. Le développement piloté par les tests : obtenir autant de retours que possible étant essentiel, de nombreux tests doivent être sans arrêt menés. Avec des cycles courts, les programmeurs publient des tests automatisés et sont en mesure de réagir immédiatement.

  7. Le remaniement du code : il s’agit ici d’examiner les moindres petits détails de votre code. Supprimez donc les doublons et assurez-vous de sa cohérence. C’est ainsi que vous obtiendrez des conceptions simples et de bonne qualité.

  8. La propriété collective : tout binôme peut modifier le code à tout moment, qu’il l’ait développé ou non. Le codage se fait en équipe et le travail de chacun est soumis à des normes collectives plus élevées.

  9. L’intégration continue : les équipes XP n’attendent pas que les itérations soient terminées, elles intègrent constamment, et ce, généralement plusieurs fois par jour.

  10. Un rythme durable : l’intensité des travaux XP exige l’établissement d’un rythme durable. Les équipes doivent donc déterminer la quantité de travail qu’elles se sentent capables de produire par jour et par semaine. Elles pourront ainsi fixer des échéances réalistes.

  11. La métaphore : pas besoin d’aller chercher plus loin, il s’agit bien d’une métaphore comme son nom l’indique. Choisie en équipe, elle décrit le fonctionnement de celle-ci. Par exemple : nous sommes des fourmis et travaillons ensemble pour construire notre fourmilière.

  12. Normes de codage : il est indispensable que les équipes XP se soumettent à certaines normes. De la même manière que lorsque plusieurs auteurs rédigent un même ouvrage, ils font en sorte d’en homogénéiser le ton et le langage pour un rendu harmonieux, les développeurs XP doivent coder de façon uniforme pour effacer toutes traces de leur collaboration.

Intense, mais efficace

Extrême est bien le mot qui convient. Ce processus se révèle en effet très rigoureux et structuré, mais croyez-nous, les résultats en valent vraiment la peine. Cette méthode de développement unique, qui intègre directement les retours des clients et exige une programmation intense et collaborative, permet de donner naissance à des logiciels de grande qualité.

Simplifiez votre planification et votre gestion XP avec un outil adapté qui effectue des mises à jour et s’adapte en temps réel, tout comme votre travail.

Essayer Asana gratuitement

Ressources associées

Article

La méthode Kaizen : le guide de l’amélioration continue en entreprise