Kanban System Design

[article]
Summary:
Karl Scotland explains that viewing kanban as a systemic approach leads to systems thinking. Systems can be thought of as being made up of elements, which interact to meet a purpose. They are more than the sum of the parts, and the system’s purpose is crucial in determining the system’s behavior.

The kanban software development community can be traced back to Agile2007 in Washington DC. At that conference, a number of people were talking about their different approaches to development that they were using. Chris Matts was talking about "real options" and "feature injection," Arlo Belshee was talking about "naked planning," and David Anderson was talking about kanban. All three had some similarities, which inspired a group of people to go away and experiment themselves and share their experiences. The name the group chose to use as an identity was “Kanban.”

Kanban is the Japanese word for visual card, and it can have a number of interpretations with respect to software development. Firstly, it could be used to refer to the index card commonly used by agile teams. Secondly, it could be used to refer to an agile team’s task board, or story board. Finally, it could be used to refer to the whole system within which an agile team works.

In his book Toyota Production System [1], Taiichi Ohno says, “The two pillars of the Toyota production system are just-in-time and automation with a human touch, or autonomation. The tool used to operate the system is kanban.” With this perspective, a kanban system for software development refers to the whole system, and not simply the tool or the board. The community chose to name the systemic approach after the tool that inspired much of the thinking.

Systems Thinking
Viewing kanban as a systemic approach leads to systems thinking. Systems can be thought of as being made up of elements, which interact to meet a purpose. They are more than the sum of the parts, and the system’s purpose is crucial in determining the system’s behavior.

John Seddon, in his Vanguard Method [2], says that the way we think about systems usually defines the system, which then defines performance. In order to improve a system, we should change our mind-set by first understanding the purpose of the system. This allows us to define measures which help create knowledge about whether the system is meeting that purpose. Finally we can design a method to enable the system to meet that purpose.

Kanban is a way of designing a method, and generating metrics, in order to improve capability to meet a purpose. The remainder of this article discusses five aspects of a kanban system: workflow, visualization, work in process, cadence, and learning. These aspects are not practices to be followed, but leverage points that help thinking about the method used to change and improve an organizations delivery capability.

Workflow
Workflow is the understanding of how business or customer value travels through the kanban system.  The agile community recognized that software development is a knowledge creation activity that includes randomness and variation and the “inspect and adapt” mantra is the response that makes the impact visible such that the feedback can be used to learn and respond accordingly. We can take this further by understanding the mathematics and science behind the randomness and variation and exploiting this to our advantage.

 Recognizing the workflow through an activity such as value stream mapping can give us this additional transparency, which we can use to influence our process. Value stream mapping is so called because its focus is on understanding how units of value flow through a system. For software development, this can be generalized into how units of value expand into smaller units of work, which then collapse back to deliver the original value.

Pages

About the author

Karl Scotland's picture Karl Scotland

Certified ScrumMaster, Agile Coach, Kanban Coaching Professional, Accredited Kanban Trainer

Karl Scotland is a versatile software practitioner with over 15 years of experience covering development, project management, team leadership, coaching and training.  For the last 10 years he has been successfully applying Agile methods, and most recently has been a pioneer and advocate of using Kanban Systems for software development.

Currently an Agile Coach with Rally Software in the UK, Karl is a founding member of the Lean Software and Systems Consortium and the Limited WIP Society, and has previously championed Agile and Lean Thinking with the BBC, Yahoo! and EMC Consulting. Karl writes about his latest ideas on his blog at http://availagility.co.uk/

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

Sep 24
Oct 12
Oct 15
Nov 09