DevOps – Día 79

Hace algunos días asistí a una conferencia universitaria de tecnologias en nube, primariamente impulsada por microsoft.

Habia una gran cantidad de temas, y muchos participantes, pero uno que me saco la paciencia fue el de DevOps, asi que hoy voy a renegar de eso.

En particular, y lo he ido drenando en otros articulos fue la frase que voy a parafrasear de ‘Todo debe ser medido’ fuera de contexto. Y el enfasis en esa frase en particular que es el origen de multiples males.

Si bien DevOps se define como una cultura que busca romper los silos entre areas de desarrollo y operaciones. E integrar multiples tecnicas para un ciclo de vida de desarrollo de software feliz.

El nucleo de DevOps es la metodologia ‘Lean’ en la gestion de proyectos, cuyo principio basico es el aumento de la eficiones y la reduccion del desperdicio.

Entonces al tener un ciclo de vida de desarrollo de software con ciclico, con sus etapas de Planificacion -> Diseño -> Desarrollo -> Pruebas -> Despliegue -> Monitoreo -> Feeback -> Planificacion. Un lindo ciclo de vida que se muerde la cola como Ouroboros. Y pensamos que podemos maximizar la eficiencia y reducir el desperdicio. ¿Estamos bien?

De hecho, para poder maximizar la eficiencia y reducir el desperdicio ¿No necesitamos medir?

Si, es bueno medir o empezar a medir, y No, no todas las metricas o mediciones maximizan o reducen el desperdicio.

Por ejemplo en 2024 empezo la moda de despedir empleados para reemplazarlos por IA Generativa, y en 2025 empezo la moda de recontratar empleados porque la calidad de la IA generativa no es suficiente. ¿Pero por que empezaron a despedir en primer lugar? Porque es facil suponer que es mas barato y menos problematico una IA generativa de <compañia> + sus agentes multipropocito, que una persona. Esa es una metrica, y esa metrica, solo sirve para empeorar una compañia.

Tambien es una metrica que si un videojuego es exitoso, entonces el CEO de la compañia se duplica el sueldo. ¿Esa metrica sirve para algo? ¿Causa mejores juegos? ¿Da mas trabajos? No, solo hace a alguien mas rico por vender humo.

Entonces no podemos empezar la cultuar DevOps pensando que vamos a Mejorar y eliminar, DevOps y sus derivados se basa en estos fundamentos: Personas, Procesos y Herramientas. En ese orden. Iniciemos con personas

Las personas son, quienes ejecutan el desarrollo de software, quienes necesitan un producto, o quienes utilizan un producto. Las personas son el jugador escencial en DevOps, Creadores o Consumidores son las que deben decidir el negocio. Puedes hacer DevOps en la limpieza de un edificio. ¿Pero como? mediante

Los procesos, los procesos es primariamente lo que se mide, los procesos son creados por las personas para cumplir con las expectativas de los creadores o de los clientes. Un proceso es el que nos permite crear una aplicacion de software, o el que nos permite definir como va a funcionar la aplicacion, o el que nos permite obtener el feedback del cliente, un proceso es el que transforma la informacion, etc. Los procesos mientras mas estructurados, mas repetibles. Por ejemplo puede existir un proceso para detener los ascensores en el edificio que se va a limpiar, asi como un proceso para notificar a los vecinos, asi como un proceso para preparar los implemetos. Todos estos procesos se pueden medir en tiempo o en calidad (satisfacion). En el ciclo de desarrollo de software los procesos mas que ligados con la aplicacion, estan ligados a la construccion y mejora de la aplicacion, para ello tenemos

Herramientas: <ingrese aca productos que hacen cosas>, cualquier producto que permite escribir acciones de trabajo, cualquier producto que permite integrar codigo, cualquier producto que permite crear rutinas de pruebas o despliegue. Dictan normalmente como funciona nuestro ‘DevOps’ en las organizaciones. Pero esto solo porque fueron diseñados con un ‘Proceso’ en mente para cubrir necesidades de ‘personas’. Hacer de forma repetitiva lo que queremos para desarrollar nuestras aplicaciones. En lo personal las herramientas son lo menos importante. Pero en el dia a dia, las organizaciones dependen para medir. Para medir los procesos de desarrollo de la herramienta y para medir el tiempo de las personas.

Entonces llegamos al punto de medir, nos pueden medir cualquier tonteria, ‘Cantidad de issues’, ‘Cantidad de bugs’, ‘Cantidad de despliegues’, ‘Cantidad de lineas de codigo’, ‘Tiempo de atencion de issues’ , ‘Tiempo de atencion de bugs’ y evaluarnos si hacemos mas o menos en un periodo de tiempo. La mayoria de las veces todo lo anterior poco tiene que ver con el producto, o los servicios.

¿Y como eliminamos el desperdicio o mejoramos? Eliminar el desperdicio normalmente tiene que ver con reducir los procesos, no a las personas. Y mejorar tiene que ver con o la calidad o el tiempo. Poder hacer mas procesos a la vez o mejores.

Y es importante esa parte de mas procesos a la vez, porque normalmente requiere de mas personas que puedan ejecutar, y menos personas que puedan bloquear. Y las mediciones dependen de calcular lo efectivo que son nuestros procesos para lograr lo que requieren.

Y bien ese es el fin, si hacen DevOps, revisen a sus personas y procesos, y mejoren la cantidad y calidad de lo que hacen, en vez de reducir el tiempo o el costo. Van a tener clientes y trabajadores mas felices.