Cada tarjeta Kanban acompaña a un item de trabajo durante todo el proceso de producción, hasta que éste, es empujado fuera del sistema, liberando una tarjeta. Un nuevo ítem de trabajo, solo podrá ser ingresado/aceptado si se dispone de una tarjeta kanban libre.
Este proceso de producción, donde un trabajo se introduce al sistema solo cuando existe disponibilidad para procesarlo, se denomina pull (tirar) en contrapartida al mecanismo push (empujar), donde el trabajo se introduce en función de la demanda.
En el desarrollo de Software, Kanban fue introducido por David Anderson de la Unidad de Negocios XIT de Microsoft, en 2004, reemplazando el sistemas de tarjetas por un tablero visual similar al de Scrum, pero con características extendidas que veremos a continuación.
Cola de entrada | Análisis | Desarrollo | Test | Deploy | Producción
La cantidad y nombre de las columnas, varía de acuerdo a las necesidades de cada equipo y en la mayoría de los casos, éstas, son subdivididas en dos columnas: cola de espera y en curso
Los límites del WIP (work in progress – trabajo en curso -) consisten en acordar anticipadamente, la cantidad de ítems que pueden abordarse por cada proceso (es decir, por columnas del tablero).
El principal objetivo de establecer estos límites, es el de detectar cuellos de botella.
Los cuellos de botella representan el estancamiento de un proceso determinado. Viendo el siguiente tablero ficticio, se puede comprender mejor:

En el tablero anterior, podemos visualizar claramente, que en la columna "pruebas" se produce un cuello de botella, pues el límite WIP está cubierto, mientras que el proceso siguiente (deploy), está totalmente libre. Esto, claramente marca un problema a resolver en el proceso correspondiente a las pruebas.
Es un valor a tener en cuenta, que la resolución de cuellos de botella, la mayoría de las veces, motiva la colaboración del equipo entre los diferentes procesos. Pues mientras existen procesos colapsados, existen a la vez, procesos libres para aceptar nuevos ítems. El cuello de botella ha generado un estancamiento, y los procesos libres, pueden ayudar a "desetancar" a los procesos colapsados.
Al dividir, el CycleTime por el WIP, se obtiene el "rendimiento de trabajo", denominado Throughput, es decir, la cantidad de ítems que un equipo puede terminar en un determinado período de tiempo.
Throughput = CycleTime/WIP
Con estos valores, la optimización del flujo de trabajo consistirá en la búsqueda de: