Feature flag
Un feature flag est une condition évaluée à l’exécution qui décide si une fonctionnalité est active, indépendamment du code déployé. Le code d’une nouvelle fonctionnalité peut être en production, inactif pour tous les utilisateurs, en attendant qu’un flag l’active pour un sous-ensemble choisi (un pourcentage, une liste de comptes, une région).
Ce que ça découple
Sans flag, déployer et publier sont le même événement : le code arrive en production et devient visible en même temps. Avec un flag, ce sont deux décisions distinctes, prises par des personnes différentes à des moments différents : une équipe technique déploie quand le code est prêt, une équipe produit active quand le contexte business est prêt (une date de lancement, une communication coordonnée).
Le piège : la dette de flags
Un flag créé pour une bascule progressive n’a de valeur que temporaire : une fois la fonctionnalité généralisée à 100 % sans rollback envisagé, le flag devient du code mort qui complexifie chaque lecture ultérieure. Un projet qui accumule des flags jamais nettoyés finit avec une matrice de combinaisons impossible à tester exhaustivement. La discipline qui évite ça : chaque flag a une date de suppression prévue au moment de sa création, pas seulement une date de création.