Extreme Programming (XP) est un développement logiciel Agile cadre conçu pour produire un logiciel de meilleure qualité et améliorer la qualité de vie de l’équipe. XP est le cadre Agile le plus précis en ce qui concerne les bonnes pratiques d’ingénierie.
Scrum est un cadre dans lequel les personnes peuvent résoudre des problèmes complexes et adaptatifs tout en livrant des produits à forte valeur de manière efficace et créative. Scrum est lui-même un cadre simple qui permet une collaboration efficace de l’équipe sur des produits complexes.
À la fois Scrum et XP sont des méthodologies Agile, partageant des concepts communs tels que le développement itératif, le logiciel fonctionnel, les livraisons et la planification des itérations, réunions quotidiennes, les rétrospectives, et tous les autres éléments du processus Agile. Ces deux approches sont si cohérentes qu’il peut être difficile de distinguer une équipe pratiquant XP d’une autre pratiquant Scrum.

Extreme Programming

Cycle de sprint
Cependant, il existe certaines différences, dont certaines sont assez subtiles, notamment dans les quatre aspects suivants :
- Typiquement de deux à quatre semaines.
- Typiquement d’une à deux semaines.
- N’autorise pas les modifications de leur sprint.
- Une fois que le planification du sprint est terminée et un ensemble de liste de produitséléments est engagé, ces éléments restent inchangés jusqu’à la fin du sprint.
- Plus facile à modifier pendant l’itération.
- Tant qu’une fonctionnalité spécifique n’a pas encore été commencée, une nouvelle fonctionnalité de taille similaire peut être intégrée à l’itération de l’équipe XP à la place d’une non commencée.
- Travailler dans l’ordre de priorité stricte.
- Les fonctionnalités à développer sont prioritaires selon le client (le Product Owner), et l’équipe doit les traiter dans l’ordre.
- Le Product Owner Scrum priorise le backlog produit, mais l’équipe détermine l’ordre dans lequel elle développe les éléments du backlog.
- Un équipe Scrum pourrait fort bien choisir de travailler sur l’élément de deuxième importance.
- Ne prescrit aucune pratique d’ingénierie spécifique.
- Oui, XP le fait.
- Par exemple : TDD, programmation en binôme, conception simple, refactoring, etc.
Nous pouvons résumer les différences entre XP et Scrum comme suit :
| Aspect | Pratique | XP | Scrum |
| Durée de l’itération | Si les exigences peuvent être modifiées pendant l’itération | 1 à 2 semaines | 2 à 4 semaines |
| Gestion des changements pendant l’itération | Les exigences sont-elles rigoureusement ordonnées par priorité | Peut être remplacé par une autre exigence de même taille si elle n’a pas encore été mise en œuvre. | Scrum ne permet pas cela. Aucun changement n’est autorisé après le début du sprint, et le Responsable Scruml’applique strictement. |
| Priorisation des fonctionnalités | Les exigences sont-elles rigoureusement ordonnées par priorité | Oui | Non requis |
| Pratiques d’ingénierie | Les méthodes d’ingénierie strictes sont-elles utilisées pour assurer l’avancement ou la qualité | Très strict | Exige que les développeurs soient conscients |
Par conséquent, nous pensons que l’approche de XP est acceptable, mais elle introduit un paradoxe dans l’Agilité : combiner la philosophie de XP avec les principes Agiles envoie un message confus aux équipes : « Vous êtes une organisation entièrement autonome, mais vous devez mettre en œuvre le TDD, le programmation en binôme, etc. »
Il est clair que ces quatre différences sont assez distinctes :
- Dans Scrum, l’accent est mis sur l’autogestion.
- Dans XP, l’accent est mis sur des contraintes strictes en matière de pratiques d’ingénierie.
Conclusion
Scrum est un cadre de développement de produit — un conteneur dans lequel d’autres pratiques peuvent être ajoutées. XP est l’une des pratiques que vous pouvez appliquer dans le cadre Scrum. Il n’y a aucune raison pour une équipe de choisir entre Scrum et XP. Les règles et pratiques de XP ne sont pas faciles, et la plupart d’entre elles sont non négociables. Intégrer XP à Scrum peut être une évolution naturelle pour une équipe qui commence par Scrum et vise à devenir une équipe Scrum professionnelle.