Artículo

DevOps, más allá de la tecnología (parte I)

18 julio 2020 DevOps
devops-mas-alla-de-la-tecnologia

Se proyecta que el mercado de software DevOps crecerá de $ 2.9 miles de millones en 2017 a $ 6.6 miles de millones en 2022 (fuente: estimaciones de IDC).

Ante un panorama amplio de posibilidades y una tendencia que nos empuja hacia ese mercado, me pregunto: ¿Estamos adoptando correctamente DevOps?

Basado en mi experiencia me atrevo a decir que NO, en los últimos años me ha tocado observar en algunos clientes, una visión acotada al aspecto tecnológico de DevOps. Buscan en el corto plazo, implementar algunas plataformas y automatizar flujos que les permitan trabajar con más “agilidad”. Esto es bueno y necesario, pero no suficiente. Para comprender por qué no es suficiente es indispensable conocer los principios que hay detrás de DevOps.

Los principios sobre los que se levanta DevOps no son de la última década, algunos de ellos tienen más de 100 años y han demostrado sus resultados a lo largo de todo ese tiempo. Gran parte de estos principios surgen de la industria manufacturera, en particular, la automotriz. DevOps es una convergencia de varias corrientes y enfoques, como se muestra en la siguiente figura:

Esta gran convergencia, genera una riqueza de principios que sirven de guía para la adopción de la filosofía DevOps. Pero, ¿qué es DevOps?

“DevOps es un conjunto de prácticas destinadas a reducir el tiempo entre: un compromiso de cambio que impacta en un sistema y la colocación de ese cambio en Producción, al tiempo que garantiza una alta calidad.”

Esta es una respuesta bastante simple, pero sintetiza muy bien el “para qué” estamos trabajando para implantar DevOps y cuál es su ámbito de acción: “To Do”, “Doing” y “Done”.

En la adopción de DevOps es importante considerar los siguientes principios:

  • Los principios de Flujo, que aceleran la entrega de trabajo desde el negocio y el desarrollo, hasta la operación y a nuestros clientes
  • Los principios de Feedback, que nos permiten crear sistemas de trabajo cada vez más seguros
  • Los principios de aprendizaje y experimentación continua fomentan una cultura de alta confianza y un enfoque científico para una mejora organizacional y la toma de riesgos como parte de nuestro trabajo diario

Estos son los 3 caminos por los que deben transitar una empresa u organización para apuntalar y desarrollar una filosofía DevOps.

El Primer Camino nos ayuda a comprender cómo crear un flujo rápido de trabajo a medida que avanza desde Desarrollo a Operación de TI, porque eso es lo que hay entre el Negocio y el Cliente.

El Segundo Camino nos muestra cómo acortar y amplificar los circuitos de retroalimentación, para que podamos construir con calidad en el origen, evitando pasar errores a la siguiente fase y generando reprocesamiento.

El Tercer Camino nos muestra cómo crear una cultura que fomente simultáneamente la experimentación, aprender del fracaso y comprender que la repetición y la práctica son los requisitos previos para lograr la Maestría (Toyota Kata).

El Primer Camino aborda los Principios del Flujo.

En el flujo de valor de la tecnología, el trabajo generalmente fluye desde Desarrollo a Operaciones, que son las áreas funcionales entre nuestro Negocio y nuestros Clientes. Se requiere un flujo de trabajo rápido y fluido desde el desarrollo hasta la operación, para entregar valor a los clientes rápidamente.

Para mejorar el flujo

  • Haga visible el flujo
  • Limite el trabajo en progreso (WIP)
  • Reduzca el tamaño de los lotes
  • Reduzca la cantidad de “pasa-manos”
  • Continuamente identifique y levante las restricciones
  • Elimine dificultades y desperdicios en el flujo

El Segundo Camino aborda los Principios del Feedback.

El segundo camino describe los principios que permiten la retroalimentación recíproca, rápida y constante de izquierda a derecha en todas las etapas del flujo de valor. El objetivo es crear un sistema de trabajo cada vez más seguro y resiliente.

Para implementar el “feedback” continuo

  • Trabaje con seguridad en sistemas complejos
  • Atienda los problemas a medida que ocurren
  • Aísle y resuelva los problemas para crear nuevo conocimiento
  • Continúe “empujando” la calidad en el origen
  • Habilite la optimización para los centros de trabajo siguientes

El Tercer Camino aborda el Continuo Aprendizaje y Experimentación.

En el flujo de valor de la tecnología, nuestro objetivo es crear una cultura de alta confianza, reforzando que todos somos aprendices de por vida y que debemos tomar riesgos en nuestro trabajo diario.

Para profundizar el cambio

  • Habilite el aprendizaje organizacional y una cultura segura
  • Institucionalice la mejora del trabajo diario
  • Transforme los descubrimientos locales en mejoras globales
  • Inyecte patrones de resiliencia en el trabajo diario
  • Si es Líder, refuerce una cultura de aprendizaje

En próximas publicaciones ahondaré en cada uno de estos caminos para que puedan desbloquear el verdadero potencial de DevOps. Por ahora, un adelanto…

  1. Si están abordando una iniciativa DevOps, visualicen y conozcan su flujo de valor. Desde que se inicia en el Negocio, pasando por Desarrollo, Calidad, Operaciones hasta llegar al Cliente. Rompan los silos en ese flujo, no se logra un flujo continuo si cada parte del flujo está compartimentada y a cargo de un área diferente con poca comunicación entre ellas. Todos deben conocer ese flujo de valor y trabajar para mejorarlo. Muchas veces he visto que definen equipos “DevOps” sólo para automatizar pruebas, despliegues y demás controles; y repito, eso está bien pero no es suficiente. Si no visualizan todo el flujo sólo estarán actuando sobre 4 ó 5 actividades, de unas 50 (o más) que tiene ese flujo en realidad.
  2. Conociendo el flujo podrán aplicar la “Teoría de Constraints”.

“En cualquier flujo de valor, siempre hay una dirección de flujo, y siempre hay una única restricción; cualquier mejora que no se haga con esa restricción es una ilusión.”

Beyond the Goal, el Dr. Goldratt

El desempeño óptimo de un sistema (el flujo de valor, en este caso) NO es la suma de sus optimizaciones locales. Aumentar la fortaleza de cualquier otro elemento que no sea el eslabón más débil no tiene impacto real en la capacidad del sistema.

Esto último tiene gran relevancia a la hora de enfocar esfuerzos en una actividad para mejorar el flujo de valor. Conocer el flujo e identificar la principal restricción del mismo, enmarcado en un ciclo de mejora continua, nos deja con un abanico amplio de oportunidades de mejora que van más allá de habilitadores tecnológicos, que, si bien son necesarios, pueden ser infructuosos sin una vista integral del flujo sistémico que deseamos optimizar.

No olvidar: La meta de DevOps es acortar el tiempo entre, la concepción de una iniciativa de negocio, hasta que la misma llega a producción a través de un flujo que garantiza una alta calidad.