Understanding the fundamental shift from assigning work to pulling work.
In a push system, work is assigned to people. A manager or system decides who does what and when.
Characteristics of push:
Problems with push:
In a pull system, workers take the next item when they have capacity. Work is "pulled" through the system by downstream demand.
Characteristics of pull:
How it works:
The key shift: nothing starts until something finishes. This is what WIP limits enforce.
Pull systems are self-regulating. When capacity decreases (someone sick, difficult problem), the system automatically slows intake. Push systems create pile-ups.
In Toyota's factories, physical kanban cards created the signal: "I used this part, send more."
In knowledge work, the signal is: space in the next column.
When the Code Review column has capacity (WIP not at limit), it signals that Development can finish something and move it over.
When the Code Review column is full (at WIP limit), it signals that Development should either help with reviews or not start new dev work.
This is why WIP limits are essential—without them, there's no signal. Work just piles up.
Making pull work:
Clear priorities: When pulling, what's next? FIFO within class? Most impactful? Teams need shared criteria.
Visible capacity: The board shows when capacity exists (column below WIP limit).
Team agreement: Everyone pulls; nobody pushes. Managers don't assign—they might highlight priorities, but workers pull.
Psychological safety: Pulling requires agency. If people fear choosing wrong, they'll wait for assignments.
The role of product owners/managers:
Transitioning from push to pull:
Dev finishes a feature. Looks at 'Ready for Dev' column. Three items are there. Pulls the top one (highest priority, per team agreement). Moves card to 'In Dev'. Whole team can see this happened.
Team claims to do Kanban. But the team lead DMs developers saying 'work on X next'. The board shows pull, but reality is push. Signals are broken.