Hace un tiempo definí un modelo de Madurez de DevOps en base a los distintos rangos que existen en las artes marciales. Muchas personas se beneficiaron al poder entender en qué punto de su jornada DevOps se encontraban.
El problema es que aun ese modelo no presenta estrategias para progresar paulatinamente desde los niveles inferiores hasta los superiores (el punto donde llegas a ser un unicornio de DevOps!).
En este artículo, revisaremos estrategias de crecimiento sustentables.
Toma la Fotografía del “Antes”
Antes de aplicar las estrategias, es preciso identificar honestamente en qué nivel del Modelo de Madurez de DevOps te encuentras.
Es muy probable que te encuentres en niveles diferentes en las tres áreas (Cultura, Procesos, y Tecnología). Y, ¡eso está bien!.
Sé muy honesto, y si existe duda si estas entre un nivel inferior y otro superior, redondea el resultado al nivel inferior. De esta manera podrás refinar y hacer sólidas las bases para progresar con más confianza.
Luego de evaluar (sacar una fotografía del “Antes”) tu madurez en DevOps, es momento de definir tu objetivo y las estrategias para llegar a este.
El objetivo será uno de los niveles superiores al que te encuentras actualmente en cualquiera de los tres pilares mencionados anteriormente. Con eso definido, ya tienes un destino en mente ;).
Ahora, revisemos las estrategias.
1. Toma las Oportunidades Inmediatas en CD
En pocas palabras, empieza con Continuous Deployment.
¿Por qué? … Pues es muy probable que si tu nivel de madurez se encuentra de la mitad para abajo, es porque tu equipo de trabajo no automatizó aún sus Pipelines de Continuous Deployment.
Entonces, analiza cuál de tus productos tiene problemas frecuentemente con el deployment. Por ejemplo, servidores con productos mal configurados luego de un deployment manual, o problemas en una versión del producto que forzaron a tener un rollback manual a la versión previa, o tal vez el equipo de desarrollo continuamente lanza parches inesperados que se despliegan manualmente.
En esencia analiza los procesos más tediosos y manuales de deployment de alguno de tus productos y automatizalo sin piedad.
2. Toma las Oportunidades Inmediatas en CI
En este caso, analiza aquellos procesos rutinarios que tu equipo de desarrollo y/o calidad realiza manual y cotidianamente.
Sugerencia: Pregúntales: ¿Qué es aquello que realizas manualmente? ¿hay forma de automatizarlo?. Si la respuesta es algo como: “Hago builds/testeo/empaquetado,… pero solo toma unos minutos”, encontraste aquello que hay que automatizar … también sin piedad.
3. Kaizen cada Sprint
Del libro “The One Thing”, utiliza la pregunta:
¿Cual es la única cosa que puedo mejorar en este sprint (2 a 4 semanas), que al hacerlo, hará mi vida más sencilla?
Identifica solamente un área, y define qué es lo mínimo que puedes hacer en 2-3 días para mejorarla. Agendalo, y haz que suceda.
Eso es Kaizen o Mejora Continua, puesto en práctica.
Al siguiente Sprint, pregúntate la misma pregunta, y repite el proceso ad infinitum.
4. Cambia lo que controlas. Influencia a quien no puedes Cambiar
Muchas veces estamos entre la pared y la espada como equipo, en el sentido de no poder tomar muchas decisiones (y por lo menos así lo percibimos), y por ende tenemos un muy poco rango de movimiento.
Identifica qué es aquello sobre lo que tienes total control, donde ningún otro equipo o manager tiene algo que decir, y mejorarlo lenta pero seguramente.
Trabajar en esos proyectos no necesariamente será dentro de tu horario laboral (inicialmente), así que prepárate para trabajar horas extras por el simple placer del Kaizen.
Esta es una estrategia que demora varios meses (incluso años) pero es efectiva si quieres convertirte en un “Linchpin”.
Ahora, esta es la parte importante:
Luego de varios proyectos en los que hayas mejorado algo que está bajo tu control, organiza presentaciones con tu Team de trabajo o webinars o incluso grábalos y distribúyelos a todos en la empresa.
Hazlo sin importar lo que otros piensen de ti. Muchas veces, te darás cuenta que inspiraste a otros a mejorar en sus propios pequeños reinos, o incluso te invitarán a trabajar con ellos.
DevOps (y Kaizen) empiezan por uno mismo.
5. Crea Caos Constructivo
Ojo, esto puede ir en contra de tu ética profesional. Pero, antes de que dejes de leer y me juzgues, déjame decirte que varios de mis mentores utilizaron esta técnica y los resultados fueron espectaculares.
El problema de un estancamiento en el progreso de equipos de software no se da por los procesos o la tecnología. Se da por la parte cultural.
Si tu equipo no está progresando y te sientes frustrado utiliza el caos a tu favor.
Lastimosamente muchos humanos necesitamos ir por eventos que desafían nuestro comfort (guerras, catástrofes, pandemias) para vernos obligados a mejorar/innovar.
En el caso de equipos de tecnología, esas crisis por lo general son:
- Caida de servidores en Producción
- Sufrir papelones continuos frente a sus clientes
- Ataques de Hackers
- Pérdida del repositorio de código (sip, vi esto en carne propia varias veces)
Ahora te pregunto ¿Qué pasaría si alguno de estos eventos sucediera en tu equipo?
Con seguridad las formas de trabajo cambiarían culturalmente y por ende impactarían positivamente a los procesos y tecnología, ¿verdad?.
Sin ánimo de motivarte a ser un Agente de Caos, te invito a simular que es lo que pasaría en un ambiente controlado con alguno de estos eventos y así re-descubrir la motivación por mejorar el trabajo de tu equipo.
Toma la Fotografía del “Después”
Sea cual sea la estrategia que decides llevar a cabo, recuerda el tomar una nueva fotografía (antes y después) de implementarla, ya sea en unos 3-6 meses, para así evaluar cuán lejos aún estás de tu objetivo, o muy probablemente descubrirás que ya lo conseguiste y ahora es momento definir un nuevo objetivo.
Ahora, ¿Qué opinas de estas estrategias? ¿Qué otras tienes en tu arsenal?. Déjame saber en los comentarios abajo y ¡sigamos la discusión en línea!
Keep on Learning