🚩
methodologie

Feature Flag

Technique permettant d'activer ou désactiver des fonctionnalités sans redeployer l'application.

Qu'est-ce qu'un feature flag ?

Un feature flag (ou feature toggle) est une technique de développement qui permet d'activer ou de désactiver des fonctionnalités dans une application sans modifier le code ni redeployer. Le code de la nouvelle fonctionnalité est deploye en production mais "cache" derrière un flag conditionnel. Un système de configuration (base de données, service dédié) contrôle l'état de chaque flag.

Types de feature flags

Release flags : activer progressivement une fonctionnalité en production (canary release). Temporaires, retires après la generalisation. Experiment flags : tests A/B, montrer des variantes différentes à des segments d'utilisateurs pour mesurer l'impact. Ops flags : désactiver rapidement une fonctionnalité en cas de problème de performance ou de bug (kill switch). Permission flags : activer des fonctionnalités pour certains utilisateurs (beta testeurs, clients premium).

Avantages

Déploiement continu : le code est merge et deploye en continu sans attendre que la fonctionnalité soit complete (trunk-based development). Releases progressives : déployer à 1% des utilisateurs, monitorer, puis augmenter progressivement. Rollback instantané : désactiver un flag est immédiat, pas besoin de redeployer. Tests en production : tester avec de vrais utilisateurs et de vraies données. Decouplage deploy/release : déployer le code (technique) est separe de la release (métier).

Outils et implémentation

Les plateformes dédiées offrent des fonctionnalités avancees : LaunchDarkly (leader, targeting avance, analytics), Unleash (open-source, auto-heberge), Flagsmith (open-source, cloud ou auto-heberge), PostHog (feature flags + analytics), Split (experimentation avancee). L'implémentation minimale est un simple if/else avec un flag en configuration, mais les plateformes ajoutent le ciblage par segment, les pourcentages de rollout, les métriques, et les SDK multi-langages.

Bonnes pratiques et dette technique

Les feature flags créent une forme de dette technique s'ils ne sont pas gérés. Bonnes pratiques : nommer clairement chaque flag avec une date de création, documenter l'objectif et la condition de retrait, nettoyer les flags obsolètes régulièrement (sprint de nettoyage), limiter le nombre de flags actifs simultanément. Un flag devrait avoir une durée de vie définie. Les release flags sont retires après generalisation. Les flags permanents (permissions, ops) doivent être documentés et audites.

Besoin d'aide technique ?

Decrivez votre projet pour des conseils personnalises par nos experts.

Recevoir des conseils

Questions fréquentes

Les feature flags remplacent-ils les branches Git ?
Pas exactement, mais ils changent la strategie de branching. Avec les feature flags, le code incomplet peut etre merge sur main car il est desactive par defaut. Cela favorise le trunk-based development (branches courtes) et reduit les conflits de merge. Les feature branches restent utiles pour les changements structurels importants.
Comment eviter la complexite des feature flags ?
Limitez le nombre de flags actifs (moins de 20), definissez une date d'expiration pour chaque flag, automatisez le nettoyage (alertes quand un flag depasse sa duree prevue), evitez les flags imbriques (if flag A et if flag B), et designez un responsable pour chaque flag. Les outils comme LaunchDarkly offrent un suivi du cycle de vie des flags.

Pages liées

Chaque semaine, le meilleur de la tech française

Tendances, salaires, outils et opportunités — directement dans votre boîte mail.

Gratuit. Desabonnement en un clic. Pas de spam.