Como ya puse de manifiesto en un post anterior, el movimiento Lean ha influido e inspirado el movimiento DevOps. Continuando en esta línea, una de las técnicas fundamentales del movimiento Lean y de gran utilidad en DevOps es el Value Stream Mapping (VSM). ¿Y qué es Value Stream Mapping? Definido de forma breve y simple, VSM (traducido como Mapeo de Cadena de Valor) es una herramienta que permite visualizar el proceso a lo largo de la cadena de valor desde que se solicita un elemento hasta que se entrega al cliente.
Cuando describía el primer principio de la metodología DevOps, “Acelerar el flujo o Accelerate Flow”, ya introducía la relación que tiene VSM con este principio: para poder acelerar el flujo lo primero que hay que hacer es analizar con detalle cuál es el flujo real que siguen nuestros ítems de trabajo a lo largo del proceso de entrega de valor. El uso del Value Stream Mapping nos permitirá identificar dónde están los desperdicios y cuellos de botella. En este punto hay que recordar que desperdicio se define como cualquier actividad que no añade valor al producto, como por ejemplo el tiempo de espera en cola.
Hay distintas técnicas para hacer VSM, pero tras años de experiencia empleando esta técnica, explico a continuación la fórmula que mejor me ha funcionado:
Cómo elaborar un Value Stream Map
El objetivo de un Value Stream Map (Mapa de Cadena de Valor) es identificar y visualizar el proceso que siguen las peticiones a lo largo del flujo de valor. Por lo tanto, lo primero que tenemos que identificar es qué es un elemento de trabajo. Debemos definir el ítem que vamos a trazar a lo largo del proceso. En un entorno DevOps este elemento puede ser una funcionalidad concreta, una historia de usuario, una épica, etc. Lo importante es que tengamos definido el elemento. En este punto es interesante recordar que un pilar básico de DevOps es realizar entregas frecuentes, por lo que cuanto más grande sea el elemento más nos estaremos alejando de la filosofía DevOps.
Una vez definido, deberíamos dibujar los estados por los que va a pasar dicho ítem. Personalmente recomiendo usar una pizarra física antes de usar una herramienta digital; Una vez que tengamos el mapa ya podremos pasarlo a una herramienta.
Para elaborar un buen Stream Value Map es recomendable visitar in situ los sitios o personas por las que va pasando el elemento y comprobar qué actividades se realizan sobre dicho elemento, evaluando de manera crítica cuales aportan valor y cuáles no.
En esta fase es necesario ir midiendo el tiempo que pasa el elemento en cada estado e ir registrando dichos tiempos. Para esta actividad recomiendo usar notas adhesivas (post-it) y colocarlos en la pizarra elaborada en el paso anterior e ir registrando, en función del proceso, la fecha y/o la hora de entrada en un determinado estado. Estos datos nos servirán para calcular el tiempo de ciclo del proceso, un KPI fundamental para DevOps.
Otro indicador que podemos obtener es el tiempo de trabajo efectivo frente al tiempo de espera y calcular la eficiencia.
Por ejemplo, de un flujo de valor para un desarrollo tradicional podríamos elaborar un Value Stream Map en una pizarra como en este sencillo ejemplo:
Figura 1: Uso de pizarra para elaboración de Value Stream Map
Se observa que según está definido el proceso, el tiempo de entrega (desde que el cliente realiza una petición hasta que se entrega) sería de 55 días.
Este ejemplo es muy sencillo, pero se puede ajustar al flujo típico en una empresa de desarrollo. Aunque los tiempos puedan parecer exagerados, ilustra perfectamente cómo el trabajo en silos con diferentes equipos afecta negativamente en el tiempo de ciclo, pues el tiempo de espera se genera a partir de la dificultad de sincronización entre los equipos.
Cómo analizar un Value Stream Map
A la vista del mapa, ¿qué análisis podríamos extraer?
- Se pueden visualizar y analizar dónde están los desperdicios y dónde aplicar propuestas de mejora. Para cada estado se podría realizar un análisis de las actividades llevadas a cabo para ver cuales proporcionan valor y cuales son simplemente desperdicio.
- Cómo afectaría al tiempo de ciclo incluir una “Deployment Pipeline” automatizada. Idealmente los tiempos de espera desde desarrollo a despliegue se reducirían, con lo que podrían llegar a desaparecer los 22 días de espera (independientemente de otros problemas que pudieran surgir). Esto no significa que el tiempo de ciclo se redujera en 22 días (podría ser incluso más) ya que requeriría un cambio del flujo completo y por tanto un cambio del dibujo del Value Stream Map.
- Cómo afecta reducir el trabajo en proceso (WIP).
- Cómo aplicar la teoría de restricciones para mejorar el flujo de proceso
Esto son algunos ejemplos de la utilidad del Value Stream Mapping, pero cada organización debe analizar su propio flujo, según sus procesos y recursos.
Lo que es común a todas es que cualquier empresa que quiera realizar su transformación a DevOps debería empezar por realizar un Value Stream Map de sus procesos, analizarlo y comenzar con las propuestas de mejora que aceleren dicho flujo de valor.
Uso de JIRA para visualizar el Value Stream Map
Una vez que hemos elaborado nuestro Value Stream Map podemos utilizar una herramienta que nos ayude a visualizar y medir nuestro flujo de valor. Se puede usar cualquier herramienta que permita mostrar pizarras y medir los tiempos que pasan los elementos en cada columna.
En este caso empleamos Jira Software porque permite definir los ítems de trabajo, elaborar el flujo de trabajo y mapear los estados del flujo a una pizarra Kanban, con lo que obtenemos una visualización gráfica del proceso.
El ejemplo que describimos en el apartado anterior se podría mapear de la siguiente manera:
Figura 2: Pizarra Kanban de un proceso de desarrollo de software
En esta pizarra Kanban hemos trasladado los mismos estados que aparecen en el Value Stream Map convirtiéndolos en columnas y hemos generado un workflow que nos permita ir moviendo los elementos por la pizarra.
De esta manera podremos visualizar cómo se van moviendo nuestros ítems de trabajo a lo largo del flujo de valor.
Además, Jira Software incorpora una funcionalidad de reporting que nos permite obtener de manera muy sencilla el tiempo de ciclo y vigilar los cambios que se introducen en el sistema. Esta utilidad es la gráfica de control.
En la siguiente figura vemos un ejemplo:
Figura 3: Gráfico de control de JIRA Software
En el gráfico podemos ver la evolución del tiempo de ciclo y la variabilidad del mismo.
Cada punto en la gráfica representa un ítem de trabajo, por ejemplo una historia de usuario. La línea roja representa el tiempo de ciclo medio de todo el periodo mostrado, mientras que la línea azul representa el promedio móvil lo que nos muestra las variaciones del tiempo de ciclo. Una línea azul decreciente significa una reducción del tiempo de ciclo, mientras que una línea azul ascendente representa incrementos en el tiempo de ciclo. Por último, las zonas sombreadas en azul representan la desviación estándar de los datos con lo que cuanto más estrecha sea dicha zona menor variabilidad tendremos en nuestro sistema y más precisión, lo cual nos lleva a unas estimaciones más precisas.
De esta manera, podremos evaluar si los cambios que introducimos en nuestro sistema han conseguido reducir el tiempo de ciclo. En este caso se observa claramente que las medidas aplicadas han funcionado, reduciéndolo de forma significativa.
Conclusión
En este artículo hemos descrito brevemente qué es el Value Stream Mapping, cómo desarrollar un Value Stream Map para nuestros procesos, cómo interpretarlo y finalmente cómo usar una herramienta que nos ayude a registrar y hacer el seguimiento del mismo.
El principal beneficio del Value Stream Mapping es que nos permite conocer cuál es el flujo de valor de nuestra organización evidenciando los problemas, desperdicios y cuellos de botella lo que nos ayuda a establecer planes de mejora efectivos con el objetivo de reducir los tiempos de ciclo en la entrega de valor al cliente.
Es importante remarcar que la elaboración del Value Stream Map es una tarea de mejora continua que tiene que ir evolucionando a medida que introducimos cambios en nuestro flujo de entrega de valor.
En siguientes posts veremos que técnicas podemos usar tras el análisis del Value Stream Map para intentar reducir los tiempos de ciclo. Síguenos en LinkedIn y Twitter para no perderte ninguno.
Emiliano Sutil es Project Manager en Xeridia