Perspective

Telemetría del SDLC

Acelere la prestación de software con información
automatizada y en tiempo real

Publicado: noviembre 17, 2020

El legado de Agile

En la última década, las organizaciones han visto aumentar la necesidad de ofrecer rápidamente soluciones de software de alta calidad para satisfacer las cambiantes demandas del mercado y gestionar la feroz competencia. Al mismo tiempo, las empresas de TI que prestan asistencia técnica a estas organizaciones se han pasado a las metodologías ágiles para satisfacer la creciente demanda de prestación acelerada de software.

Comprender Agile

El modelo de metodologías ágiles, una combinación de procesos graduales e iterativos, se originó para acelerar la prestación de software, garantizar la satisfacción del cliente y ofrecer la flexibilidad necesaria para adaptarse y mejorar continuamente. Con este modelo, los requisitos empresariales se desglosan en fragmentos más pequeños, lo que permite al equipo de desarrollo ofrecer el software en iteraciones más cortas y con mucha más regularidad. A medida que las métodologías ágiles iban ganando terreno, empezaron a surgir nuevas tecnologías de automatización y procesos de optimización que permitían a los equipos de desarrollo integrar continuamente fragmentos de código más pequeños.

Sin embargo, estos fragmentos de código más pequeños debían probarse continuamente para que el código de alta calidad pudiera integrarse varias veces en el tronco. Si bien esto aumentaba la eficiencia del desarrollo de software, cargaba al equipo de pruebas y al equipo de operaciones con unas pruebas y despliegue continuos. A su vez, la prestación del producto de software global se retrasaba, lo que anulaba todo el propósito de las metodologías ágiles.

La transición de Agile a DevOps

Las organizaciones se dieron cuenta enseguida de que todo el ciclo de vida del desarrollo de software debía tratarse como un único proceso y que la mayor parte debía automatizarse. Los equipos de desarrollo y de operaciones que trabajaban en silos se fusionaron, lo que dio lugar a la aparición de DevOps.

DevOps es la amalgama de prácticas, filosofías culturales y herramientas que permite a una organización prestar aplicaciones/servicios a gran velocidad y mejorar los productos de forma constante. Las organizaciones que han abandonado los procesos tradicionales de desarrollo de software y han optado por DevOps se benefician de una comercialización más rápida y de una mayor satisfacción del cliente.

Elementos de DevOps: CI/CD

La integración continua es una práctica de desarrollo de software en la que los desarrolladores fusionan regularmente los cambios de código en un repositorio central que luego se utiliza para ejecutar compilaciones y pruebas automatizadas. La idea que subyace a la integración continua es identificar y resolver los errores más rápidamente, mejorar la calidad y reducir el tiempo de comercialización.

La prestación continua es una práctica de desarrollo de software en la que los cambios de código se desarrollan, se prueban y se integran automáticamente para su lanzamiento, lo que lleva la integración continua un paso más allá al desplegar los cambios de código en un entorno de prueba/producción después de la fase de compilación.

El despliegue continuo es otra práctica de DevOps muy extendida, en la que cada nueva compilación se despliega automáticamente cada vez que se realizan cambios significativos en el código.

Waterfall

Waterfall

  • Etapas lineales secuenciales
  • Equipos que operan en silos funcionales 
  • Planificación y documentación exhaustivas
  • Sumamente limitado a las nuevas necesidades de negocio
Agile

Agile

  • Modo de desarrollo iterativo 
  • Equipos de colaboración pequeños y de algo rendimiento 
  • La integración continua era parte integral de los equipos de desarrollo
  • Énfasis en la agilización de la comercialización 
  • Práctica de automatización
Devops

DevOps

  • Evolución continua y flexible 
  • Colaboración entre Dev y Ops
  • Integración, pruebas, prestación y despliegue continuos 
  • Alto grado de automatización para CI/CD
  • Énfasis en la agilización de la comercialización 

La necesidad de métricas

Aunque muchas organizaciones han adoptado las metodologías ágiles y el DevOps, medir y gestionar el desarrollo de software nunca ha sido fácil sin definir métricas, especialmente a medida que el proceso se vuelve más complejo y descentralizado. En las grandes organizaciones en las que varios equipos geográficamente diversos trabajan en la misma aplicación, resulta difícil identificar los retrasos y las dependencias de los procesos.

Medición de la eficacia de DevOps con las métricas DORA

Las métricas DORA desempeñan un papel importante en la medición del rendimiento del equipo. El resultado de años de investigación llevada a cabo por el equipo de DevOps Research and Assessments (DORA) condujo a las siguientes cuatro métricas DORA: frecuencia de despliegue, tiempo de espera para los cambios, tiempo para restaurar el servicio y tasa de fracaso de los cambios.

Las métricas DORA ayudan a los líderes a medir el rendimiento de la prestación de software (tiempo de comercialización) y la calidad (fiabilidad). Estas métricas permiten tomar decisiones informadas y basadas en datos que conducen a mejoras continuas que pueden vincularse además a objetivos de transformación digital medibles.

La adopción de DevOps va en aumento
DevOps Adoption
El sector está “cruzando el abismo” en un tiempo récord

Aumento del 300 % en el “nivel de rendimiento de élite”

Image

Los retos que plantean las metodologías ágiles y DevOps

Aunque la integración de DevOps y las metodologías ágiles ha permitido a las organizaciones mantenerse a la vanguardia, el nuevo enfoque del desarrollo de software no está exento de inconvenientes. Es especialmente difícil cuando los equipos empiezan a operar rápido y a escala. Algunos de los principales retos a los que se enfrentan son:

  • Ausencia de una única fuente de información fiable para mejorar la visibilidad
  • Bucles de retroalimentación retardada que prolongan la corrección del rumbo
  • Utilización de un conjunto diverso de herramientas que funcionan en silos con una generación de informes propia
  • Recopilación manual de datos y cálculo de métricas engorrosos, propensos a errores y asíncronos

Telemetría: monitorización y medición automatizada para la excelencia del SDLC

Es posible superar estos retos con la recopilación de datos automatizada continua, la medición y la supervisión en las primeras etapas del SDLC, desde la historia y el código hasta el despliegue. Este giro a la izquierda en el ciclo de desarrollo de software facilitará mucho el trabajo de los equipos de DevOps, que podrán identificar los cuellos de botella y tomar medidas correctivas con prontitud.

Agile y DevOps son procesos continuos que requieren una retroalimentación constante para mejorar. Todas las etapas del ciclo de vida del desarrollo de software (SDLC), como la recopilación de requisitos, la codificación, el desarrollo, las pruebas, el despliegue y el lanzamiento, pueden mejorarse midiendo y supervisando continuamente las métricas clave en las primeras etapas del SDLC.

La telemetría es el registro y la transmisión automática de datos procedentes de fuentes remotas o inaccesibles a un sistema informático situado en otro lugar para su seguimiento y análisisFacilita la supervisión constante y la presentación de gráficos a las partes interesadas en tiempo real para poder hacer una rápida identificación de los problemas. Permite a los equipos solucionar los problemas con antelación y evita que se conviertan en complicaciones que puedan ser costosas de resolver más adelante. Con la telemetría, es posible incluso determinar los patrones de las métricas empresariales y tecnológicas clave y crear alertas si se producen anomalías.

Indicadores adelantados y atrasados

Los indicadores adelantados son como las entradas y miden las actividades necesarias para alcanzar los objetivos. Aunque sean difíciles de medir, son fáciles de influir directamente para lograr mejores resultados. Los indicadores atrasados son como las salidas y miden los resultados reales. Aunque son fáciles de medir, no es fácil mejorarlos directamente.

Las métricas DORA, que se centran en el tiempo de comercialización y la calidad, entran en la categoría de métricas atrasadas. Sin embargo, hay diversos factores que influyen en ellas de forma indirecta. Las métricas adelantadas pueden medir estos factores y, si se mejoran continuamente, tendrán un impacto directo en las métricas atrasadas de la velocidad y la calidad.

En el contexto de la aplicación, las empresas deben identificar los indicadores de rendimiento fundamentales y definir las métricas adelantadas. La siguiente tabla es un buen punto de partida para definir las métricas adelantadas. Aunque no es exhaustiva, puede utilizarse para crear parámetros de referencia y observar las tendencias. Al determinar la dirección de la tendencia, podemos entender si los equipos van por el buen camino.

Image

Automatice la recopilación, medición y presentación de datos

Las organizaciones que quieran empezar deben identificar los indicadores de rendimiento que se van a medir, es decir, definir las métricas principales. A continuación, deben identificar varias herramientas de SDLC en las que se puedan recoger datos. Los datos recogidos deben ser transformados y almacenados. Algunos de los datos recogidos pueden presentarse directamente, mientras que el resto debe calcularse. Una vez calculados, los datos de las métricas deben presentarse visualmente en forma de gráficos para que los equipos los evalúen y obtengan información sobre el progreso y los cuellos de botella que les impiden ascender hacia las métricas atrasadas.

El proceso anterior de recopilación, cálculo y presentación de datos debe estar totalmente automatizado para que los equipos puedan obtener información continua de las métricas definidas. Además, la telemetría debe conectarse en una fase temprana del SDLC para que los equipos tengan acceso a la información y puedan tomar medidas correctivas.

El diagrama de arquitectura que se muestra a continuación representa una implementación sencilla basada en microservicios de 3 niveles que aprovecha plataformas de visualización existentes como Grafana.

Image

¿Por qué la telemetría?

  • La vista unificada de los datos del SDLC desde el panel de telemetría facilita la toma de decisiones basada en datos. El panel de telemetría también puede proporcionar una sólida gobernanza del programa en toda la empresa para mejorar la calidad y la fiabilidad del SDLC.
  • El panel de telemetría puede ofrecer estadísticas detalladas en tiempo real a lo largo del ciclo de vida del desarrollo de software para agilizar los ciclos de retroalimentación y ayudar a las partes interesadas a tomar decisiones informadas para mejorar las versiones.
  • Las organizaciones que invierten en telemetría en una fase temprana del SDLC ahorran semanas de esfuerzo en la elaboración de informes sobre métricas de DevOps y SDLC, lo que conduce a un tiempo de respuesta más rápido, una mejor toma de decisiones y una mayor transparencia.

Estado del sprint

Telemetry Dashboard - Sprint health

Reflexiones finales

El giro a la izquierda de la telemetría en la transición de Agile a DevOps es realmente notable. El acceso a los datos telemétricos en el entorno de preproducción ha permitido al equipo de DevOps automatizar los comentarios y supervisar las aplicaciones en tiempo real. Por tanto, los equipos pueden visualizar y resolver fácilmente los problemas antes de que surjan, lo que garantiza la aceleración de la prestación de software y la mejora del tiempo de comercialización.

 

Contenido relacionado