Features, themes, epics et stories

Comment s'y retrouver ? Que met-on dans le backlog ?

Pour une fois je vais utiliser les termes anglais[1].

Puisque vous fréquentez ce blog, vous devez savoir ce qu'est une story et ce qu'est un backlog (de produit), deux éléments de base dans l'application des méthodes agiles. Mais il y a d'autres termes utilisés couramment dans la gestion agile des exigences.

Feature

L'élaboration de la vision du produit passe par l'identification des features. Le terme features est abondamment utilisé dans le domaine de l'ingénierie des exigences [2]. Il y a même une méthode agile qui l'utilise dans son nom : Feature driven development ou FDD. OpenUp définit une feature comme un service fourni par le système, observable de l'extérieur, et qui remplit directement un besoin d'une partie-prenante[3].

Theme

Un theme est une collection de stories. L'intérêt des themes est évident quand il s'agit de définir les priorités : c'est bien plus facile à faire sur 5 à 10 themes que sur des dizaines de stories. Un autre intérêt est de définir un domaine fonctionnel dont on pourra suivre l'avancement, notamment avec les diagrammes appelés parking lot.

Epic

Une epic est une grosse story. Elle est en attente de décomposition en stories "normales". L'intérêt d'avoir des epics est qu'il ne sert à rien de décomposer trop tôt : il est préférable de le faire au dernier moment raisonnable. On pourrait dire épopée ? épisode ?

Que met-on dans le backlog ?

Si on produit un document Vision avant d'élaborer le backlog initial, les features de la vision servent à amorcer le backlog. La démarche que je préconise, pour un nouveau projet, est de :

  • identifier les themes, en regroupant éventuellement des features pour en obtenir de 5 à 10 et en les consolidant de façon à constituer des domaines fonctionnels indépendants. Les themes seront utilisés dans le backlog comme attribut des stories.
  • décider des priorités entre les themes, par une session de priority poker ou un autre moyen comme la sélection de themes basée sur des critères de satisfaction[4].
  • pour les 1 ou 2 themes les plus prioritaires, décomposer en stories détaillées (normales), en pratiquant par exemple un story workshop. Les stories, avec leur theme, sont placées dans le backlog.
  • pour les autres themes, la ou les features correspondant deviennent des epics, ordonnés en utilisant les priorités définies sur les themes.

Cette liste ordonnée constitue le backlog initial.

Je crois que j'ai bien jargonné ce coup-ci.

Notes

[1] je sais que certains d'entre vous n'apprécient pas ma francisation de termes anglais

[2] requirements

[3] ça je le traduis, c'est le stakeholder en anglais

[4] que je présenterai bientôt