Cinturones en DevOps – ¿cuál es el tuyo?

(Este artículo corresponde a la serie dedicada a DevOps)

Así que decidiste poner en práctica la filosofía DevOps. ¡Genial! ¿Pero…por dónde empezar? Thinking Face on Apple iOS 11.3

(Si tu respuesta es: “utilicemos Docker!” , buen intento pero…¡Docker NO ES DEVOPS!Oncoming Fist on Apple ).

Bueno, volviendo al tema, este post te brindará un mapa y compás para saber por dónde empezar y cuales son los pasos a seguir para convertirte en un cinturón negro en DevOps.

Modelo de Madurez

DevOps y las artes marciales pueden parecer dos áreas completamente diferentes, sin embargo, es posible utilizar la misma analogía dado que el progreso del practicante es medido al ganar maestría paulatinamente en diferentes áreas del arte Martial Arts Uniform on Apple iOS 11.3.

Inspirado en otros modelos de madurez como los de Jez Humble1, y Scaled Agile Framework 2, decidí crear una versión simplificada de estos.

DevOps Maturity Model.png

La parte más difícil de utilizar este modelo es ser honestos con nosotros mismos. ¡Sí!, tú y tus equipos de software/IT tendrán que hablar a “Calzón quitao”Bikini on Apple iOS 11.3. Tranquilo, admitir que tienes un problema con el alcohol la falta de comunicación, la escasez de automatización ó los Bugs encontrados en Producción – es el primer paso hacia la rehabilitación.

Niveles

Cinturón Blanco – Ad Hoc

En el nivel Ad-hoc3 la toma de decisiones tienden a darse debido a emergencias en Operaciones, Desarrollo o Calidad. Básicamente, para “apagar fuegos”, los equipos en este nivel toman decisiones (para salvar sus traseritos!) que deberían ser temporales, pero que terminan convirtiéndose en implementaciones oficiales. Algunos ejemplos: Creación de Features por presión de algunos clientes,  falta de arquitectura de software, parches en la configuración de infraestructura o software en Producción. Así mismo, no se cuenta con ningún tipo de consistencia en la creación y configuración de infraestructura. En esencia: el caos y los comportamientos reactivos reinan el equipo.

La característica principal de este nivel, es la prevalente “Cultura del Dedo” (no me refiero a este dedo: Thumbs Up: Medium Skin Tone on Apple , sino a este otro: Backhand Index Pointing Right on Apple iOS 8.3Persevering Face on Apple iOS 11.3). Escenarios tóxicos como este, donde las acusaciones entre personas o equipos forma parte del día a día, son lo primero que deberá modificarse antes de aspirar a subir de nivel.

Cinturón Amarillo – Repetible

A este nivel se inicia la comunicación transparente entre los equipos, especialmente entre Desarrollo y Operaciones (Development + Operations = DevOps!).

Los procesos más importantes, a pesar de que aún sigan siendo manuales, pasan a ser documentados de manera escrita o en diagramas, para así permitir su visualización para su futura automatización.

De igual manera, el equipo de Desarrollo adquiere la costumbre de crear Unit Tests (Tests Unitarios) como parte de la nueva funcionalidad desarrollada, reduciendo así el testeo manual.

Herramientas empiezan a ser utilizadas para colaborar con las tareas de los equipos y para permitir estandarización. Por ejemplo: se adoptan herramientas de versionamiento de código (Git, svn, etc.) o herramientas para organización de tareas (Trello, Jira, etc.).

Cinturón Verde – Definido

La comunicación es clara y fluida, lo que permite que la toma de decisiones y el resultado de estas sea compartido entre los distintos equipos (Peace Symbol on Apple iOS 11.3 no es una utopía).

Al nivel de los procesos y tecnologías, los equipos consiguen disminuir en gran manera su Deuda Técnica 4 gracias a la automatización de otro tipo de tests como los Tests de Integración, Tests de Aceptación de Usuario (UAT), y Tests de Stress.

Por otro lado, el uso de Infraestructura Como Código5 y Monitoreo en tiempo real permiten que el aprovisionamiento y configuración de infraestructura se conviertan en tareas sencillas y previsibles.

Algo interesante de este nivel es que los equipos podrían realizar deployments a Producción con cada cambio en el código (commit) de manera automática si desearan. Si quieres saber saber cómo llegar a este punto, no olvides leer Continuous Delivery: Partos sin Dolor.

Cinturón Azul – Deliberado

Bueno, bueno, acá la cosa se pone buena. En este nivel, las decisiones son basadas en métricas, vale decir, que el monitoreo es tan maduro que somos capaces de identificar patrones, tanto en la infraestructura como en el uso de los productos.

El Deployment a Producción es automático con cada cambio en código o infraestrutura. Esta confianza es ganada a través de la práctica el principio llamado Andon Cord6 el cual les permite asegurar calidad continuamente.

A este nivel, ya no se habla de CI/CD (Continuous Integration/Continuous Delivery) porque estas prácticas están sobreentendidas. Tal y como respirar es inconsciente, las organizaciones que llegan hasta este punto no necesitan negociar tiempo invertido en CI/CD porque está implícito que son parte fundamental del éxito de cualquier proyecto.

Cinturón Negro – Optimizado

Bienvenido a las grandes ligas. En este nivel las organizaciones actúan como lo haría un científico: postulando hipótesis y validándolas a través de experimentos7, o en otras palabras, practican Aprendizaje Continuo. Esto permite que el aventurarse a innovar (probar ideas “locas” Zany Face on Apple iOS 11.3) tenga una probabilidad alta de éxito.

Los deployments a producción no causan ningún tipo de interrupción en el servicio, el cual – vale la aclaración – ya cuenta con High-Availability8.

En contraposición al nivel inicial, estas organizaciones utilizan el Caos para mejorar continuamente (Antifragilidad9).

Nota: Llegar al nivel de Cinturón Negro, no implica que tus problemas se solucionen, sino que tendrás problemas diferentes, por ejemplo: tener a millones de personas protestando por su privacidad, dilemas éticos sobre el uso de Inteligencia Artificial o tener a países restringiendo el acceso a tu portal por considerarlo un peligro para el estado. 


Si ya hiciste una evaluación mental del nivel actual en el que se encuentra tu equipo de desarrollo y obtuviste el cinturón blanco, no te sientas mal. En mi primera auto-evaluación, descubrí que ni siquiera tenía un cinturón! Grinning Face With Sweat on Apple iOS 11.3

Puesto que cada organización es única, el Modelo de Madurez presentado en este post es una referencia básica para ayudarte a empezar en la jornada DevOps. Encontrarás otros modelos con más detalle que también te ayudarán como los de Solinea y ThoughtWorks.

¿En qué etapa de la jornada DevOps se encuentra tu equipo? ¿Qué cinturón tienen? Deja tus comentarios y preguntas y sigamos ayudando a más equipos a progresar en su camino.

Keep on learning and maturing.

 

 

 

One thought on “Cinturones en DevOps – ¿cuál es el tuyo?

  1. JJ! Que bueno tu post, lo primero que hice fue comparar donde esta mi equipo con la tabla que presentas. Veredicto: todavia a espacio para mejorar 🙂

Leave a Reply