Cela peut sembler étrange de discuter de ce que « done » pourrait signifier, mais je vous assure que c'est un sujet qui en vaut vraiment la peine.
Par définition :
« Scrum est un cadre léger qui aide les personnes, les équipes et les organisations à générer de la valeur grâce à des solutions adaptatives pour des problèmes complexes. » - Le Guide Scrum
Un concept clé en Scrum qui aide les équipes et les organisations à générer de la valeur est la Definition of Done.
« C'est fait, mais... »
Vous avez probablement déjà entendu cela, de la part d'un Scrum Master, d'un développeur, ou même d'un Product Owner. Les parties prenantes et les managers aiment voir les choses avancer (normal, non ?). Ils posent souvent ces questions typiques aux équipes Scrum comme « quand est-ce que ce sera fini ? ». Il sera difficile de répondre à cette question si vous ne savez même pas ce que « fini » signifie pour vous et votre équipe.
« Done » peut aussi être compris différemment, selon la perspective de chacun :
- Un développeur peut considérer une fonctionnalité comme terminée quand il a fini la partie codage
- Un testeur peut considérer que c'est fait quand ses critères de test sont satisfaits
- Un Product Owner peut considérer que c'est fait quand la fonctionnalité marche, même sur la machine locale
- Les parties prenantes peuvent considérer que « done » signifie prêt à être livré aux clients
Et le produit ou la fonctionnalité elle-même ? Est-ce terminé, oui ou non ?!
On voit clairement le désalignement entre tous ces acteurs. Ce manque de transparence peut être fatal lorsqu'on traite un travail complexe comme le développement produit.
La solution proposée par Scrum : La Definition of Done.
Qu'est-ce que la Definition of Done (DoD) ?
Une façon de penser la Definition of Done est comme une checklist d'éléments ou de critères qui doivent être complétés avant qu'un produit ou une fonctionnalité puisse être considéré comme « done ». Cela peut inclure des choses comme les tests, la documentation, l'acceptation utilisateur, le déploiement, les exigences non fonctionnelles, etc.
Avoir une Definition of Done claire :
- Aide à aligner tout le monde sur ce que « done » signifie réellement lors de la construction du produit
- Fournit à chacun une compréhension partagée du travail accompli dans le cadre de l'Incrément
- Augmente la transparence de l'incrément, pour que tout le monde connaisse l'état réel du produit et ce qui doit être construit ensuite dans le backlog
- Réduit le risque de livrer des incréments de mauvaise qualité
- Élimine le gaspillage de retravailler sur des éléments considérés comme non « done » selon des attentes non définies
- Crée un focus pour l'équipe Scrum, afin qu'elle construise des incréments qui répondent uniquement aux critères convenus, ni plus, ni moins !
- Assure que le produit construit atteint le niveau de qualité souhaité et répond aux besoins du client
Qui la crée ?
La Definition of Done doit être créée et approuvée par l'ensemble de l'équipe Scrum, incluant les développeurs, le Product Owner et le Scrum Master.
Si l'organisation a une DoD définie, l'équipe Scrum doit la suivre comme minimum.
Ils doivent l'appliquer de manière cohérente tout au long des sprints. Ils peuvent la revoir et la mettre à jour si nécessaire (lors de la Rétrospective de Sprint par exemple) pour s'assurer qu'elle continue de refléter les besoins de qualité et les objectifs du produit.
Comment l'utiliser ?
L'équipe Scrum doit s'engager sur sa Definition of Done et construire uniquement des incréments qui respectent la DoD définie. Ce faisant, elle augmente la transparence et aide l'équipe et ses parties prenantes à évaluer et inspecter l'état réel du produit, plutôt que de discuter de fonctionnalités ou d'éléments (disons des User Stories pour simplifier) qui doivent encore être retravaillés pour être pleinement complets.
En d'autres termes, Done en Scrum signifie :
- La US est complétée et répond aux critères définis dans la Definition of Done de l'équipe ou de l'organisation
- Cela signifie 100% terminé, pas 50, ni 70, ni même 99%...
Si une US n'est pas entièrement complétée pendant le Sprint, cela signifie qu'elle n'est pas encore « done ». Simple !
Et cette US n'est pas considérée comme faisant partie de votre incrément, et ne devrait même pas être discutée lors de la Sprint Review.
En résumé, la Definition of Done est une partie très importante du Framework Scrum. Chaque équipe Scrum devrait avoir sa Definition of Done, la maintenir continuellement pour répondre aux exigences de qualité du produit. En établissant des attentes claires et en les appliquant de manière cohérente tout au long des sprints, les équipes Scrum peuvent livrer des produits de haute qualité et apporter de la valeur à l'organisation et à ses clients.