Cómo implementar feature flags y despliegue progresivo en tu aplicación web a medida
Tengo que confesarte algo: hace tres años desplegué un viernes a las seis de la tarde. Sí, ya sé. Teníamos presión de negocio, el sprint se cerraba ese día y yo estaba convencido de que "esta vez no pasa nada". Pues pasó. El módulo de pagos se fue al garete para el 100 % de los usuarios. El fin de semana más largo de mi carrera.
Aquel desastre me curó de espanto. Desde entonces, en nuestro equipo no se sube nada a producción sin un feature flag por delante. ¿Y sabes qué? No hemos vuelto a tener un incidente crítico en despliegue. Ni uno.
Según datos de DORA (DevOps Research and Assessment), las organizaciones que no aplican despliegue progresivo sufren hasta un 46 % más de incidentes críticos en producción. Si gestionas una aplicación web a medida --SaaS, portal corporativo o plataforma interna--, este artículo te explica cómo implementar feature flags para que los viernes por la tarde dejen de darte urticaria.
Qué son los feature flags y por qué deberían importarte
Un feature flag (también llamado feature toggle o interruptor de funcionalidad) es una condición en tu código que permite activar o desactivar una funcionalidad sin redesplegar. Como un interruptor de luz: la lámpara ya está instalada, pero tú decides cuándo encenderla y para quién.
En la práctica tiene esta pinta:
if (featureFlags.isEnabled('nuevo-panel-analitica', usuario)) {
mostrarNuevoPanel();
} else {
mostrarPanelActual();
}
Parece simple, ¿verdad? Pero lo que consigues es enormemente potente:
- Reducción del riesgo en cada despliegue: si algo falla, desactivas el flag en segundos. Nada de rollbacks dramáticos a las dos de la madrugada. Lo he hecho desde el móvil cenando con amigos.
- Pruebas A/B nativas: muestras la versión nueva al 10 % y mides impacto real. Datos en vez de intuición.
- Independencia entre equipos: varios desarrolladores trabajan en paralelo sin bloquearse. En un equipo de seis u ocho personas, esto es la diferencia entre entregar cada semana o cada mes.
- Control comercial: producto activa funcionalidades alineadas con campañas o fechas concretas sin tocar código.
Según LaunchDarkly (2025), las empresas que adoptan feature flags reducen un 55 % el MTTR y aumentan la frecuencia de despliegues un 40 %. Coincide con lo que he visto en nuestros proyectos.
Despliegue progresivo: el complemento imprescindible
Los feature flags son el mecanismo; el despliegue progresivo es la estrategia. El flag te da el interruptor; el despliegue progresivo define cómo y cuándo lo accionas.
Qué implica desplegar de forma progresiva
En lugar de soltar una funcionalidad al 100 % de golpe (lo que yo llamo "la ruleta rusa del deploy"), la expones gradualmente:
- Canary release: activas para un 1-5 % del tráfico. Monitorizas errores, latencia y métricas de negocio. Si algo pinta mal, cortas sin que casi nadie se entere.
- Expansión por segmentos: si va bien, amplías al 10 %, 25 %, 50 %... Cada paso con su período de observación.
- Lanzamiento general: cuando los datos confirman estabilidad, activas para el 100 %.
Parece lento, pero acelera las entregas. Al reducir el riesgo, los equipos se atreven a desplegar más a menudo. Netflix hace miles de despliegues diarios porque cada uno afecta a un porcentaje controlado. Nosotros pasamos de desplegar cada dos semanas a tres o cuatro veces por semana. Con menos estrés.
Estrategias de segmentación habituales
- Porcentaje aleatorio: lo más directo. Ideal para A/B testing y validaciones de rendimiento.
- Usuarios internos primero (dogfooding): tu equipo come su propia comida antes de servirla. Lo hacemos siempre sin excepción.
- Geografía: lanzas en un mercado antes de expandir. Hemos hecho rollouts primero en Cataluña y luego en el resto para clientes del sector retail.
- Tipo de cuenta o plan: los premium ven la feature antes. "Acceso anticipado" vende.
- Identificador de usuario concreto: para betatesting con clientes seleccionados. Funciona genial en B2B donde conoces a tus clientes por nombre.
Arquitectura práctica: cómo implementarlo en tu aplicación web a medida
Basta de teoría. Voy a describir una arquitectura que funciona para apps web a medida de tamaño medio, el tipo de proyecto que manejamos la mayoría en España.
Capa 1: el servicio de feature flags
Dos caminos principales:
Opción A: solución gestionada (SaaS)
LaunchDarkly, Unleash (open source con opción cloud), Flagsmith o ConfigCat te dan panel de control, SDKs y funcionalidades avanzadas como segmentación y audit logs.
- Ventaja: implementación rápida, mantenimiento mínimo.
- Inconveniente: dependencia de tercero y coste recurrente (desde 10 EUR/mes hasta miles para enterprise).
Opción B: solución propia
Si tienes requisitos de soberanía de datos o prefieres control total:
- Una tabla en PostgreSQL/MySQL: nombre del flag, estado, porcentaje de rollout, reglas de segmentación en JSON.
- API interna con caché agresiva (Redis, TTL de 30 segundos).
- Panel de administración sencillo para que producto gestione flags sin tocar código.
Lo que hacemos nosotros: arrancamos con solución propia básica. Cubre el 80 % de las necesidades. Solo cuando la complejidad de segmentación crece de verdad migramos a SaaS. Y si lo haces, pon OpenFeature por delante para que la migración no sea un calvario.
Capa 2: integración en el código
Principios que tengo escritos en la pared de la oficina (literalmente):
- SDK centralizado: nunca accedas a flags desde cada componente. Un servicio wrapper. Si cambias de proveedor, tocas un fichero.
- Evaluación en el servidor: para decisiones críticas, evalúa en backend. La evaluación frontend es fácil de manipular con las DevTools.
- Caché local con invalidación: no hagas llamada de red cada vez que evalúas un flag. Cachea en memoria, refresca periódicamente o vía webhooks.
- Valores por defecto seguros: si el servicio de flags cae, comportamiento por defecto = desactivar la feature nueva. Esto me lo tatuaría.
Capa 3: observabilidad y métricas
Aquí es donde la mayoría de equipos la pifian. Y es lo que marca la diferencia entre un despliegue progresivo real y uno de mentira.
Monitoriza como mínimo:
- Tasa de errores segmentada por estado del flag. Si el grupo activado tiene 3 % y el otro 0,1 %, problema claro.
- Latencia de peticiones afectadas por la feature nueva.
- Métricas de negocio: conversión, tiempo en página, abandono... lo que convence a dirección.
- Alertas automáticas: si los errores del grupo activado superan un umbral, desactivación automática (circuit breaker). Esto te salva fines de semana.
Datadog, Grafana + Prometheus o Sentry bien configurado te dan esta visibilidad. Lo fundamental: que las métricas estén correlacionadas con el estado de los flags.
Errores frecuentes que debes evitar
Después de bastantes implementaciones, estos errores se repiten incluso en equipos veteranos:
1. Acumular flags sin limpiar
El pecado capital. Cada flag que dejas tras completar el rollout es deuda técnica. Regla innegociable: flag al 100 % y dos semanas estable = se elimina del código y la base de datos. Tenemos un bot que crea tickets de limpieza automáticos.
2. Flags demasiado granulares
No conviertas cada línea en un flag. He visto proyectos con 200 flags activos: ingobernable. Si tu feature incluye formulario, tabla y gráfico, normalmente un flag para los tres basta.
3. No documentar el propósito
flag_234 no le dice nada a nadie tres meses después. Usa nombres descriptivos (nuevo-panel-analitica-v2) y documenta: quién lo creó, para qué, fecha prevista de rollout y criterios de éxito.
4. Ignorar el impacto en testing
Tu suite de tests debe contemplar ambos estados de cada flag. No basta probar la feature nueva; verifica que la antigua sigue intacta con el flag desactivado. Otra razón para limpiar con disciplina.
5. Saltar la fase de observación
Pasar del 5 % al 100 % en una hora porque "todo parece ir bien" anula el propósito. He frenado a más de un product manager con ganas de correr. Tiempos mínimos: 24 horas en canario, 48 al 25 %. Hemos tenido bugs que solo aparecían con volúmenes altos a media mañana del día siguiente.
Caso práctico: plataforma de gestión para empresa de logística
Para aterrizar: empresa de logística en Madrid, plataforma web a medida para gestión de envíos, quería lanzar un nuevo algoritmo de optimización de rutas.
Enfoque clásico: dos meses de desarrollo, staging (donde todo funciona siempre), rezar y desplegar un lunes. En su lugar, feature flags:
- Semana 1: flag solo para equipo interno. Detectaron error de cálculo en rutas con más de 15 paradas. Corrección sin impacto en clientes.
- Semana 2: activación para 3 clientes pequeños. Feedback valioso sobre interfaz.
- Semana 3: rollout al 20 %. Resultado: 18 % de mejora en tiempo de entrega medio. Directo a la presentación del trimestre.
- Semana 4: rollout general al 100 %.
Resultado: cero incidentes, datos cuantitativos para justificar la inversión y un equipo con confianza para seguir iterando.
Herramientas recomendadas para el ecosistema español
Opciones que encajan en el contexto tecnológico y regulatorio de España:
- Unleash (open source): desplegable en tu infraestructura, RGPD sin discusión. SDKs para Node.js, Java, Python, .NET.
- Flagsmith (open source + cloud en UE): interfaz intuitiva, tier gratuito generoso.
- OpenFeature: estándar abierto de la CNCF que abstrae el proveedor. Ponlo siempre como capa de abstracción.
- GitLab Feature Flags: si ya usas GitLab para CI/CD, soporte nativo integrado. Cero fricción.
Cómo empezar si partes de cero
No intentes implementar todo de golpe. Un enfoque pragmático:
- Elige una funcionalidad nueva en desarrollo. Riesgo medio, ni demasiado crítica ni trivial.
- Implementa flags mínimo: tabla en base de datos y servicio que la consulte. Te lo montas en una tarde.
- Despliega detrás de un flag: primero tu equipo, luego un grupo reducido de usuarios reales.
- Mide y documenta: tiempo ahorrado en gestión de incidentes, feedback, qué mejorar. Esto convence a jefes y al resto del equipo.
- Itera: con la experiencia del primer flag, estandariza el proceso.
En tres meses tendrás un sistema maduro y un equipo que ya no concibe los despliegues como momentos de tensión.
Conclusión: desplegar no tiene por qué ser un acto de fe
Los feature flags y el despliegue progresivo no son lujos de grandes tecnológicas. Son herramientas accesibles que cualquier empresa con una app web a medida puede y debería adoptar. Reducen riesgos, aceleran entregas y devuelven el control al equipo de producto.
La clave: empezar simple, medir desde el primer día y ser disciplinado con la limpieza de flags obsoletos. Con esos tres pilares, transformarás los despliegues de una fuente de estrés a una ventaja competitiva. Y los viernes a las seis de la tarde volverán a ser eso: viernes a las seis de la tarde.
Si necesitas ayuda para implementar feature flags en tu aplicación web a medida, contacta con nuestro equipo. Analizamos tu arquitectura y te proponemos un plan de implementación realista, alineado con tus objetivos de negocio.
Preguntas frecuentes sobre
Como mejorar mi negocio con la metodología Anticompetencia
En Tangram no queremos que la información pase por una cadena interminable de intermediarios donde se pierden los detalles importantes.
Contarás con un interlocutor que coordinará la comunicación y trasladará las decisiones al equipo responsable de tu proyecto.
Cuando sea necesario profundizar en cuestiones de estrategia, diseño o tecnología, podremos involucrar a los especialistas correspondientes.
Así tendrás una comunicación organizada, sin necesidad de gestionar personalmente a todos los profesionales que intervienen.
Queremos que tengas acceso al conocimiento de un equipo especializado, sin sufrir la complejidad de coordinarlo.
No tendrás que averiguar a quién escribir cada vez que tengas una duda.
En Tangram contemplamos la figura del Account Manager como interlocutor principal, encargado de acompañarte durante el proyecto, coordinar la comunicación y facilitar el seguimiento de las decisiones.
Nuestra metodología incluye reuniones de revisión, canales de comunicación y herramientas para que puedas participar en el trabajo.
La organización concreta, la frecuencia de las reuniones y los canales disponibles se establecerán según el proyecto contratado.
Lo importante es que sepas con quién hablar, en qué punto está tu proyecto y qué decisiones necesitan tu participación.
Sí, podemos valorar una colaboración con los profesionales que ya trabajan en tu empresa.
No siempre tiene sentido sustituir un equipo que conoce bien tu negocio. En muchas situaciones, lo más útil es complementar sus conocimientos con especialistas en determinadas áreas.
Podemos estudiar qué responsabilidades asumiría Tangram, cuáles mantendría tu equipo y cómo coordinar las decisiones para evitar duplicidades.
La forma concreta de colaboración dependerá de la organización, las herramientas y las necesidades del proyecto.
No se trata de reemplazar lo que ya funciona, sino de aportar el conocimiento que necesitas para llegar más lejos.
No tienes por qué cambiar de proveedor para explorar una colaboración con Tangram.
Durante nuestra trayectoria hemos trabajado con agencias y consultoras, participando en proyectos en los que cada empresa asumía una parte diferente del trabajo.
Esa experiencia nos permite comprender la importancia de definir responsabilidades y coordinar a los profesionales implicados.
Podemos valorar una colaboración para cubrir necesidades concretas que tu proveedor actual no ofrece o para reforzar determinadas áreas.
Si tienes una relación profesional que funciona, no queremos que la rompas sin motivo. Queremos encontrar dónde podemos aportar valor.
La confidencialidad es especialmente importante cuando hablamos de nuevas ideas de negocio, información económica, estrategias comerciales o desarrollos tecnológicos.
En Tangram tenemos experiencia trabajando en proyectos sujetos a acuerdos de confidencialidad, motivo por el que no podemos mostrar públicamente muchos de los trabajos en los que hemos participado.
Si tu proyecto requiere un acuerdo de confidencialidad (NDA) antes de compartir información sensible, podemos revisar sus condiciones y acordar cómo proteger esa información antes de entrar en los detalles.
Entendemos que la confianza empieza por respetar lo que todavía no quieres hacer público.