Idée principale
Un dépôt qui contient un feature flag ne contient pas un comportement, il en contient deux — et il ne dit pas lequel s'exécute. La lecture du code établit alors que les deux existent, jamais lequel s'applique. Quand un Customer Success Manager demande « dans quelles conditions ce workflow se bloque pour ce client ? », la réponse n'est pas dans les fichiers : elle est dans l'état du flag pour l'environnement où ce client travaille.
Deux régimes de réponse en découlent, et ils ne valent pas la même chose. Sans accès à l'environnement, la réponse reste conditionnelle : si le flag est activé, le comportement est celui-ci, sinon il est différent. Avec cet accès, elle devient une réponse sur le produit tel que ce client-là le vit, dans sa configuration, à cette date.
Le point est plus large que le mécanisme des flags. Une question de support ou d'avant-vente ne porte presque jamais sur le code abstrait ; elle porte sur ce qu'un compte donné observe à l'écran. Désigner le dépôt comme source de vérité règle le désaccord entre le code et une documentation périmée, et laisse entier l'écart entre le code et un déploiement. La source complète du comportement observé est un couple : le dépôt, et l'état de l'environnement qui l'exécute.
Pourquoi c'est important
Cela empêche une lecture trop rapide du déplacement vers le code. « La vérité, c'est ce qui tourne » désigne le dépôt tant qu'on parle du produit en général, et cesse de le désigner dès qu'on parle d'un client — ce qui est pourtant le cas de la plupart des questions qui arrivent chaque jour.
Cela fixe aussi ce qu'un commercial a le droit de promettre. Un comportement présent dans le dépôt n'est pas un comportement disponible pour le prospect qu'il a en face de lui, et la différence entre les deux se lit dans un réglage, pas dans le code.
Nuances et limites
La dépendance à la configuration ne concerne qu'une part du produit. Sur l'essentiel du comportement, aucun interrupteur n'est en jeu et le dépôt tranche seul ; traiter chaque réponse comme conditionnelle par principe reviendrait à ne plus rien affirmer.
L'accès à l'environnement, par ailleurs, n'est pas une simple question technique. Lire la configuration de production d'un client engage des données réelles et des règles de confidentialité, et toutes les organisations ne peuvent pas l'ouvrir au même périmètre de métiers.
Enfin, l'état d'un flag est daté comme le reste. Une réponse exacte au moment où elle est donnée cesse de l'être au premier changement de réglage, sans qu'aucune modification du code l'ait signalé.
Questions ouvertes
- Qui, dans une organisation, autorise un dispositif de réponse à lire la configuration de production d'un client, et sous quel contrôle ?
- Comment une réponse conditionnelle se transmet-elle à un client sans devenir inutilisable pour celui qui la porte en rendez-vous ?