Kanban es un enfoque ágil para la gestión de proyectos, que se basa en el flujo continuo de trabajo (a diferencia del desarrollo iterativo propuesto por Scrum). En este artículo vamos a ver 5 buenas razones para las cuales investigar sobre Kanban y considerar su adopción.

#1. Poder realizar entregas en cualquier momento

En Scrum o XP no se pueden hacer entregas a mitad de la iteración. En Kanban se pueden hacer entregas en cualquier momento. Cuando una historia de usuario está lista, la podemos entregar. Obviamente que todo un desafio preparar al entorno de desarrollo de esta manera. Requiere que se haga un "branch por característica" en el controlador de versiones, que se hagan merge frecuentes, integración continua y pruebas. Y todo esto nos da la habilidad de entregar seguido. Es algo por lo que vale la pena esforzarse.

A un Dueño del Producto le interesa mucho esta capacidad. ¿Se implementó una historia de usuario importante? Perfecto, publiquémosla mañana en la versión v2.15.2. Nuestros clientes se beneficiarán con esta entrega lo antes posible. Menor tiempo de espera - clientes más contentos.

Un detalle importante: necesitamos tener una buena suite de pruebas automatizadas, sino será muy dificil hacer entregas pequeñas con buena calidad.

#2. Poder cambiar las prioridades al vuelo

En Scrum (usualmente) no podemos agregar historias al vuelo dentro de un sprint. O al menos no es un proceso facil, y los equipos de desarrollo suelen resistirse a reemplazar una historia del backlog del sprint. La historia ya fue discutida, estimada, etc. La nueva historia se podría discutir de forma apresurada, perdiendo detalles y como consecuencia se podría generar un re-trabajo importante. Por lo tanto, en general las iteraciones tienen contenido fijo.

En Kanban, si tenemos un requerimiento urgente o una historia de usuario muy importante, la podemos agregar como primer elemento de la cola. Será tomada ni bien haya capacidad disponible. Es el sueño de todo Dueño del Producto.

#3. No hay necesidad de iterar

¿Por qué necesitamos de iteraciones? Las iteraciones sirven para descubrir rápidamente problemas reales en el proceso de desarrollo. Más aún, establecen un ritmo sustentable y varios rituales. Sin embargo, hay un punto donde el proyecto puede no necesitarlas más.

Mi visión es que necesitamos iterar primero, fluir después. El backlog ya no está tan definido, los planes cambian con frecuencia. Aprendimos a ser ágiles en general, y las iteraciones ya no ayudan tanto. Sin las iteraciones no hay necesidad de reuniones de planificación y demos. Son desperdicio. En cambio, tenemos reuniones justo-a-tiempo con las personas interesadas en cada historia de usuario.

Kanban establece un ritmo más complejo y puede llevar tiempo en ajustarse. De todas formas, las iteraciones brindan un ritmo estable, y puede ser un motivo por el cual mantener las iteraciones sobre el final del desarrollo.

#4. No hay necesidad de estimar

¿Por qué necesitamos estimar? En el desarrollo iterativo necesitamos predecir cuántas historias podremos completar en la próxima iteración. Incluso podemos predecir la fecha de entrega basándonos en un backlog estimado y la velocidad del equipo. Otro motivo para estimar es que el Dueño del Producto quiere saber qué tan grande son ls historias. Si es muy grande, el Dueño del Producto puede decidir moverla a la siguente entrega. Sino, puede decidir incluirla en la próxima iteración.

Obviamente, el desarrollo iterativo necesita de las iteraciones. Pero si dejamos de iterar, deja de ser un problema. ¿Puede vivir sin estimaciones un Dueño del Producto? Bueno, si.¿Por qué no? Cuando el equipo ya tiene un ritmo en el Kanban, lo único que puede necesitar un Dueño del Producto es saber si una historia es grande, mediana o pequeña.

En nuestra situación, las estimaciones son un desperdicio. No perdemos tiempo estimando. Tenemos un backlog priorizado y tomamos las historias de usuario más importantes y las implementamos. En algunas situaciones podría no funcionar, pero tenemos un producto maduro y cientos de requerimientos de los clientes. No hay un campo claro de desarrollo, así que normalmente no tenemos fechas de entrega definidas. Hacemos entregas cuando está listo.

#5. Visualización perfecta del flujo

El tablero de Kanban brinda una vista clara del trabajo en progreso. Visualiza el flujo y permite una planificación y seguimiento rápido. Es una muy buena herramienta!

Traducido de 5 right reasons to apply Kanban, por Michael Dubakov.

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw