Feature Flags / Feature Toggles

Foto de Sohrab Salimi
Sohrab Salimi
22.10.25
3 min. tiempo de lectura

¿Qué es Feature Flagging?

Feature Flagging se refiere a la práctica de activar o desactivar funcionalidades en desarrollo dentro de una aplicación en tiempo real, sin necesidad de realizar un nuevo despliegue (deployment).
Esta técnica permite a los equipos de desarrollo entregar software más rápido, con mayor seguridad y mejor coordinación entre equipos, respondiendo a la creciente necesidad de hacer despliegues independientes y continuos.


Sinónimos de Feature Flags / Feature Toggles

  • Feature Toggles / Feature Toggling
  • Feature Switches
  • Feature Flippers
  • Feature Bits
  • Conditional Features (especialmente en el contexto de user targeting)

Objetivos y beneficios de los Feature Flags

Gracias al uso de Feature Flags, los equipos de desarrollo pueden:

  • Entregar software más rápido y liberar nuevas funciones gradualmente (Continuous Integration y Continuous Delivery más eficientes).
  • Integrar nuevas funcionalidades entre equipos sin dependencias complejas.
  • Probar nuevas características en entornos de producción sin que los usuarios finales las vean.
  • Liberar funciones para grupos de usuarios específicos (por ejemplo, betatesters o clientes premium).
  • Mejorar la usabilidad y funcionalidad mediante pruebas continuas y feedback real.
  • Mantener la estabilidad del sistema al poder desactivar funciones defectuosas sin necesidad de un nuevo despliegue.
  • Reducir el tiempo y esfuerzo en corrección de errores (bugfix deployments).
  • Separar el proceso de release del de deployment, aumentando la flexibilidad.
  • Evitar despliegues grandes y riesgosos, al fusionar código con más frecuencia en el branch principal.
  • Responder rápidamente a cambios en los requisitos del cliente sin tener que redeployar.

¿Cuándo y cómo usar Feature Flags?

En la práctica, muchas funciones terminadas no pueden lanzarse aún a producción.
Gracias a los Feature Toggles, el código puede fusionarse y desplegarse de inmediato, aunque las nuevas funciones permanezcan ocultas hasta que estén listas.
Esto evita conflictos al hacer merge y reduce riesgos cuando varios equipos trabajan sobre la misma base de código.

Casos de uso comunes

  • Integración Continua y Continuous Delivery (CI/CD)
  • Kill Switches
  • Pruebas A/B en producción
  • Configuration Management
  • Control de permisos y acceso
  • Rollout gradual de funcionalidades

Tres formas de implementar Feature Flags

  1. Directamente en el código.
  2. A través de un archivo de configuración (config).
  3. Mediante un software de gestión de Feature Flags.

Recomendaciones:

Para evitar que el código se vuelva complejo, los equipos deben:

  • Usar los Feature Flags de manera limitada y controlada.
  • Eliminar las flags obsoletas tan pronto como dejen de ser necesarias.

Tipos de Feature Flags

Dependiendo de su duración y propósito, los Feature Flags se clasifican en cuatro tipos principales:

1. Release Toggle

Permiten desplegar código incompleto o no probado en producción sin activarlo.
Esto permite a los product managers habilitar funciones cuando sea conveniente.

2. Experiment Toggle

Permiten probar nuevas funciones con grupos específicos de usuarios, evaluando su comportamiento antes de un lanzamiento general.
Son muy útiles para A/B Testing y experimentación controlada.

3. Ops Toggle

Permiten al equipo de operaciones controlar el comportamiento de la aplicación, desactivar funciones no críticas o realizar rollbacks rápidos (función Kill-Switch).
También se usan para probar la carga del sistema de nuevas funciones con grupos pequeños.

4. Permission Toggle

Permiten controlar el acceso a funciones según el tipo de usuario (por ejemplo, usuarios VIP, premium o beta testers).
También se usan para liberar gradualmente nuevas capacidades a determinados segmentos.


Conclusión sobre Feature Flags / Feature Toggles

Los Feature Flags permiten a los equipos entregar, integrar y probar nuevas funcionalidades de manera más rápida, segura y flexible.
Pueden aplicarse tanto en el backend como en el frontend, lo que los convierte en una herramienta versátil para el desarrollo ágil moderno.

Importante:
Una vez que una flag deja de ser necesaria, debe eliminarse para mantener el código limpio y evitar complejidad innecesaria.