NimbleWork

Pasar de cascada a ágil con Kanban

Esta pregunta se hizo en un foro de gestión de proyectos al que respondí. Teniendo en cuenta cuántos equipos de software están pasando de los procesos tradicionales a los ágiles utilizando Kanban, me pareció que sería útil compartir mi respuesta aquí también.

El autor de la pregunta quería saber si un proceso estándar de SDLC (ciclo de vida del desarrollo de software), es decir, las etapas de planificación, definición, diseño, prueba y despliegue (un proceso muy común con el que todo el mundo se ha encontrado/está familiarizado) podría traducirse en columnas en un tablero Kanban, denominadas y mapeadas como Backlog, definición, diseño, prueba y despliegue.

Waterfall-vs-Agile

Kanban tiene muy pocas barreras para su adopción (¿posiblemente ninguna?) y uno de sus principios es » Comience desde donde está», es decir, empiece con su proceso actual, no cambie nada. Uno simplemente lo visualiza y luego lo cambia gradualmente a medida que el equipo identifica la necesidad de mejoras.

Así que, refiriéndome a la pregunta, si su proceso actual es «Backlog, Definir, Diseñar, Probar, Desplegar», entonces puede empezar con eso y usarlo para seguir cada Requisito (o Historia de Usuario o característica – lo que sea que use en el nivel más bajo de la «definición del alcance»), a medida que se mueve a través de las diversas etapas de desarrollo.  No se puede tener todo el proyecto (representado como una tarjeta) pasando por ese proceso, porque entonces no se vería el progreso; tampoco se pueden tener las tareas típicas del plan de proyecto fluyendo a través de ese proceso. (Las tareas simplemente siguen un proceso de “Por Hacer – Haciendo – Hecho).

La idea de Lean/Kanban es hacer un seguimiento de las etapas de «adición de valor» de su flujo de trabajo – y aplicarlo a cada pieza de valor que se está entregando al cliente, que, en este caso, son piezas de software (características o requisitos). Yo recomendaría pensar en cada paso del proceso (de desarrollo) que añada valor incremental al entregable, incluso si no implica un traspaso de una persona a otra.

Como ejemplo, aquí está nuestro flujo de trabajo que usamos para nuestro propio desarrollo de productos (construimos SwiftKanban… usando SwiftKanban). Utilizamos un enfoque TDD –

Se trata de un proceso bastante detallado que hace un seguimiento de cada paso de adición de valor a medida que un desarrollador trabaja a través de ellos en una sola historia de usuario o mejora o defecto, los 3 entregables típicos en los que trabajan nuestros desarrolladores. El código de colores identifica el tipo de trabajo.

Volviendo al flujo de alto nivel mencionado en la pregunta (Planificación para el despliegue a través de la definición, el diseño y las pruebas), se puede empezar con eso y luego se puede «evolucionar» gradualmente a un flujo más granular donde cada una de las etapas identificadas puede tener algunas sub-etapas.

También, es fácil olvidarlo, pero, es importante tener en cuenta que Kanban le ayuda a nivelar y mejorar su flujo proporcionando columnas intermedias de amortiguación para que cada etapa de su flujo de trabajo tenga suficiente trabajo y que el trabajo fluya sin problemas. Esto garantiza que en ningún momento los miembros de su equipo se vean sobrecargados o se queden sin trabajo. Esto se consigue añadiendo columnas intermedias de «Hecho» (como ejemplo, se podría dividir la columna de Diseño en «En proceso» y «Hecho») y añadiendo límites de trabajo en curso en cada columna. He aquí un par de ejemplos –

Para saber más sobre el método Kanban, le recomiendo que lea el libro de David Anderson “Kanban: Successful Evolutionary Change for your Technology Business”. e David Anderson. También encontrará muchos artículos útiles en nuestra Guía Kanban aquí.

Un pensamiento antes de concluir – no hay un proceso «predefinido» en Kanban. Usted y su equipo tienen que decidir qué proceso va a utilizar – basado en su experiencia y prácticas de desarrollo actuales– en su nuevo tablero Kanban. Si usted ha estado haciendo sólo proyectos en cascada hasta ahora, entonces usted comienza utilizando el mismo proceso de nuevo. Si ha estado haciendo un proceso Scrum o Iterativo, comience con eso. Kanban le ayudará gradualmente a mejorar y evolucionar a medida que identifique los problemas con su entrega de software, si los hay, y cualquier cuello de botella del proceso.

Si desea aprender más, no dude en explorar nuestro sitio web – hay una tonelada de información para ayudar a un principiante a empezar con Kanban. También tenemos una prueba gratuita de 30 días de SwiftKanban a la que puede suscribirse. ¡Comentarios y preguntas son bienvenidos!

Mahesh Singh
Cofundador, SVP – Marketing/ Formador y entrenador de Kanban

P.D. – En otra respuesta del foro se mencionaba el método STATIK (Systems Thinking Approach To Implement Kanban) para identificar el propio proceso y el tipo de trabajo que se realiza. Yo también lo utilizo en mis clases de formación sobre Kanban. Sin embargo, es un tema algo avanzado. Sugeriría conseguir un formador/entrenador de Kanban para ayudarle con eso inicialmente.

Salir de la versión móvil