Métricas DORA: ¿Qué es y cómo medir la frecuencia de despliegue en DevOps?

Analizamos Deployment Frequency, una de las métricas más valiosas en la actualidad en desarrollo de software ágil y DevOps. Veremos qué es la frecuencia de despliegue, cómo medirla, interpretarla y mejorarla.

¿Qué es la frecuencia de despliegue?

La frecuencia de despliegue o Deployment Frequency es una métrica de DevOps y de entrega de software ágil que mide la regularidad con la que el equipo despliega código (features, cambios, bugs, etc.) en entornos de desarrollo, testeo y producción. 

Es una medida estrechamente relacionada con la entrega temprana y continua de software valioso a los usuarios que promueven los enfoques Agile y DevOps, y que resulta de gran utilidad para conocer si los procesos de desarrollo y entrega de software son eficientes o no.

Deployment Frequency es una de las Four Key Metrics popularizadas por el grupo DevOps Research and Assessments (DORA), las cuatro métricas fundamentales para medir el rendimiento de los procesos de DevOps. Conocer la frecuencia con la que el equipo despliega código nuevo es esencial para medir y mejorar el pipeline de desarrollo de software e identificar y eliminar cuellos de botella.

Junto con el tiempo de ejecución para cambios (Lead Time for Changes), el tiempo de restauración del servicio (Time to Restore Service) y la tasa de despliegues fallidos en producción (Change Failure Rate), permite a los equipos de DevOps evaluar los flujos de trabajo colaborativos y conocer cómo está progresando el equipo hacia entregas de software más rápidas y de mayor calidad.

En definitiva, la frecuencia de despliegue es una de las medidas de velocidad más valiosas para una organización que quiera entregar software de calidad antes y a menudo. Muestra cuánto valor hace llegar a los usuarios y cómo de rápido es capaz de hacerlo y es un buen indicador de la capacidad, cohesión, tiempo de respuesta y eficiencia del equipo.

¿Por qué medir el Deployment Frequency?

Medir y tratar de optimizar la frecuencia de despliegue promueve que el equipo trabaje con cambios de código más pequeños y asiduos, lo que hace más sencillo testear, desplegar y resolver errores. Las actualizaciones de código más reducidas son más fáciles de comprender, acotan los posibles errores. Por lo que, en ellas, resulta más simple y rápido identificar la causa y resolver un defecto.

De este modo, operando con cambios de código pequeños y frecuentes se reduce el riesgo y se aumenta la estabilidad del servicio, disminuyendo la tasa de despliegues fallidos en producción (Change Failure Rate) y el tiempo de restauración (Mean Time to Recover).

Por otra parte, entregar software a menudo favorece el feedback continuo y efectivo, lo que ayuda a que el equipo pueda centrarse en desarrollar funcionalidades realmente valiosas para los usuarios. En definitiva, ayuda a que el equipo de desarrollo trabaje de forma más eficaz, al situarse más cerca de los objetivos de sus clientes.

¿Cómo interpretar esta métrica?

Una frecuencia de despliegue baja revela que existen ineficiencias en el proceso, que hay menos personas trabajando de las que se necesitan o que el equipo no está estructurado de forma adecuada.

Por el contrario, una frecuencia alta de las implementaciones apunta a que el equipo es capaz de reaccionar a los cambios y aportar valor a los usuarios rápidamente. Además, refleja una madurez interesante en agilidad por parte del equipo.

De este modo, para el equipo el objetivo debe ser incrementar la frecuencia de despliegue. Esta métrica debe mantenerse estable o presentar una tendencia ascendente en el tiempo. Si disminuye, pueden estar teniendo lugar cuellos de botella en algún punto del proceso. De nuevo, la finalidad es que el equipo realice implementaciones más pequeñas y tan frecuentemente como sea posible.

¿Qué Deployment Frequency debe tener un equipo?

El informe Accelerate State of DevOps de 2021, realizado por DORA, revela la capacidad de los equipos de software para entregar software en la actualidad. Así, en relación a la frecuencia de despliegue:

  • Los equipos de élite despliegan código varias veces al día.
  • Los equipos de alto nivel hacen despliegues al menos una vez al mes.
  • Los equipos medios llevan a cabo como mínimo un despliegue cada seis meses.
  • Por último, los equipos de bajo rendimiento realizan menos de un despliegue al semestre.
Rendimiento de equipos de desarrollo de software en 2021 según las DORA Four Key Metrics
Rendimiento de equipos de desarrollo de software en 2021 según las DORA Four Key Metrics. Fuente: Informe ‘Accelerate State of DevOps de 2021’.

¿Cómo medir la frecuencia de despliegue en DevOps?

Las plataformas de Value Stream Management (VSM) como SENTRIO permiten conocer, a través de paneles visuales e intuitivos, con qué frecuencia el equipo despliega código. Para ello, se integra con herramientas de CI/CD como Jenkins o Azure DevOps, que le proporcionan toda información relativa a las distintas releases que se producen en los diferentes entornos.

gráfica de frecuencia de despliegues de SENTRIO
Gráfica de frecuencia de despliegues de SENTRIO.

¿Cómo mejorar el Deployment Frequency de un equipo?

Como hemos visto, resulta muy beneficioso para el equipo mejorar su frecuencia de despliegue. A continuación, analizamos las principales causas de un Deployment Frequency bajo y una serie de acciones que puede adoptar el equipo para entregar software más a menudo:

Principales causas de una baja frecuencia de despliegue

  • Introducir cambios en el código demasiado grandes.
  • Falta de personal o cambios en la estructura del equipo.
  • Ineficiencias en el proceso de desarrollo (bloqueos, dependencias…).
  • Cuellos de botella.

Medidas para aumentar la frecuencia de despliegue

  • Practicar la integración continua y la entrega continua.
  • Automatizar los despliegues.
  • Trabajar con cambios pequeños e independientes, refinando exhaustivamente cada tarea a realizar. 
  • Reducir la deuda técnica.
  • Automatizar las pruebas (test unitarios, de integración y funcionales) y las revisiones de código.
  • Utilizar release trains en monolitos más grandes.

Conclusión

La frecuencia de despliegue es una métrica fundamental en la actualidad en desarrollo de software con enfoques Agile y DevOps. Permite conocer la capacidad del equipo para entregar software valioso a los usuarios, rápidamente y a menudo, con todos los beneficios que ello conlleva. 

La plataforma de VSM SENTRIO te ayuda a medir de forma sencilla el Deployment Frequency de tus proyectos de software y a tomar decisiones basadas en datos que impulsen tus resultados. Visualiza en tiempo real la velocidad y calidad de tus productos de software, a través de métricas relevantes para tu negocio. ¡Solicita una demo gratuita ahora!

Comparte

Facebook
Twitter
Pinterest
LinkedIn

Entradas relacionadas