Les feature flags (ou feature toggles) sont une technique qui consiste à encapsuler une fonctionnalité derrière un interrupteur configurable. Concrètement, c'est un mécanisme de condition dans le code qui permet d'activer ou désactiver une fonctionnalité pour tout ou partie des utilisateurs, sans déployer une nouvelle version de l'application.
L'intérêt principal est de découpler le déploiement du code et l'activation des fonctionnalités. Une équipe peut merger du code en production quotidiennement, même si la fonctionnalité n'est pas terminée — elle reste désactivée par le flag. Cela réduit les risques de merge complexes, permet le déploiement continu et facilite les rollbacks : si une fonctionnalité pose problème, on la désactive sans déploiement d'urgence.
Les feature flags servent aussi au lancement progressif (canary release) : activer une fonctionnalité pour 5 % des utilisateurs, observer les métriques, puis étendre progressivement. En revanche, ils ajoutent de la complexité au code. Il est essentiel de nettoyer les flags obsolètes régulièrement pour éviter d'accumuler une dette technique spécifique.