Les feature flags comme infrastructure d'ingénierie
· 7 min de lecture
Les flags ne sont pas des hacks temporaires. C'est ainsi que les équipes modernes séparent deploy et release.
Le deploy doit être ennuyeux
Livrer du code en production et exposer une fonctionnalité aux utilisateurs sont des décisions différentes. Les feature flags permettent aux équipes de merger en continu tout en contrôlant le rayon d'impact. Combinés à l'observabilité, ils transforment les releases en expériences réversibles plutôt qu'en événements binaires.
Cela ne fonctionne que lorsque les flags sont traités comme de l'infrastructure : clairement nommés, possédés par une équipe, avec des défauts sûrs, et retirables selon un calendrier.
Concevoir pour l'opérabilité
Chaque flag a besoin d'une valeur par défaut quand le service de gestion est indisponible. Les chemins critiques doivent fail-closed ou fail-open intentionnellement, jamais au hasard. Les règles de ciblage doivent être testables et auditables, surtout pour les clients entreprise et les workflows réglementés.
Évitez d'envelopper des comportements non liés dans un seul flag. Les flags grossiers créent un cleanup embrouillé. Les flags fins créent un coût de test combinatoire. Groupez par capacité visible à l'utilisateur.
- Enregistrez qui a changé un flag et pourquoi
- Fixez des dates de retrait à la création des flags
- Gardez l'évaluation des flags hors des boucles serrées quand c'est possible
- Testez les chemins activés et désactivés
Les expériences ont besoin d'hygiène
Quand les flags alimentent des expériences, définissez l'hypothèse, la métrique primaire et les critères de fin avant le lancement. Ne laissez pas des expériences à moitié finies tourner indéfiniment ; elles polluent l'analytique et augmentent la charge cognitive.
Segmentez avec soin. Des expériences qui se chevauchent sur le même parcours peuvent invalider les conclusions et créer des expériences utilisateur confuses.
Le cleanup fait partie de la livraison
Un flag qui survit longtemps après qu'une fonctionnalité est entièrement livrée devient de la configuration morte et du branchement caché. Planifiez le cleanup avec le même sérieux que le lancement. Supprimez les chemins inutilisés pour que la codebase reflète la réalité.
Les équipes matures gagnent avec les flags non pas parce qu'elles ont plus de toggles, mais parce qu'elles peuvent releaser en sécurité et laisser le système plus simple ensuite.
Publié le 14 février 2025 par Berktug Berke Ates.