Les contextes et conditions où les pratiques XP apportent le plus de valeur.
XP a été conçu pour les projets où les exigences changent fréquemment. Si vous ne savez pas exactement quoi construire, XP vous aide à le découvrir.
Signes d'incertitude élevée :
Dans ces environnements, les approches traditionnelles échouent. La conception détaillée en amont devient obsolète avant l'implémentation. Les grandes versions ratent la cible parce que les exigences ont changé.
XP embrasse le changement. Les petites versions obtiennent des retours rapidement. La conception simple évite le surinvestissement. Le jeu de planification s'ajuste continuellement. L'incertitude n'est pas un problème — elle est attendue.
Si vos exigences sont vraiment stables et bien comprises, XP fonctionne toujours, mais la proposition de valeur est différente. Vous gagnez en qualité et en santé d'équipe, mais les avantages d'adaptabilité sont moins prononcés.
XP suppose que vous construisez quelque chose que vous ne comprenez pas encore complètement. Les pratiques sont conçues pour vous aider à apprendre votre chemin vers la bonne solution.
XP brille lorsque le code vivra pendant des années. L'investissement dans les pratiques techniques porte ses fruits au fil du temps.
Pourquoi les systèmes à longue durée de vie bénéficient de XP :
Si vous construisez un prototype qui sera jeté, l'investissement de XP dans la qualité peut ne pas être rentable. Mais la plupart des « prototypes » deviennent des systèmes de production. La plupart du code « temporaire » vit pendant des années.
Le pari : Supposez que votre code vivra plus longtemps que vous ne le pensez. Investissez dans la qualité dès le départ. Si vous avez tort, vous avez perdu un peu de temps. Si vous avez raison (et c'est généralement le cas), vous avez économisé des années de souffrance.
XP nécessite une collaboration étroite. La programmation en binôme, les jeux de planification et la propriété collective ne fonctionnent que lorsque les gens travaillent bien ensemble.
Signes que votre équipe est prête :
Si votre équipe manque de ces qualités, les pratiques XP sembleront forcées et maladroites. Vous devrez peut-être construire la santé de l'équipe avant d'adopter XP — ou utiliser les pratiques XP pour construire progressivement la santé de l'équipe.
XP peut améliorer la collaboration, mais elle ne peut pas la forcer. Une équipe de personnes qui ne veulent pas partager le code n'embrassera pas soudainement la propriété collective. Une équipe qui a peur d'admettre ses erreurs ne bénéficiera pas de la transparence.
La culture doit soutenir les pratiques — ou au moins être prête à changer.
Les développeurs s'entraident régulièrement. Ils admettent quand ils sont bloqués. Ils font la rotation dans la base de code volontiers. Ils célèbrent le succès de l'équipe, pas l'héroïsme individuel.
Les développeurs protègent « leur » code. Ils cachent les problèmes jusqu'à ce qu'ils soient forcés de les révéler. Il y a de la compétition au lieu de la collaboration. Le blâme est courant quand les choses tournent mal.
XP nécessite un client disponible — quelqu'un qui peut répondre aux questions, prendre des décisions de priorité et fournir des retours.
Sans disponibilité du client :
La disponibilité du client signifie :
Si vos clients ne sont pas disponibles, XP devient difficile. Vous pouvez utiliser un propriétaire de produit comme intermédiaire, mais quelqu'un doit jouer efficacement le rôle de client.
Le dysfonctionnement organisationnel empêche souvent la disponibilité du client. Le client est trop occupé, trop politique ou trop distant. Ce sont des problèmes organisationnels à résoudre, pas des problèmes XP.
Certaines pratiques XP supposent des contextes modernes de développement logiciel. Elles peuvent nécessiter une adaptation dans d'autres environnements.
TDD suppose :
CI suppose :
La programmation en binôme suppose :
Dans la plupart des développements logiciels, ces hypothèses sont valables. Mais les systèmes embarqués, le code dépendant du matériel ou les environnements hautement réglementés peuvent nécessiter une adaptation des pratiques.
Les principes restent. Les pratiques spécifiques peuvent changer.
Si TDD semble impossible dans votre environnement, demandez-vous pourquoi. Souvent, « l'impossibilité » révèle des problèmes de conception que TDD vous aiderait à corriger.