¿Qué es Kanban?

Kanban es un concepto japonés que significa cartel o valla publicitaria. Un ingeniero industrial llamado Taiichi Ohno desarrolló Kanban en Toyota Motor Corporation para mejorar la productividad.

Aunque Kanban se creó para la producció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 productividad y ofrecer valor a los usuarios con mayor rapidez gracias al uso de los principios y métodos de Kanban.

Image that shows people using Kanban boards.

Principios de Kanban

La adopción de Kanban requiere la adopción de algunas prácticas fundamentales que pueden ser distintas de los métodos que utilizaban anteriormente los equipos.

Visualización del trabajo

Comprender el estado del equipo de desarrollo y el progreso del trabajo pueden constituir un reto. El progreso del trabajo y el estado actual son más fáciles de entender cuando se presentan visualmente en lugar de en forma de lista de elementos de trabajo o documento.

La visualización del trabajo es un principio esencial que Kanban aborda fundamentalmente a través de los tableros Kanban. Estos tableros usan tarjetas organizadas por progreso para comunicar el estado general. Visualizar el trabajo como tarjetas en diferentes estados en un tablero ayuda a ver fácilmente el panorama general de la situación actual de un proyecto, así como a identificar posibles cuellos de botella que podrían afectar a la productividad.

Diagram showing a Kanban board.

Uso de un modelo de extracción

Históricamente, las partes implicadas solicitaban funcionalidades imponiendo el trabajo a los equipos de desarrollo, a menudo con plazos muy ajustados. La calidad mermaba si los equipos tenían que tomar atajos para entregar la funcionalidad en el plazo previsto.

Kanban se centra en mantener un nivel de calidad convenido que debe satisfacerse antes de considerar el trabajo realizado. Para aplicar este modelo, las partes implicadas no imponen trabajo a los equipos que ya están trabajando al máximo de su capacidad. Por el contrario, añaden solicitudes a un registro de trabajo pendiente que un equipo incorpora a su flujo de trabajo a medida que se dispone de capacidad.

Establecimiento de un límite de WIP

Los equipos que intentan trabajar en demasiadas cosas simultáneamente pueden reducir su productividad debido a los frecuentes y costosos cambios de contexto. El equipo está atareado, pero el trabajo no se realiza, lo que da lugar a plazos de entrega inaceptablemente elevados. Limitar el número de elementos del trabajo pendiente en los que un equipo puede trabajar a la vez permite aumentar la concentración y reducir los cambios de contexto. Los temas en los que trabaja actualmente el equipo se denominan trabajo en curso (WIP).

Los equipos deciden un límite de WIP o 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, estudian el motivo y trabajan para solucionar la causa raíz.

Medición de la mejora continua

Para poner en práctica la mejora continua, los equipos de desarrollo necesitan una forma de medir la eficacia y el rendimiento. Los tableros Kanban ofrecen una visión dinámica de los estados del trabajo en un flujo de trabajo, por lo que los equipos pueden ensayar procesos y evaluar más fácilmente el impacto en los flujos de trabajo. Los equipos que adoptan Kanban para la mejora continua utilizan medidas como plazo de entrega y 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 un panel físico o una aplicación informática que muestre las tarjetas dispuestas en columnas. Los nombres de columna habituales son Pendiente, En curso y Finalizado, pero los equipos pueden personalizar los nombres para que se adapten a sus estados de flujo de trabajo. Por ejemplo, es posible que un equipo prefiera usar Nuevo, Desarrollo, Prueba, UAT y Finalizado.

Los paneles Kanban basados en el desarrollo de software muestran tarjetas que coinciden con elementos del registro de trabajo pendiente del producto. Las tarjetas se vinculan a otros elementos, como tareas y casos de prueba. Los equipos pueden personalizar las tarjetas para incluir información importante para su proceso.

Screenshot of a software development Kanban board.

En un panel Kanban, el límite de WIP se aplica a todas las columnas de trabajo en curso. Los límites de WIP no se aplican a las primeras y últimas columnas, ya que 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 al atraer la atención hacia las columnas que superan los límites. Por consiguiente, los equipos pueden decidir un curso de acción para eliminar el cuello de botella.

Diagramas de flujo acumulado

Una incorporación común a los paneles Kanban basados en el desarrollo de software es un gráfico conocido como diagrama de flujo acumulado (CFD). El CFD representa el número de elementos de cada estado a lo largo del tiempo, normalmente a través de varias semanas. El eje horizontal indica la escala de tiempo y el eje vertical indica el número de elementos de trabajo pendiente del producto. Las áreas que aparecen en color indican los estados o columnas en las que están actualmente las tarjetas.

El CFD es muy útil para identificar tendencias a lo largo del tiempo, incluidos los cuellos de botella y otras alteraciones de la velocidad de avance. Un buen CFD muestra una tendencia ascendente coherente durante el trabajo de un equipo en un proyecto. Las áreas que aparecen en color deben ser aproximadamente paralelas si el equipo está trabajando dentro de sus límites de WIP.

Image showing a cumulative flow diagram.

Un saliente en una o varias de las áreas en color suele indicar un cuello de botella o un obstáculo en el flujo del equipo. En el CFD a continuación, el trabajo completado en verde es plano, mientras que el estado de prueba en azul está creciendo, posiblemente a causa de un cuello de botella.

Image showing a bottleneck in a cumulative flow diagram.

Kanban y Scrum en el desarrollo Agile

Aunque en líneas generales encajan en el ámbito del desarrollo Agile, Scrum y Kanban son bastante diferentes.

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

Los equipos suelen adoptar una combinación de aspectos de Scrum y Kanban para trabajar de forma más eficaz. Independientemente de las características que elijan, los equipos siempre pueden revisar y modificar hasta encontrar la más adecuada. Los equipos deben empezar por lo sencillo y no perder de vista la importancia de aportar valor regularmente a los usuarios.

Kanban con GitHub

GitHub ofrece una experiencia Kanban mediante paneles de proyecto (clásico). Estos paneles ayudan a organizar y priorizar el trabajo para el desarrollo de características específicas, hojas de ruta globales o listas de verificación de versiones. Es posible automatizar los paneles de proyecto (clásico) para sincronizar el estado de las tarjetas con las incidencias y solicitudes de incorporación de cambios asociadas.

Kanban con Azure Boards

Azure Boards proporciona una solución Kanban completa para el planeamiento de DevOps. Azure Boards se integra profundamente en Azure DevOps y también puede formar parte de la integración Azure Boards-GitHub.