kanban push-me-pull-you

I've been thinking some more about kanban and visualization. A while ago I blogged about my security-scan kanban idea of introducing proper physical kanban onto the board. Instead of writing a work-in-progress limit of 5 at the top of a column you introduce 5 physical "empty-tray" kanbans. Different columns use different coloured kanban. For example, here's a very simple kanban board with a Wibbling limit of 4 yellow trays and a Fubaring limit of 5 red trays. The stories are in blue and must always be in a tray.

I mentioned how this allows genuine pulling. For example, the Fubarers can signal they're ready to pull a story from the Wibblers by moving an empty red kanban tray into the Wibbling column.

I said that the Wibblers could simply move a done blue story from its yellow kanban into an empty red kanban. Something about that bothered me and I think I now know what it is. Once again it's about visualization. What bothers me is that there is no representation of whether a blue story is done until it's moved into an empty kanban. There is no visual display of whether a blue story actually is "in-progress" and being worked on, or whether its "in-queue" and waiting for an empty red kanban. That feels wrong.

More recently, I blogged about about the common pattern of splitting each column; one for ongoing, one for done, like this. Something about the done column didn't feel quite right either.

So here's what I'm thinking. As well as moving empty-kanbans upstream to signal a pull, you can also move full-kanbans downstream to signal a push. For example, when a Wibbler finishes a blue story they don't leave it in their Wibbling column, waiting for a red kanban pull signal, they move it, still in its yellow kanban, into the Fubaring column, like this:

Ideally, the departing full-yellow-kanban will be just-in-time to meet an arriving empty-red-kanban between the columns...

...and the blue-story will flow from the full-yellow-kanban into the empty-red-kanban:

On the other hand, if the Wibblers are working much faster than the Fubarers then the Fubarer's column will fill up with full-kanban push-requests:

As the Fubarer's column fills up with full-kanban push-requests from upstream it's likely it will also be filling up with empty-kanbans pull-requests from downstream (in green say):

Push-me-pull-you is very visual:
  • There's one representation of flow ; thin columns with kanban of one colour only.
  • There's a different representation of lack of flow ; fat columns filling up (at the bottleneck) with two or three different coloured kanbans.
Push-me-pull-you points to problems:
  • If the yellow Wibblers work faster than the downstream red Fubarers, the Wibbler's full yellow kanban get stuck downstream in the Fubarer's column, inviting the Wibblers to help the Fubarers.
  • If the red Fubarers work faster than the upstream yellow Wibblers, the Fubarer's empty red kanban get stuck upstream in the Wibbler's column, inviting the Fubarers to help the Wibblers.
Push-me-pull-you has helped me understand:
  • pull does not preclude push; you can have push and pull.
  • wip-limits are not limited to pull systems; wip-limits would help in push systems too.


  1. Hmm... surely the push is wrong. Wibblers should stop and do something else. Maybe they know how to Fubar...

  2. The do have to stop and do something else. The blue story is still inside the yellow kanban so the yellow kanban has not been freed up...

  3. Thinking about Push vs Pull I feel uncomfortable with Push. Maybe stories could get a green dot when they are ready to be Pulled? It feels wrong (to me) to have the coloured tray that indicates the wip limit be in a different column. (Doesn't seem so bad if it is empty, but still might confuse me.)

  4. Ok. I know what you mean. I find it interesting that we feel ok labelling it as done in "our" column, but we feel uncomfortable labelling it as "waiting" in the next column. It amounts to the same thing. I'm trying to think beyond the wip limits and use the board in a way that promotes communication and collaboration...

  5. Yes. Also I was thinking of the board as something that is updated only AFTER some communication and collaboration, as a visible reminder to ourselves and a progress indication to others. I see a risk that somebody may see a column with fewer slots than the wip limit as an opportunity to try to push work into it.

  6. I understand. And what I'm saying is that I'm trying to sort of separate the idea of the physical column from its limit. The column is a very static thing. Since the coloured kanban take care of the limits all by themselves, by simply existing, I feel there is some scope for allowing them to "live" wherever you want. But mostly I'm just thinking out loud and welcome the interaction via comments like yours. Thanks