Features et stories

Comme la story, la feature a un cycle de vie

Features et stories

Une feature est décomposée en stories. Une story est planifiée dans un sprint et une feature dans une release.

Imaginez que vous développez une application comme Dotclear mon moteur de blog, mais qui n’offrirait pas encore la gestion des tags, ni la possibilité d’attacher un fichier à un billet.

Gestion de tags et attachement de fichiers sont des features. Pour savoir à quel moment on les développe, on s’intéresse à leur utilité et on estime l’effort de développement nécessaire. Cela aidera pour définir leur priorité.

Pour commencer à développer une feature, il faut la décomposer en stories.

Par exemple pour la gestion de tags :

  • en tant que blogueur je peux ajouter un tag à un billet afin de faciliter sa recherche
  • en tant que visiteur je peux obtenir la liste des billets associés à un tag

On dit qu’une story apporte une utilité. Composée de plusieurs stories, une feature apporte un utilité plus substantielle. Mettre en production une story seule n’a généralement pas d’intérêt, à la différence d’une feature regroupant quelques stories.

Le nombre de stories dans une feature varie. Pour l’exemple de gestion des tags, on peut ajouter plein d’autres stories :

  • supprimer un tag d’un billet
  • changer le nom d’un tag
  • faire un nuage de tags
  • filtrer par tags
  • supprimer un tag
  • fusionner des tags

Certaines de ces stories sont à destination du blogueur (côté back-office) et les autres pour le visiteur. Toutes ne sont pas obligatoires pour une mise en production, par exemple on peut se passer du nuage de tags ou de la fusion des tags dans une première version, c’est au Product Owner de définir le minimum indispensable.

Lors de la planification, les stories sont associées à des sprints. Réalisée dans un sprint, une story est normalement finie à la fin de ce sprint. La feature a le même comportement à un niveau de planning supérieur. Les features sont associées à des releases. Par exemple, on dira que la feature Gestion des tags sera faite dans la release R2 qui se termine en octobre.

Comme la story, la feature a un cycle de vie, en plus simple : à faire, en cours, fini. Plutôt que pour une story, c’est pour une feature qu’on peut faire une estimation (relative) de son utilité. L’estimation de l’effort d’une feature est obtenue par la somme de celles de ses stories. Chaque story possède ses tests d’acceptation. Pour tester une feature, on testera chaque story qui la compose et il sera utile d’ajouter quelques tests au niveau feature, enchaînant des tests élémentaires ou portant sur des aspects non fonctionnels (volumétrie, performance, ergonomie) ou du niveau système (comme la sauvegarde).

Billets en relation :


Voir aussi