Feature

Qu’est-ce qu’une Feature ?

Dans le cadre du développement agile, les features correspondent à un bloc de fonctionnalités qui offre une valeur commerciale. Ces fonctionnalités ont pour objectif commun de répondre aux différents besoins du client. 

Présentation des features
 

Ainsi, elles peuvent inclure des ajouts ou des modifications aux fonctionnalités déjà existantes. Par ailleurs, à des fins de planification, certaines méthodologies agiles utilisent également la notion “d’éléments de travail” pouvant inclure des features, des corrections de bugs, des documents et autres artefacts. Cependant, les features représentent toujours l’unité principale du processus de planification de tâches.

Quels sont ses principaux critères ?

Les features sont généralement découpées en plusieurs user stories. Prenons l’exemple de la fonctionnalité dédiée au paiement sur une application mobile. Une fois que l’utilisateur a choisi ses articles et les a ajoutés au panier, il va passer au règlement de la commande. Il va donc cliquer sur le bouton “Passer au paiement”. Dans la partie développement, ce bouton correspond à la feature et il y découle plusieurs user stories : 

  • Carte bancaire
  • Paypal
  • Cartes cadeaux, Chèques cadeaux
  • Virement bancaire
  • Paiement en plusieurs fois par l’intermédiaire d’autres plateformes

 

Exemple de feature Mayasquad.
 

Chaque user story doit comprendre une brève description, comme vous le voyez sur l’image ci-dessous sous la forme “En tant que”, “Si je”, “Alors je souhaite”. Si on reprend l’user story 1.1, on obtient : En tant qu’utilisateur, si je clique sur procéder au paiement, alors je souhaite régler en carte bancaire. 

Il y a différents critères à respecter au niveau des features. Idéalement, vos elles doivent : 

  • Apporter une valeur commerciale au projet.
  • Être estimables autrement dit avoir une définition concrète pour que l’équipe de développement fournisse une estimation du travail impliqué dans sa mise en œuvre. Lorsque l’on parle d’estimation, on parle du délai et du prix du codage d’une feature. 
  • Être suffisamment succincte pour tenir dans une itération. Si elle est trop complexe, il est impératif qu’elle soit suffisamment décomposée en unités commerciales plus petites (stories) pour être exploitée. Les différentes modalités de paiement que nous avons vu ci-dessus sont un bon exemple de découpage d’une feature en plusieurs user stories. 
  • Être testable afin de savoir si elle est acceptable pour l’utilisateur, le client.

Comment gérer la création de features ? 

Gérer la conception des features d’un projet web est une étape très importante dans la gestion de projet. On parle de Feature Driven Development ou FDD. C’est pendant la phase de conception du projet qu’il va falloir décrire chaque feature et mettre en place une organisation. Voici quelques étapes clés à respecter : 

  • Lister les fonctionnalités : les porteurs de projets vont dresser une liste de toutes les fonctionnalités qu’ils souhaitent intégrer dans leur application ou leur site web. Le Product Owner peut également apporter des fonctionnalités supplémentaires s’il estime qu’elles ont une valeur ajoutée. 
  • Attribuer des priorités aux features : dans certains cas, il y a beaucoup trop de fonctionnalités qui ne sont pas essentielles dans une première version de projets web. Il est donc plus judicieux d’attribuer des priorités à ces dernières. Par exemple, “Ajouter au panier” est beaucoup plus important que “Laisser un avis”. On parle généralement de MVP que l’on pourra par la suite continuer de faire évoluer. 
  • Découper le projet en différents sprints : en développement agile, l’ensemble des features est découpé en plusieurs parties pour former des sprints. Cela permet aux équipes de développeurs d’avoir une meilleure organisation et de mieux visualiser les avancées du projet. 
  • Établir un calendrier : après avoir défini chaque sprint, le Product Owner attribue un délai de développement à chaque tâche. Le porteur de projet peut donc se tenir à jour de l’évolution de son projet digital grâce aux rapports d’avancement délivré par le chef de projet.
  • Tester les features : lors de la phase de développement, il ne faut surtout pas négliger le recettage. Ces tests peuvent se faire après le codage de chaque fonctionnalité, en fin de sprint mais également une fois le codage terminé, à la fin de la phase de développement pour vérifier que tout fonctionne correctement. 

 

Etapes de conception des features.
 

Il est à noter que tous ces éléments se retrouveront dans le cahier des charges et doivent être détaillés un maximum pour une bonne compréhension de toutes les parties prenantes. Si vous souhaitez en savoir plus sur le cahier des charges et ce qu’il contient, vous pouvez retrouver notre article juste ici

Pourquoi privilégier le Feature Driven Development pour votre projet web ? 

Le Feature Driven Development est une stratégie très efficace qu’il est conseillé d’adopter si votre projet est volumineux et complexe. Le fait de bien décrire chaque feature et de les organiser apportera de nombreux avantages aux développeurs ainsi qu’au porteur de projet. Voici une liste non exhaustive : 

  • Donne à l’équipe toutes les informations nécessaires à la compréhension du projet comme le contexte, l’objectif, le design, le délai, etc.
  • Réduit le nombre de réunions. En effet, comme tout est organisé en amont du développement, il n’y a plus besoin de faire des réunions à chaque étape. De plus, vous pouvez utiliser des logiciels ou des applications métiers par exemple, qui vous permettent de communiquer et de suivre en temps réel les réalisations de chacun. 
  • Se concentre sur l’utilisateur. Tout est fait pour que l’utilisateur final est une expérience optimale et de qualité.
  • Améliore le suivi du projet grâce au découpage en différents sprints. 
  • Permet de détecter facilement les bugs et autres problèmes et donc de les corriger plus rapidement. 

 

Les avantages du feature driven development.
 

Chez Mayasquad, nous travaillons beaucoup en méthode agile. On fait de l’utilisateur une priorité. On s’engage alors à produire une application ou un site web de qualité autant au niveau du design que du codage des différentes features ! N’hésitez pas à nous contacter si vous avez un projet en tête !