Bien que ces termes puissent sembler similaires à première vue, ils décrivent des concepts distincts.
Dans cet article, nous allons explorer la différence entre le Definition of Done et les Critères d’Acceptation.
Ces deux notions sont différentes, même si dans l’idée elles sont très proches. Chacune d’entre elles décrit des choses qui doivent être complétées pour qu’un élément du Product Backlog soit considéré comme terminé.
Prenons l’exemple de la préparation d’un gâteau au chocolat :
Comme pour tous les gâteaux, notre gâteau au chocolat doit être :
- Cuit
- Démoulé
- Placé dans un plat
- Décoré
Cette liste constitue notre Definition of Done pour la préparation d’un gâteau. Elle représente les normes de qualité que l’on souhaite respecter pour l’ensemble des gâteaux que l’on souhaite préparer.
Elle est générique : Notre Definition of Done est valable pour tous les gâteaux. Il peut être amélioré de façon continue, mais il n’y a pas un nouveau Definition of Done pour chaque nouvel élément du Backlog et il n’y a pas non plus de nouveau Definition of Done pour chaque Sprint.
Si on revient dans le monde du développement logiciel, notre Definition of Done pourrait être :
- Le code est écrit
- Les tests unitaires sont ok
- Les tests fonctionnels sont ok
- Le code est intégré dans le référentiel de code
- Une revue de code a été faite
- La documentation a été écrite
- …
Revenons à nos patisseries ! De la même façon que le Definition of Done, les Critères d’acceptation définissent les conditions qui doivent être remplies pour que le gâteau soit validé. Mais contrairement à notre première liste, on se place cette fois ci dans la perspective de la personne qui va manger le gâteau.
Les Critères d’Acceptation pourraient être :
- Le goût du chocolat doit être prononcé, sans être trop sucré
- La texture du gâteau doit être moelleuse
- Le glaçage doit être réparti uniformément sur toute la surface du gâteau
Les Critères d’Acceptation sont donc les conditions spécifiques qui doivent être remplies pour qu’une fonctionnalité soit considérée comme satisfaisante. Ces critères sont souvent formulés en termes plus orientés vers les résultats, reflétant les attentes spécifiques de l’utilisateur final. On ne veut pas forcément que tous les gâteaux soient moelleux ou avec un glaçage. Mais pour ce gâteau spécifiquement oui !
Dans le monde du développement logiciel, pour une fonctionnalité de gestion d’utilisateur, les critères d’acceptation pourraient être :
- Si l’utilisateur existe déjà et que j’essaie de le créer alors j’ai un message d’erreur
- Si j’essaie de supprimer un utilisateur qui n’existe pas alors j’ai un message d’erreur
- …
En résumé, le Definition of Done se concentre sur les normes internes de l’équipe de développement, garantissant la qualité et la cohérence du code livré, tandis que les Critères d’Acceptation sont axés sur les attentes des utilisateurs finaux, définissant les conditions nécessaires pour que la fonctionnalité soit considérée comme réussie.
Le Definition of Done est générique, les critères d’acceptation sont spécifiques à l’élément auquel ils sont liés.
Ces deux concepts travaillent de concert pour assurer la livraison réussie d’un produit logiciel de haute qualité, en alignant les objectifs de l’équipe de développement avec les besoins réels des utilisateurs.