Metodología Kanban

Artículo

¿Qué es la metodología Kanban?

Descubre sus funcionalidades

Una metodología de desarrollo de software centrada en la entrega 'just-in-time' de la funcionalidad y la gestión de 'Work In Progress'.

Aunque sin duda la metodología Agile más extendida en nuestro país es Scrum, Kanban y alguno de sus elementos ( como el tablero Kanban ) son bien conocidas por casi todos los equipos que aplican Agile en cualquiera de sus formas.

Al igual que Scrum, XP y otras, Kanban se basa se basa en las metodologías lean que se han utilizado con éxito en los procesos industriales de fabricación.

En un ambiente lean, las actividades o procesos que resultan en el gasto de esfuerzo y/o recursos hacia objetivos que no están produciendo valor para el cliente deben ser eliminados. Esencialmente, lean se centra en preservar el valor con menos trabajo. Los enfoques Lean a menudo se denominan seis-sigma o Justo a Tiempo (JIT).

Kanban es una metodología de desarrollo de software lean que se centra en la entrega ‘just-in-time’ de la funcionalidad y hace fuerte hincapié en la gestión de la cantidad de trabajo en curso (WIP – Work In Progress).

Metodología Kanban

Introducción breve a Kanban

En general, Kanban es un sistema de programación para lean y otros procesos JIT. En un proceso Kanban, existen "tarjetas" físicas o virtuales (generalmente post-its) llamadas Kanban que se mueven a través del proceso de principio a fin. El objetivo es mantener un flujo constante de Kanban.

Cuando se utiliza para el desarrollo de software, Kanban utiliza las etapas del ciclo de vida del desarrollo de software (SDLC) para representar las diferentes etapas del proceso. El objetivo es controlar y gestionar el flujo de características (representadas por tarjetas Kanban) para que el número de características que entran en el proceso coincida con las que se están completando.

A diferencia de, por ejemplo Scrum, Kanban es una metodología ágil que no es necesariamente iterativa. Procesos como Scrum tienen iteraciones cortas que imitan el ciclo de vida de un proyecto a pequeña escala, teniendo un comienzo y un final distintos para cada iteración. Kanban permite que el software se desarrolle en un solo ciclo de desarrollo. A pesar de esto, Kanban es un ejemplo de una metodología ágil porque cumple con los doce principios detrás del manifiesto ágil, porque, aunque no es iterativo, es incremental.

El principio detrás del Kanban, que permite que sea incremental y ágil, es que tiene un rendimiento limitado. Sin iteraciones, un proyecto Kanban no tiene puntos de inicio o final definidos para work items individuales; cada uno puede empezar y terminar independientemente del otro, y los work items no tienen una duración predeterminada. En cambio, se reconoce que cada fase del ciclo de vida tiene una capacidad limitada de trabajo en un momento dado. Se crea un pequeño elemento de trabajo a partir de la lista de requisitos priorizados y no iniciados y luego se inicia el proceso de desarrollo, generalmente con la elaboración de algunos requisitos. No se permite que un work item pase a la siguiente fase hasta que se abra una cierta capacidad. Al controlar el número de tareas activas en un momento dado, los desarrolladores todavía se acercan al proyecto global de forma incremental, lo que les da la oportunidad de aplicar principios ágiles.

Los proyectos Kanban tienen límites llamados Work In Progress (WIP), que son la medida de la capacidad que mantiene al equipo de desarrollo enfocado en una pequeña cantidad de trabajo a la vez. Sólo a medida que se completan las tareas, las nuevas tareas se incorporan al ciclo. Los límites del WIP deben ser ajustados en base a comparaciones del esfuerzo esperado versus el esfuerzo real para las tareas que se completan.

Kanban no impone ninguna definición de rol, como por ejemplo, Scrum, y junto con la ausencia de iteraciones formales, la flexibilidad de roles hace que Kanban sea atractivo para aquellos que han estado usando modelos de desarrollo de estilo waterfall-style y que quieren cambiar, pero que temen la conmoción inicial que algo como Scrum puede causar mientras son adoptados por un equipo de desarrollo.

En el siguiente artículo profundizaremos más en las diferencias principales entre Kanban y Scrum y veremos si estas dos metodologías puedes coexistir juntas o no.

Puedes encontrar más información al respecto de este y otros temas relacionados con lo que comentamos en el artículo en el site de nuestro colaborador, Jerónimo Palacios. http://jeronimopalacios.com.

Julio Roche

Julio Roche es Specialist Director del área de System Development&Integration, en la práctica de DxD de Deloitte. Profesional con más de 25 años de experiencia en el mundo del desarrollo de soluciones tecnológicas, su labor se encuentra actualmente focalizada en el terreno de la movilidad y la transformación digital, lo que le ha llevado a estar involucrado en procesos de implantación de metodologías ágiles desempeñando todos los roles que estas enumeran. Ha sido Agile Coach&Trainer, Scrum Master, Product Owner y parte del Development Team.