Kanban Board Patterns

Posted on April 28th, 2011 in Kanban by siddharta || 1 Comment

Different teams use different workflows, yet some common patterns emerge on designing boards to handle different situations. In this post I’ll look at some board patterns to handle some common scenarios. This post is about a board within a single team. I have previously written about enterprise kanban boards that span multiple levels in a company or boards to coordinate multiple teams. So lets start with the patterns.

(By the way, any of the kanban board images can be clicked to view in full size. All screenshots are from the Tools For Agile suite)

Linear Flow

Linear flow is the simplest kanban board: Just a series of columns that cards flow through from left to right. Individual columns have work in progress limits to limit the number of cards in the column.

Sub-Workflow

When a step in the workflow is itself composed of multiple steps you can use vertical swimlanes to model the sub-steps under the main step. Whats the advantage of doing this? With this configuration, you can not only set limits on each of the individual sub-steps but on the main step as well. This limit on the main step applies across all the sub-steps. So in the above example, each column can have a maximum of 2 cards, and there can only be 5 cards across all columns.

Doing-Done

In this pattern, when a step of work is completed, it is placed in a queue signifying it is ready to be pulled when an empty slot opens in the next stage. Why do this? First, it makes it easy to differentiate between cards in progress and cards that are ready to be pulled. Second, you can also calculate the total time spent in queues. Note that this is different from a buffer. A buffer has a separate WIP limit and its purpose is to ensure that constraints are not starved. A common limit is used for both the Doing and Done columns, and no limit is applied on the child columns.

Input Queue Replenishment

The input queue replenishment pattern is used when the team does not pick up items straight from the top of the backlog but they pull items based on some other condition, like class of service for example. The Kanban board contains one column with horizontal swimlanes for each category that can be pulled which are populated with the next item of that type to be pulled. When a card is pulled from one swimlane, the empty slot is filled with another card of that category from the backlog.

Multiple Workflow

Sometimes you have different workflows for different types of items. So maybe expedited work items may follow a different workflow from normal items. This can be modeled on the board as horizontal swimlanes for each workflow with vertical lanes for each step in the workflow.

Two Tier Kanban

This is a two tier kanban board with task breakdown for the feature. When the feature card moves to the Build column, it is broken down into tasks. The task cards are moved within the three task columns. When all the tasks for a feature are completed, the feature is moved to the next feature column.

Parallel Workflow

Sometimes two steps may happen on a work item in parallel. For example, a tester might write automated acceptance tests while a developer builds the feature in parallel. The above board shows a horizontal swimlane for the parallel steps and the same card is moved into both swimlanes on the board. When both cards get into the Done column, one of the cards is moved on to the next step in the flow.

CONWIP

CONWIP (Constant WIP) is a board where you don’t limit individual columns, but set a card limit for the whole board. Therefore the total number of cards in progress is a constant at all points (assuming the board is not starved).

But what about…

A few questions that keep recurring on the mailing lists

My process has cycles in it!

It’s not just you. Every process has cycles in them. So how do you depict that on the board? Two patterns are popular:

  1. Move the card backwards on the board back to the source point
  2. Block and freeze the card at the current point of the flow

My steps are indistinguishable!

Some teams develop software in a way where some steps, like design and build for example, happen in small cyclic steps that are not separable into separate steps. So, just put it as one step in the flow. There is no need to separate out everything, just keep it the way you develop software.

Can cards skip columns?

Why not? It depends on what works for you.

What if I cannot determine my process beforehand?

Some people say that the process cannot be known a priori and emerges independently in a different way for every feature and therefore a board makes no sense. Scrum teams often have this philosophy. My personal feeling is that this is debatable. The norm for Scrum teams nowadays is to do pre-sprint steps to get stories ‘ready’ for the upcoming sprint and post-sprint steps to actually deploy the release into production. Within the development sprint, many steps are encoded into the Definition of Done, eg: Must have automated system tests, code must be reviewed etc. If every story is going to be code reviewed or automated tested, then it sounds like a fixed process to me. So these could all be steps on the board and made visible.

Doing Distributed Agile?

Share and collaborate with distributed teams with our electronic agile board tools. Get all the benefits of electronic tools without sacrificing the benefits of physical boards. Supports Scrum taskboards, Kanban boards and user story maps. Check it out!

One Response to “Kanban Board Patterns”

  1. 18 steps to make your dream project a reality - George Teiosanu Says:

    […] There are lot of project management frameworks, but I tend to keep it simple. I use small business software such as TeamBox just for myself and my house is filled with Kanban boards. […]

Leave a Reply