Aller au contenu principal

Feature Management et Feature Experimentation

Les capacités de feature management et de feature experimentation représentées sur un téléphone

Qu’est-ce que le Feature Management ?

Le Feature Management est une pratique de développement de vos produits (web ou app). Elle consiste à contrôler le déploiement d’une fonctionnalité par la mise en place d’une ligne de code permettant l'exécution conditionnelle du code d'un site ou d'une application pour activer ou désactiver une fonctionnalité appelée feature flags.

Lors d’un lancement de produit classique, les équipes rendent disponible une nouvelle fonctionnalité sans pouvoir maîtriser qui y a accès, ni dans quelles conditions ou à quel moment. En cas de bug ou de dysfonctionnement, la fonctionnalité est totalement retirée et abandonnée. Une erreur qui peut s’avérer coûteuse !

Avec le Feature Management, le déploiement de la nouvelle fonctionnalité est dissocié du lancement officiel. En protégeant le code lié à la fonctionnalité par un feature flag, les équipes peuvent choisir d’activer ou de désactiver la feature et continuer à développer du code pour la renforcer. Il est ainsi possible de procéder par itérations et de tester la feature auprès d’un segment d’utilisateur donné avant de généraliser son utilisation.

Un rapport présenté par Gartner fin 2023 présente le Feature Management comme une tendance en plein essor et une pratique permettant d’observer un ROI rapide. Kameleoon fait partie des 6 solutions mises en avant par Gartner dans le cadre de son étude. 

Comment fonctionne le Feature Management ?

Le Feature Management est indissociable des feature flags, généralement codés par un développeur et contrôlés par un Product Manager qui active et désactive la fonctionnalité en fonction des besoins. Ils permettent de : 

  • Déployer des fonctionnalités et de les améliorer par itérations
  • Délivrer les fonctionnalités lorsqu'elles sont prêtes sans les rendre disponibles à tous les utilisateurs par défaut
  • Restreindre l'accès à quelques utilisateurs sélectionnés
  • Tester l’adoption et l’utilisation de la fonctionnalité par les utilisateurs
  • Lancer les fonctionnalités pour tous les utilisateurs seulement lorsqu’elles sont sûres et validées

 
Les équipes techniques peuvent ainsi procéder sereinement au lancement d’une fonctionnalité, car les risques associés sont largement diminués grâce au testing et aux itérations opérées avant son lancement.

Image
Feature Management : Séparer le cycle de release produit du déploiement de fonctionnalité

Quels sont les avantages du Feature Management ?

Le Feature Management est principalement utilisé par les équipes Produit et DevOps. Souvent utilisée dans le cadre d’une stratégie orientée produit (Product-Led Growth), le feature management permet aux équipes de lancer plus rapidement de nouvelles fonctionnalités innovantes et de faire preuve de plus de créativité. En effet, cette pratique permet :

  • d’améliorer la qualité du produit : les lancements progressifs permettent aux équipes de détecter les bugs avant le lancement et d’itérer rapidement ;
  • d’améliorer l’expérience utilisateur : elle n’est plus altérée par une fonctionnalité buggée ou inutile ;
  • de s’assurer de la qualité de la nouvelle fonctionnalité avant son lancement : le feature management permet de lancer des tests de fonctionnalités (feature experimentation) qui valident leur pertinence avant leur lancement ;
  • de restreindre l’accès à certaines fonctionnalités à des groupes d’utilisateurs ciblés : choisissez quels segments de clients ont accès à quelles fonctionnalités pour leur proposer une expérience sur mesure ;
  • de mieux comprendre comment vos utilisateurs interagissent avec vos features : obtenez des données précises sur l’adoption et l’utilisation de vos fonctionnalités par vos visiteurs. Vous saurez ainsi comment les améliorer.
New call-to-action

FEATURE MANAGEMENT ET LIVRAISON PROGRESSIVE

La livraison progressive (ou Progressive Delivery) est une pratique consistant à déployer une nouvelle fonctionnalité uniquement auprès d’un faible pourcentage d’utilisateurs, afin d’analyser et de comprendre les effets de la mise à jour avant de la lancer pour l’ensemble des utilisateurs.

Adopter une démarche de feature management vous permet de délivrer progressivement vos fonctionnalités  via le feature flagging. D’après une étude d’Atlassian, les entreprises qui utilisent les feature flags ajoutent en moyenne 22 nouvelles fonctionnalités par an à leurs produits.

Image
Exemple de Feature Flags

Qu’est-ce que la Feature Experimentation ?

La Feature Experimentation sert à tester de nouvelles fonctionnalités en utilisant le feature flags et à mesurer leur performance par rapport aux KPI de votre entreprise.

Deux types de tests sont possibles :

  • le déploiement de plusieurs versions d’une même fonctionnalité pour voir quelle version performe le mieux (test A/B ou test A/B/n) ;
  • le déploiement d’une seule fonctionnalité pour un groupe d’utilisateurs ciblé afin de déterminer si la fonctionnalité peut être ouverte à l’ensemble des utilisateurs.

 

Cette pratique est largement plébiscitée par les équipes Produits qui ont recours à la Feature Experimentation pour tester une fonctionnalité, l’itérer et mettre en production la meilleure version. D’après une étude réalisée par Forrester, environ 50 % des personnes interrogées considèrent que la pratique de la Feature Experimentation est « très importante » dans leur cycle de développement produit. Un avis partagé par Shagun Aulakh, Director of Product Management chez American Express.

La plupart des entreprises sont organisées en méthode agile pour optimiser la livraison produit. Néanmoins, on voit une vraie différence lorsqu’elles adoptent la Feature Experimentation. Grâce à l’expérimentation continue, leurs produits sont plus utiles, plus aboutis et surtout plus innovants.
Shagun Aulakh headshot
Shagun Aulakh
Director of Product Management

Plusieurs grandes entreprises ont recours à la Feature Experimentation. Microsoft, par exemple, utilise la Feature Experimentation depuis qu’elle a constaté que sur 10 projets de développement de nouvelles fonctionnalités, ⅓ engendraient des résultats satisfaisant, ⅓ n’avaient apparemment aucun effet et ⅓ montraient des répercussions négatives sur les indicateurs suivis.

Comment fonctionne la Feature Experimentation ?

La Feature Experimentation reproduit les principes de l’expérimentation classique et les applique au développement et au lancement Produit :

  • Étape 1 - Identification du problème : recueillir des données issues de retours utilisateurs ou des data analytics pour identifier les pain points.
  • Étape 2 - Formulation d’une hypothèse : proposer une amélioration permettant de résoudre les problèmes identifiés.  
  • Étape 3 - Lancement du test : pousser la fonctionnalité à un groupe d’utilisateurs ciblé ou tester plusieurs versions de la fonctionnalité. 
  • Étape 4 - Analyse des résultats : collecter les données sur la manière dont les utilisateurs interagissent avec la fonctionnalité et suivre les KPIs.
  • Étape 5 - Itérations ou lancement de la fonctionnalité : si les résultats du test sont concluants, lancer la fonctionnalité tout en réfléchissant à la manière dont on peut la perfectionner. Si la fonctionnalité doit être retravaillée, reprendre à l’étape 1 jusqu’à l’obtention de résultats probants. 

 

Ce processus se déroule rapidement et sur un cycle court et permet d’adopter une approche centrée sur l’utilisateur pour améliorer le produit efficacement.

Quels sont les avantages de la Feature Experimentation ?

Grâce à la Feature Experimentation, les équipes Produit peuvent transformer leur approche et leur mindset : il ne s’agit plus de garantir seulement le bon fonctionnement du produit, mais également de l’optimiser et d’innover en continu.

OPTIMISER LES RESSOURCES ALLOUÉES AU DÉVELOPPEMENT DE FONCTIONNALITÉS

La Feature Experimentation permet également de tester le prototype d’une fonctionnalité pour s’assurer de la pertinence d’un investissement. Les ressources nécessaires à la création d’un prototype sont bien moins importantes que celles requises pour la conception d’une fonctionnalité. Les résultats de l’expérience permettent de définir à moindres coûts si la fonctionnalité peut être lancée, doit être itérée ou abandonnée. 

CONCEVOIR DE MEILLEURES FONCTIONNALITÉS

Grâce à la Feature Experimentation, vous pouvez comparer plusieurs versions d’une fonctionnalité et conserver la meilleure. En contrôlant l’accès à la nouvelle feature et en la diffusant progressivement à des groupes d’utilisateurs ciblés, il est aussi possible d’analyser les données relatives à son utilisation pour l’optimiser. Seule une fonctionnalité performante et aboutie sera donc proposée à l’ensemble des utilisateurs.

MESURER L’IMPACT BUSINESS DES NOUVELLES FONCTIONNALITÉS

Avec la Feature Experimentation il est facile d’obtenir des données à mettre en perspective avec les objectifs et les KPIs de l’entreprise. Les solutions de Feature Experimentation permettent de comparer facilement les résultats avec les indicateurs business via les rapports d’expérience. 

Idéalement, choisissez un outil hybride permettant de mener des tests côté serveur tout en observant les performances de la fonctionnalité à l’aide de données analytiques côté client. Vous pourrez ainsi faire collaborer les équipes Marketing, Produit et DevOps sur une même plateforme autour des mêmes objectifs.

Image
Chiffre d'affaires généré comparé au chiffre d'affaires projeté

Feature Management et Feature Experimentation

La Feature Experimentation fait partie du Feature Management : 

  • Feature Management : Activer ou désactiver une fonctionnalité pour un groupe précis d’utilisateurs.
  • Feature Experimentation : Lancement de différentes versions d’une fonctionnalité pour voir celles qui donnent les meilleurs résultats.

 

Généralement, on commence par la mise en place d’un Feature Management avec des feature flags avant de passer à la Feature Experimentation. 

Image
Schéma illustrant un test de fonctionnalité entre deux variations sur mobile

Le Feature Management sécurise la livraison d’une fonctionnalité ou d’une expérience produit en procédant par itération. La Feature Experimentation permet d’obtenir les données nécessaires pour savoir si la fonctionnalité répond aux besoins ou aux attentes des utilisateurs, si elle est suffisamment optimisée et quelles sont ses performances.

Avec Feature Experimentation, les équipes Produit peuvent fonder leurs hypothèses et la priorisation  de leur roadmap sur des données plutôt que sur des intuitions.

Le Feature Management peut-il engendrer une dette technique ?

Une mauvaise gestion du code ou un dysfonctionnement dans les processus DevOps peuvent engendrer une dette technique. En plus de nuire à l’efficacité de l’équipe et des opérations qu’elle mène, elle peut détériorer l’expérience utilisateur, compliquer la compréhension du contenu du code et augmenter le risque d’incident.

Image
Schéma illustrant la dette technique du Feature Management

Certaines équipes se montrent réticentes à utiliser les feature flags car elles craignent que cela complexifie le code. En effet, si les feature flags obsolètes ne sont pas supprimés, il peut devenir difficile pour les équipes de distinguer le code nécessaire du code superflu.

Néanmoins, il est possible d’éviter cet écueil en mettant en place quelques bonnes pratiques autour de la gestion des feature flags comme une bonne nomenclature et leur suppression systématique dès qu’ils ne sont plus utiles.

Certaines solutions de Feature Management permettent également de pallier cette difficulté en notifiant les équipes lorsqu’un feature flag n’a pas été sollicité depuis longtemps. Il est ainsi plus facile d’identifier les feature flags à supprimer.

Comment mettre en place la Feature Experimentation ?

Passer du simple déploiement de fonctionnalités au Feature Management puis à la Feature Experimentation requiert généralement de passer par 3 niveaux de maturité :

  • Niveau de maturité 1 - Les feature flags : Le Feature Management débute généralement par l’utilisation des feature flags. La plupart des entreprises les utilisent déjà, sont en train de les mettre en place ou prévoient de le faire. À ce stade, ils peuvent donner l’impression de rallonger les délais entre création d’une idée et sa production. Ils sont toutefois nécessaires pour passer aux étapes suivantes.
  • Niveau de maturité 2 - Le Feature Management : Les équipes déploient et lancent les fonctionnalités dans des délais bien définis et à un rythme régulier. Des process solides sont mis en place. 
  • Niveau de maturité 3 - La Feature Experimentation : Les équipes ne se contentent plus de lancer de nouvelles fonctionnalités, elles expérimentent et innovent. Des hypothèses permettent de configurer des tests pour évaluer les performances des fonctionnalités avant de décider de procéder au lancement, à l’itération ou à l’abandon de la feature.

 

Quel que soit le niveau de maturité de l’équipe, elle doit être guidée par la volonté de résoudre une problématique client, identifiée par des données et non basée sur des intuitions.

Comment faire du Feature Management et de la Feature Experimentation ?

Il existe aujourd’hui deux types d’outils pour faire du Feature Management et de la Feature Experimentation :

  • les outils de Feature Management qui proposent de l’expérimentation (LaunchDarkly, Split.io) ;
  • les outils d’expérimentation qui proposent du Feature Management, de la Feature Experimentation et du feature flagging (Kameleoon, Optimizely).

D’après Forrester, la meilleure option serait la seconde car :

  • Les marketeurs et Product Managers ont besoin de données analytiques pour comprendre l’impact des campagnes sur les KPI. Généralement, les solutions de Feature Management ne sont pas liées au côté client et les rapports de données omettent souvent des données d’analyse essentielles.
  • Ils doivent pouvoir effectuer des tests en front-end (JavaScript et d’autres frameworks JS comme React) comme en back-end. Les outils de Feature Management sont le plus souvent conçus autour des besoins des développeurs back-end.
  • Ils ont besoin d’intégrations fluides dans le plan de taggage actuel. Dans 95 % des cas, elles sont mises en œuvre dans JS en front-end.

 
Les plateformes d’expérimentation permettraient donc une collaboration plus facile entre les équipes Marketing, Produit et DevOps quand les pure players Feature Management seraient essentiellement conçus pour les ingénieurs.

Kameleoon : une solution d’expérimentation tout-en-un

Kameleoon est la seule solution d’optimisation qui permet le feature flagging, le Feature Management et la Feature Experimentation sur une plateforme unique. Les équipes marketing et produit peuvent travailler ensemble sur une seule et même plateforme, dans l’environnement de leur choix.

Avec Kameleoon Full Stack, elles peuvent :

  • Valider les nouvelles fonctionnalités sans risque, grâce à des tests et des règles de déploiement sophistiquées ;
  • Piloter les cycles de lancement à l’aide du Feature Management, pour une valeur ajoutée accrue ;
  • Utiliser des services disponibles seulement côté clients, comme le ciblage d’utilisateurs avancé, les intégrations, les éditeurs graphiques et de code, même pour des tests codés côté client avec Kameleoon Hybrid™;
  • Continuer de travailler dans leur environnement habituel grâce à de nombreux SDK ;
  • Suivre les performances de leurs fonctionnalités grâce à un dashboard de  rapports qui compilent les données client-side.

 

Pour découvrir comment Kameleoon peut vous aider à mettre en place le Feature Management et la Feature Experimentation, demandez une démo dès aujourd’hui.

FAQ
Pourquoi le feature management est-il si important ?

Le Feature Management permet de mieux contrôler le lancement d’une nouvelle fonctionnalité en permettant aux équipes de dissocier le déploiement du lancement. Les développeurs peuvent ainsi déployer du nouveau code en continu, sans avoir à la lancer auprès des utilisateurs, ou peuvent la présenter uniquement à un segment d’utilisateurs ciblé.

Qu'est-ce que le feature flag management ?

Le Feature Flag Management consiste à appliquer des process et à mettre en place des outils pour gérer les feature flags. C’est un aspect essentiel du Feature Management.

Quelle est la différence entre le feature flagging, le feature management et la feature experimentation ?

Les feature flags permettent de contrôler l’activation ou la désactivation d’une fonctionnalité pour un groupe d’utilisateurs précis. Le Feature Management est une méthode de lancement de fonctionnalité qui utilise les feature flags pour procéder par itération sous forme de livraison progressive. La Feature Experimentation fait partie du Feature Management. Elle a pour but d’utiliser les feature flags pour tester une fonctionnalité, déterminer si elle s’exécute comme prévu et pour analyser ses performances par rapport aux KPI de l’entreprise.

Qu'est-ce que le feature testing ou test de fonctionnalité ?

Le feature testing ou test de fonctionnalité est une méthode de test de fonctionnalités afin d’analyser leurs performances par rapport à un objectif prédéfini. Il est parfois synonyme de Feature Experimentation, bien qu’il soit généralement moins poussé.

Back to the top