La vie d'une feature

Une feature est un service, observable de l'extérieur, qui contribue à un impact, et dont la description se situe à un niveau tel que toutes les parties prenantes comprennent facilement ce dont il s'agit.

Côté développement, une feature peut se voir comme un ensemble de stories et qui a sa propre existence.

Un aspect fondamental du développement agile est de répondre à l'impact (et donc fournir de la valeur) en minimisant l'effort à faire pour développer la feature. C'est pourquoi la pratique de la division de feature, comme de story est si importante.

La vie d'une story, avec Scrum, c'est rythmé par le sprint, ce qui limite l'éventail des états intéressants. C'est pourquoi j'ai pu définir des bacs, sans que cela soit spécifique à un contexte particulier.

Chaque bac correspond à un moment important de la vie de la story : encore une idée dans le bac à sable, en affinage, prête, en développement dans le sprint et finie.

La vie d'une feature, entre le moment où c'est encore une opportunité et celui où elle est utilisée, dépend plus du contexte. Les états significatifs peuvent varier selon le type de déploiement, la taille du produit, le rythme des sprints et des releases, les indicateurs à produire. Cependant, j'ai trouvé un schéma (pattern) qui convenait à de nombreuses situations, en tout cas qui pouvait servir de point de départ :

tableau des features

On pourrait aussi représenter la vie d'une feature avec des bacs. Pour bien distinguer des stories, je préfère utiliser un tableau pour les features.

Opportunités

C'est l'équivalent du bac à sable. Chaque idée de feature représente une opportunité.

Prévue pour la release

L'étude d'opportunité a abouti, la feature est prévue pour la release en cours.

En affinage

On commence à travailler sur cette feature. Elle est "copiée" dans le bac d'affinage, sous forme d'epic, pour être décomposée en stories.

Minimisée

L'affinage des stories a permis d'identifier le minimum à faire pour que la feature ait du sens et apporte de la valeur. Elle est devenue une MMF (Minimal Marketable Feature). Si on a déscopé des stories, on a en même temps créé une nouvelle feature qui les regroupe, placée dans les opportunités (ou le bac à glace). On a aussi ajouté une nouvelle story, dite de finition de feature, dans le bac d'affinage.

Testée

La feature est testée (avec ses stories, finies elles aussi) et tourne, généralement dans un environnement dit de pré-prod. C'est ce qu'on appelle une RTF (Running Tested Feature). Elle est conforme à la définition de fini d'une feature.

Déployée

Elle est à disposition des utilisateurs qui sont sollicités pour fournir du feedback. Si on a une release cadencée, le déploiement se fait à la fin de chaque release.