Comprendre comment XP et Scrum diffèrent, se chevauchent et fonctionnent ensemble.
XP et Scrum ont émergé à peu près au même moment et partagent les mêmes racines, mais ils se concentrent sur des problèmes différents.
Scrum se concentre sur la gestion de projet : Comment organiser le travail? Quels rôles sont nécessaires? Quelles réunions? Quels artefacts? Scrum vous donne un cadre pour gérer le flux de travail à travers une équipe.
XP se concentre sur les pratiques d'ingénierie : Comment écrire réellement le code? Comment assurer la qualité? Comment maintenir la base de code en santé? XP vous donne des pratiques pour bien faire le travail.
C'est pourquoi ils se complètent si naturellement. Scrum vous dit quoi construire dans un sprint. XP vous dit comment le construire.
Malgré des objectifs différents, XP et Scrum partagent des concepts clés :
Une équipe « qui fait du Scrum » ressemble beaucoup à une équipe « qui fait du XP » vue de l'extérieur. La différence est sous le capot.
Scrum est silencieux sur les pratiques d'ingénierie. Le Guide Scrum ne dit rien sur le TDD, la programmation en binôme, le refactoring ou l'intégration continue. Il suppose que les équipes trouveront les pratiques techniques elles-mêmes.
XP est prescriptif sur les pratiques d'ingénierie. XP dit que vous devez écrire les tests en premier. Vous devriez programmer en binôme. Vous allez refactoriser continuellement. Vous allez intégrer plusieurs fois par jour.
Scrum définit des rôles. Product Owner, Scrum Master, Équipe de développement. Ces rôles ont des responsabilités spécifiques.
XP est flexible sur les rôles. Il y a un client et des développeurs. C'est à peu près tout. XP suppose que l'équipe s'auto-organisera autour des rôles au besoin.
Scrum a des événements spécifiques. Planification de sprint, Mêlée quotidienne, Revue de sprint, Rétrospective de sprint.
XP a des cadences plus flexibles. Jeu de planification, mêlée quotidienne, démo d'itération — similaires, mais moins rigidement définis.
La vraie différence
Scrum vous dit comment organiser. XP vous dit comment coder. La plupart des équipes performantes ont besoin des deux.
De nombreuses équipes performantes utilisent le cadre de Scrum avec les pratiques techniques de XP. Cette combinaison est puissante :
Ce n'est pas « impur » ou incorrect. Les créateurs originaux de Scrum s'attendaient à ce que les équipes apportent des pratiques d'ingénierie. XP les fournit.
Un modèle courant :
Les équipes appellent souvent cela « Scrum avec les pratiques d'ingénierie XP » ou simplement « bien faire de l'agile ».
Une équipe exécute des sprints de deux semaines (Scrum) avec TDD, programmation en binôme et intégration continue (XP). Le Scrum Master facilite le processus; les développeurs possèdent les pratiques techniques.
Une équipe exécute des sprints et a tous les événements Scrum, mais n'écrit aucun test, ne refactorise jamais et n'intègre qu'à la fin du sprint. Ils sont « agiles » mais la qualité de leur code se détériore à chaque sprint.
Vous pouvez faire du XP sans Scrum. Certaines équipes préfèrent l'approche plus légère de XP :
Cela fonctionne bien pour les équipes qui trouvent la structure de Scrum trop lourde, ou là où le travail arrive continuellement (comme les opérations ou le support).
La clé est que les pratiques techniques de XP ne sont pas négociables. Que vous utilisiez Scrum, Kanban ou autre chose pour organiser le travail, le TDD, le refactoring et l'intégration continue restent essentiels.
Attention
Certaines équipes utilisent « pas de Scrum » comme excuse pour sauter complètement la discipline. XP sans discipline d'ingénierie n'est pas du XP — c'est juste du chaos.