Compartir a través de


¿Qué es Kanban?

Kanban es un término japonés que significa cartel o cartelera. Un ingeniero industrial llamado Taiichi Ohno desarrolló Kanban en Toyota Motor Corporation para mejorar la eficiencia de la fabricación.

Aunque Kanban se creó para la fabricación, el desarrollo de software comparte muchos de los mismos objetivos, como aumentar el flujo y el rendimiento. Los equipos de desarrollo de software pueden mejorar su eficiencia y ofrecer valor a los usuarios más rápido mediante el uso de los principios y métodos rectores de Kanban.

Imagen que muestra a las personas que usan paneles Kanban.

Principios kanban

La adopción de Kanban requiere el cumplimiento de algunas prácticas fundamentales que pueden variar de los métodos anteriores de los equipos.

Visualización del trabajo

Comprender el estado del equipo de desarrollo y el progreso del trabajo puede ser difícil. El progreso del trabajo y el estado actual son más fáciles de entender cuando se presentan visualmente en lugar de como una lista de elementos de trabajo o un documento.

La visualización del trabajo es un principio clave que Kanban aborda principalmente a través de paneles Kanban. Estos paneles usan tarjetas organizadas por progreso para comunicar el estado general. La visualización del trabajo como tarjetas en diferentes estados de un panel ayuda a ver fácilmente la imagen general de dónde se encuentra actualmente un proyecto, así como identificar posibles cuellos de botella que podrían afectar a la productividad.

Diagrama que muestra un panel Kanban.

Utilice un modelo de extracción

Históricamente, las partes interesadas solicitaron funcionalidad mediante la inserción de trabajo en los equipos de desarrollo, a menudo con plazos estrictos. La calidad sufrió si los equipos tenían que tomar atajos para ofrecer la funcionalidad dentro del plazo.

Kanban se centra en mantener un nivel acordado de calidad que se debe cumplir antes de considerar el trabajo realizado. Para apoyar este modelo, las partes interesadas no imponen trabajo a los equipos que ya están al máximo de su capacidad. En su lugar, las partes interesadas agregan solicitudes a un trabajo pendiente que un equipo extrae en su flujo de trabajo a medida que la capacidad está disponible.

Imponer un límite de WIP

Los equipos que intentan trabajar en demasiadas cosas a la vez pueden sufrir una reducción de la productividad debido a un cambio de contexto frecuente y costoso. El equipo está ocupado, pero el trabajo no se realiza, resultando en plazos de entrega inaceptablemente altos. Limitar el número de elementos de trabajo pendiente en los que un equipo puede trabajar a la vez ayuda a aumentar el foco al reducir el cambio de contexto. Los elementos en los que el equipo está trabajando actualmente se denominan trabajo en curso (WIP).

Los equipos deciden sobre un límite de WIP, que es el número máximo de elementos en los que pueden trabajar al mismo tiempo. Un equipo bien disciplinado se asegura de no superar su límite de WIP. Si los equipos superan sus límites de WIP, investigan el motivo y trabajan para abordar la causa principal.

Medición de la mejora continua

Para practicar la mejora continua, los equipos de desarrollo necesitan una manera de medir la eficacia y el rendimiento. Los paneles Kanban proporcionan una vista dinámica de los estados de trabajo en un flujo de trabajo, por lo que los equipos pueden experimentar con procesos y evaluar más fácilmente el impacto en los flujos de trabajo. Los equipos que adoptan Kanban para mejorar continuamente usan medidas como el tiempo de espera y el tiempo de ciclo.

Paneles Kanban

El panel Kanban es una de las herramientas que usan los equipos para implementar prácticas kanban. Un panel Kanban puede ser una placa física o una aplicación de software que muestra tarjetas organizadas en columnas. Los nombres de columna típicos son Tareas pendientes, Hacer y Listo, pero los equipos pueden personalizar los nombres para que coincidan con sus estados de flujo de trabajo. Por ejemplo, un equipo podría preferir usar New, Development, Testing, UAT y Done.

Los paneles Kanban utilizados en el desarrollo de software muestran tarjetas que corresponden a los elementos del backlog del producto. Las tarjetas incluyen vínculos a otros elementos, como tareas y casos de prueba. Teams puede personalizar las tarjetas para incluir información relevante para su proceso.

Captura de pantalla de una placa Kanban de desarrollo de software.

En un panel Kanban, el límite de WIP se aplica a todas las columnas en curso. Los límites de WIP no se aplican a las primeras y últimas columnas, ya que esas columnas representan el trabajo que no se ha iniciado o se ha completado. Los paneles Kanban ayudan a los equipos a permanecer dentro de los límites de WIP llamando la atención a las columnas que superan los límites. Los equipos pueden entonces determinar un curso de acción para eliminar el cuello de botella.

Diagramas de flujo acumulado

Una adición común a los paneles Kanban basados en el desarrollo de software es un gráfico denominado diagrama de flujo acumulativo (CFD). El CFD ilustra el número de elementos en cada estado a lo largo del tiempo, generalmente a lo largo de varias semanas. El eje horizontal muestra la escala de tiempo, mientras que el eje vertical muestra el número de elementos del backlog del producto. Las áreas coloreadas indican los estados o columnas en los que están actualmente las tarjetas.

El CFD es especialmente útil para identificar tendencias a lo largo del tiempo, incluidos cuellos de botella y otras interrupciones en la velocidad de progreso. Un buen CFD muestra una tendencia ascendente coherente mientras un equipo trabaja en un proyecto. Las áreas coloradas del gráfico deben ser aproximadamente paralelas si el equipo está trabajando dentro de sus límites de WIP.

Imagen que muestra un diagrama de flujo acumulativo.

Un abultamiento en una o varias de las áreas coloreadas suele indicar un cuello de botella o un obstáculo en el flujo del equipo. En el siguiente CFD, el trabajo completado en verde es plano, mientras que el estado de las pruebas en azul está creciendo, probablemente debido a un cuello de botella.

Imagen que muestra un cuello de botella en un diagrama de flujo acumulativo.

Kanban y Scrum en desarrollo ágil

Aunque se ajusta ampliamente dentro del marco del desarrollo Ágil, Scrum y Kanban son bastante diferentes.

  • Scrum se centra en sprints de longitud fija, mientras que Kanban es un modelo de flujo continuo.
  • Scrum ha definido roles, mientras que Kanban no define ningún rol de equipo.
  • Scrum usa la velocidad como una métrica clave, mientras que Kanban usa el tiempo de ciclo.

Los equipos suelen adoptar aspectos de Scrum y Kanban para ayudarles a trabajar de forma más eficaz. Independientemente de las características que elijan, los equipos siempre pueden revisar y adaptarse hasta que encuentren el mejor ajuste. Los equipos deben empezar de manera simple y no deben perder de vista la importancia de proporcionar valor de forma regular a los usuarios.

Kanban con GitHub

GitHub ofrece una experiencia kanban a través de paneles de proyecto (clásico). Estos paneles le ayudan a organizar y priorizar el trabajo para el desarrollo de características específico, hojas de ruta completas o listas de comprobación de versión. Puede automatizar los paneles de proyecto (clásico) para sincronizar el estado de las tarjetas con los problemas asociados y los pull requests.

Kanban con Azure Boards

Azure Boards proporciona una solución kanban completa para la planeación de DevOps. Azure Boards tiene una integración profunda en Azure DevOps y también puede formar parte de la integración de Azure Boards-GitHub.