Feature flags y Scrum: habilitando la entrega continua
Un feature flag es un interruptor de configuración que determina si un usuario puede ver o usar una funcionalidad desplegada en producción. El código se fusiona en la rama principal y se despliega, pero la funcionalidad permanece invisible hasta que el interruptor se activa. Esto desacopla el despliegue del lanzamiento.
Tipos de feature flags
Flags de lanzamiento. Ocultan funcionalidades incompletas o no lanzadas. Son temporales -- deben eliminarse una vez que la funcionalidad está completamente lanzada.
Flags de experimento. Utilizados para pruebas A/B. Diferentes segmentos de usuarios ven versiones distintas. También temporales.
Flags operacionales. Controlan el comportamiento operativo del sistema en tiempo de ejecución. A menudo duraderos -- representan controles operativos permanentes.
Flags de permiso. Controlan el acceso según nivel de suscripción, región o rol. Frecuentemente permanentes, gestionados por sistemas de administración de cuentas.
La disciplina técnica requerida
Los flags no son gratuitos. Cada flag añade una rama condicional y complejidad. Una buena higiene de flags exige tratar la eliminación del flag como parte de la Definición de Hecho. Cada flag crea dos estados que deben probarse: activado y desactivado.
Cómo cambian el Sprint Planning y la Definición de Hecho
Con los flags, el equipo puede comprometerse a tener una funcionalidad desplegada y protegida por flag al final del Sprint, con la activación de negocio siguiendo cuando las condiciones lo permitan. La Definición de Hecho debe incluir explícitamente: código fusionado en main, flag probado en ambos estados, configuración accesible a los stakeholders correctos, monitoreo establecido, y ticket de eliminación del flag creado.
XNM Consulting ayuda a las organizaciones a construir prácticas ágiles y de entrega continua maduras, incluyendo los marcos técnicos y de gobernanza que hacen seguros y efectivos los feature flags.