ENES

Feature flag

Un interruptor en el código que prende o apaga una función sin publicar otra versión.

El mismo código desplegado llega a los usuarios a través de un interruptor: con el flag prendido para el 10% ven el checkout nuevo, el otro 90% sigue con el viejo

Un feature flag es un if cuya respuesta vive fuera del código. El programa pregunta "¿está prendido new_checkout para este usuario?" y una configuración, guardada casi siempre en un servicio aparte o en una base de datos, contesta sí o no. Cambiás esa configuración y la app se comporta distinto al instante, sin compilar ni hacer deploy de nuevo.

Así se separan dos cosas que antes pasaban en el mismo momento: subir el código a los servidores y dejar que la gente lo use. Un equipo puede mergear una función a medio terminar escondida detrás de un flag, prenderla primero para la gente de la empresa, después para el 1% de los usuarios, después para el 10%, mirando errores y ventas en cada paso. Si algo sale mal, alguien apaga el flag y en segundos vuelve el comportamiento anterior, sin tener que revertir toda la versión.

Los flags también sirven para tests A/B (la mitad de los usuarios ve la versión A y la otra mitad la B), para funciones premium que solo ven los clientes que pagan y para "kill switches" que apagan una parte cara o rota del sistema en medio de un incidente. Servicios como LaunchDarkly, Unleash o Flagsmith los administran a gran escala.

La contra es que cada flag duplica los caminos posibles dentro del código. Los flags viejos que nadie borra se acumulan como deuda técnica, y uno olvidado que alguien prende por error puede despertar código que no corre hace años. Los buenos equipos le ponen a cada flag un responsable y una fecha de vencimiento.

Para quedarse

Para seguir leyendo

Términos relacionados

Más de Software