Reading about Kanban, I often encounter things like buffers and queues being mentioned. But I don't understand the difference. For example:

enter image description here

A, B and C are queues or buffers? What's their role? What are the differences? For example, If I have A, do I need B, or do they serve the same purpose?

Can anyone clarify these concepts of queue and buffer in Kanban?

2 Answers 2


To effectively answer this, we have to remember that the purpose of a Kanban board is to visualize the flow of work. It is not quite as 1-to-1 as each column being a step of work, but that's a good place to start.

A and C are fine because they are not columns per se. A is part of the Development step and C is part of the Testing step. The soft line just indicates that the work is complete and ready for someone to pull the task to the next step. It is simply a visual indicator. You could replace the two sides by having a little green icon on cards that are ready to pull and be just as effective.

On the other hand, in your visualization, B should not be on your board. I'm assuming you are using the Ready For column the way most teams do - as a holding space. This does two things. First, it breaks your visualization. To illustrate, imagine that column is gone. A task is pulled by a developer into the left side of Dev so we know they started coding. When it moves to the right side, we know they've finished and it's ready to pull. Next, a tester grabs the card and pulls it into testing - we now know they started working on it. By watching the board, I can tell you how the work is flowing.

Now, let's add that column back in. Who pulls the card to "ready"? What work are they doing at this step? This is no longer representing work, it's just a pile where no one has responsibility for it.

The other practical problem comes in WIP. In Kanban, it is important that the whole system has some WIP constraint. This ensures an appropriate focus on flow and delivery of work. Queues don't typically have WIP, which creates a black hole in the middle of your process.

The typical reason these appear is because a bottleneck occurs. To work around the bottleneck, the team create's a pile to dump things so they don't have to slow down. There's a long list of reasons why this usually creates huge runaway problems for teams, but for this answer, let's just say that lean and Kanban direct the team to solve the bottleneck instead of allowing it to fester.


"Buffer" comes from the Theory of Constraints. When you identify a bottleneck, one of the mitigation strategies would be placing a buffer before the bottleneck to ensure maximum utilization. The worst thing is to keep the bottleneck idle, waiting for the next item; thus, you put a buffer to ensure something is always available to work on.

Lean taught us about the Pull principle. You want each stage to pull from the previous. The "DEVELOPMENT" stage signals that work is done by placing items in "DEVELOPMENT / Done". The idea is that TESTING will pull next item when there is capacity as opposed to "DEVELOPMENT" pushing it right away to "TESTING" (basically throwing hot potato). AND "DEVELOPMENT" better not start new work if "TEST READY" reaches the established limits.

Key characteristics of Queues are ordering, how items arrive and leave, and, more broadly, the Queue Discipline. Is it a first-in, first-out (FIFO) queue? Are there any other prioritization rules?

Assuming there is some queue discipline, all A, B and C are Queues. On top of that, the "TESTING READY" looks like a buffer for "TESTING" but feels redundant.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.