Functionality should flow like a river.

Functionality should flow like a river.

Kanban, which means signal card in Japanese, has been a staple of lean auto manufacturing for years through its application in the Toyota Production System (and in lean manufacturing environments).  Typical IT processes work by pushing work through steps, with work piling up at bottlenecks. Units of work stuck at bottlenecks are not gathering feedback as quickly as possible, which increases the likelihood that, when a defect is found, it will affect many pieces of work rather than a few. Kanban works by pulling work though the development process, also known as a value chain, so that work-in-process (WIP) is minimized. Kanban is a simple concept, but its application tends to challenge many of our previously held notions of how IT organizations should work.  Kanban fosters the delivery of a flow of individually prioritized work items rather than the delivery of large blocks of functionality all completing at once.  In a Kanban environment the delivered work items are generally grouped into periodic releases, which doesn’t fit the common definition of an IT project.

Alan Shalloway, of Net Objectives, recently suggested that Kanban has evolved into three streams of thought.  They are:

  1. Kanban Method (a branded method championed by David J Anderson)
  2. Kanban as a thought process to be applied with other Agile and Lean processes (championed by Alan Shalloway, Karl Scotland and others)
  3. Kanban as a method to manage workflow (championed by Corey Ladas)

These are all variations on a theme. Merging the core practices from each of these variations yields a broader set core practices for Kanban.  These core practices extend the usefulness of Kanban to most, if not all, IT delivery processes:

  • Work must be visualized. Kanban is nothing if it not a visualization of a work or value flow. The more public the visualization, the better. Visualization helps the team and stakeholders guide the work so that it provides the most value. Visualization also helps control work entry and interruptions.
  • The goal is to manage work so that it continually flows.
  • Each step in the workflow will have a limit to the amount of work that can be in progress (WIP) at any given time. WIP limits reduce multitasking, switching and “inventory.” WIP also reduces waste and increases flow.  The WIP in process limit should not be systematically violated.
  • All policies that guide work (definition of done, work-in-progress limits, work entry process, how work is approved and others) must be explicitly stated.  Explicit rules facilitate discussion and refinement which leads to greater flow and efficiency.
  • Implement feedback loops to ensure transparency and help regulate the process. For example, the team needs to know when work has to wait, so they can either swarm to the bottleneck, regulate work in preceding steps or to refine the process.
  • Kanban provides the information to improve as a team and evolve using models and the scientific method.  Begin slowly by implementing Kanban without process changes until data is gathered.

Below is a basic implementation of a Kanban board based on the core practices:

Kanban helps to visualize the flow of work.

Kanban helps to visualize the flow of work.

In Kanban work is pulled to the next step only when there is capacity for the work in that step to begin. When the work unit is pulled into the next step it will reduce the amount of work the sending step below its work-in-progress limit, allowing it accept another unit of work.  For example, if the analysis step had a work-in-progress limit of 4 units of work and 1 unit was pulled into development, 1 unit could then be pulled into analysis from the backlog. All work items that are in progress should be being worked on at all times rather than waiting in-between steps. When work sits it is considered work-in-progress or inventory (or waste, to use a lean term). Continuously measure the flow of work through each step until it is done. Challenge the team to maximize the flow through the process.  Updating the process to minimize wait states and WIP leads to evolutionary change.

Kanban represents is a significant paradigm shift in how IT works today. It is a shift from a push to a pull method. Using a pull method puts the focus on the improving the flow of work though the development process. Ultimately, it improves efficiency and delivery of business value.