views:

89

answers:

5

Given the basic flow on a Kanban board:

| Backlog | Dev | QA | Deploy |

After reading books/articles/presentations it got transformed roughly into

Business  -> | Backlog | Input |     Development    |         QA         | Deployment | Closed |
Marketing -> |         | Queue |--------------------|--------------------|    Queue   |        |
Other   ->   |         |       | Queue | WIP | Done | Queue | WIP | Done |            |        |

So the questions I can't figure out:

  1. Backlog & Input Queue & Dev Queue relationship. PM prioritises MMFs from the Backlog for that release and moves them into the Input Queue, dev (based on WIP limit) takes one and starts working on it (WIP column). What's Dev Queue used for? Should it be PM moving things from Backlog to Dev Queue and dev move them to Dev WIP or should PM move things from Backlog to Input Queue and dev takes one and moves it to Dev WIP? I can't see why Kanban examples talk about having Backlog, Input Queue and Dev sub-Queue, does each have its own purpose?

  2. Where does dev move completed/resolved work items and what is the relationship between Done and next Queue columns? What if QA is not required? For example when Dev WIP is complete you can move it to Dev Done and QA will pull it from there into QA WIP. Or from Dev WIP to either QA Queue or to Deploy Queue (when QA not required). In the first case QAer needs to understand and go through every ticket in Dev Done column even if description is too technical or too vague. In second Dev Done is bypassed and QA loses the control/oversight of what goes into deployment. Also, should there be a Deployment Queue or Closed? Thanks to CI, deployment is one click, but going through every dev tasks and matching the revision number to the one that just got deployed before moving it to Closed sounds like a burden...

Any ideas? Or maybe you know of good detailed examples of Kanban boards and their flow setup from the real world? I know I'm supposed to map out the real existing flow and evolve/improve it over time (Kaizen as a reaction to appearing bottlenecks/problems), but in case of a new team/project what would be the perfect flow?

+1  A: 

The ideal board is project/team-dependent so there's no single answer, even for a new project. Discuss the process with your team, start simple, review periodically. But mine is described in my post Kanban in a nutshell.

You don't need both "Done" and "Queue" columns unless your process dictates some kind of handover. As for who moves the items between columns, aim for "pull" not "push".

asplake
Thanks for the clarification about "done", "queue" and handover. But while I understand the idea, it still sounds counterintuitive to me. Even if you have handover, why not just pulling things from done to in-process? I feel like these Queue columns favor creating queues of work (and thus, big batches). There is no direct implication but that's my feeling. What do I miss?
Pascal Thivent
The person or team doing the activity in the later column may be occupied (perhaps at its limit) already. Having a buffer between the two stages reflects the reality that the work item isn't currently being worked upon. A good example (nicely described in David Anderson's book) is the prioritisation queue. If the prioritisation forum meets only periodically, it's actually a good thing to have a buffer of sufficient size that the downstream activities aren't likely get starved. Also, The time spent queued is a very good thing to know; it can tell you a lot about the downstream bottleneck.
asplake
Thank you very much for the explanation and the book suggestion. +1 by the way.
Pascal Thivent
A: 

Your two questions are actually the same. The short answer is that the dev queue and the input queue should be the same thing, i.e. you need one or the other, but not both. The same for dev done and qa queue, they are the same. The point of the queue or the upstream done column is to indicate to the downstream phase that there is work waiting to be done. These columns are also used to enforce wip limits.

My advice is, even on a new project, map it the way the team currently works, and use Kaizen from there. The whole point of Kanban (and Scrum) is not to tell you how to work, but to make things visible and explicit so you yourself can find the problems and change your system or process. Its works on empirical data, which means that you don't necessarily know beforehand the direction you should be taking. Kanban as a tool/technique exists to point you in that direction through trial and error, and making things visible.

Joshua Lewis
A: 

Backlog & Input Queue & Dev Queue relationship. PM prioritises MMFs from the Backlog for that release and moves them into the Input Queue, dev (based on WIP limit) takes one and starts working on it (WIP column). What's Dev Queue is used for?

I don't know, you transformed the initial basic flow into something complicated :) Maybe you should post the references you used. But from my point of view, they seem redundant (maybe they are not in another context but I don't feel the need for them).

Where does dev move completed/resolved work items and what is the relationship between Done and next Queue columns?

If a WIP item is Dev-Done, I thought that QA was supposed to pull it to QA-WIP. I don't understand all these queue. So same answer as above, they seem redundant to me.

Any ideas?

Not really but I would simplify things (actually, almost fall back to your basic flow), I don't see the point of making them much more complicated than what I described in this previous answer. Ok, this answer was about a Scrum board and not pure Kanban but it would also work if you remove the iterations.

Or maybe you know of good detailed examples of Kanban boards and their flow setup from real world?

Have a look at Kanban vs Scrum, One day in Kanban Land and Kanban and Scrum - a practical guide from Henrik Kniberg. Great stuff.

(...) but in a cease of a new team/project what would be the perfect flow?

There is no perfect flow, our team perfect flow is not yours. But all the above links will give you some ideas. But keep it simple, it doesn't have to be overcomplicated.

Pascal Thivent
A: 

Keep it simple. IMHO your implementation is too complicated. I read your post three times, and still not understand everything ;) Check the following web pages.

http://www.limitedwipsociety.org/2009/11/16/kanban-example/

http://blog.crisp.se/henrikkniberg/2009/06/26/1246053060000.html

Pierre 303
A: 

"Ready" queues (those that you call "Input Queues") are for push flow. "Done" queues (output) are for pull flows.

Most systems have both push and pull. Push will happen where there are different organizational semantics between work steps. For example, the movement of work items between a product backlog and the input queue for the team is usually a push movement. Work may be then pulled from the input queue.

It's rare that you'll have a single work step that will have both an input and an output queue.

Scott Bellware