Idea

El comportamiento real de un producto no está solo en el repositorio: depende de la configuración desplegada

Info

Escrito originalmente en francés. Traducido por IA — se ha preservado el sentido, no la prosa.

Idea principal

Un repositorio que contiene un feature flag no contiene un comportamiento, contiene dos, y no dice cuál se ejecuta. La lectura del código establece entonces que los dos existen, nunca cuál se aplica. Cuando un Customer Success Manager pregunta "¿en qué condiciones se bloquea este workflow para este cliente?", la respuesta no está en los archivos: está en el estado del flag para el entorno donde ese cliente trabaja.

De ahí se derivan dos regímenes de respuesta, y no valen lo mismo. Sin acceso al entorno, la respuesta sigue siendo condicional: si el flag está activado, el comportamiento es este; si no, es distinto. Con ese acceso, se convierte en una respuesta sobre el producto tal como ese cliente concreto lo vive, en su configuración, en esa fecha.

El punto es más amplio que el mecanismo de los flags. Una pregunta de soporte o de preventa casi nunca trata del código abstracto; trata de lo que una cuenta concreta observa en pantalla. Designar el repositorio como fuente de verdad resuelve el desacuerdo entre el código y una documentación caducada, y deja intacta la distancia entre el código y un despliegue. La fuente completa del comportamiento observado es un par: el repositorio y el estado del entorno que lo ejecuta.

Por qué es importante

Esto impide una lectura demasiado rápida del desplazamiento hacia el código. "La verdad es lo que se ejecuta" designa el repositorio mientras hablamos del producto en general, y deja de designarlo en cuanto hablamos de un cliente, que es el caso de la mayoría de las preguntas que llegan cada día.

También fija lo que un comercial tiene derecho a prometer. Un comportamiento presente en el repositorio no es un comportamiento disponible para el cliente potencial que tiene enfrente, y la diferencia entre ambos se lee en un ajuste, no en el código.

Matices y límites

La dependencia de la configuración solo afecta a una parte del producto. En la mayor parte del comportamiento no hay ningún interruptor en juego y el repositorio decide por sí solo; tratar cada respuesta como condicional por principio equivaldría a no afirmar ya nada.

El acceso al entorno, por otra parte, no es una simple cuestión técnica. Leer la configuración de producción de un cliente implica datos reales y reglas de confidencialidad, y no todas las organizaciones pueden abrirlo al mismo perímetro de funciones.

Por último, el estado de un flag tiene fecha como todo lo demás. Una respuesta exacta en el momento en que se da deja de serlo al primer cambio de ajuste, sin que ninguna modificación del código lo haya señalado.

Preguntas abiertas

  • ¿Quién, dentro de una organización, autoriza a un dispositivo de respuesta a leer la configuración de producción de un cliente, y bajo qué control?
  • ¿Cómo se transmite una respuesta condicional a un cliente sin volverse inutilizable para quien la lleva a una reunión?