One approach to continuous improvement is to reduce WIP limits. When a Kanban System appears to be working smoothly, lowering a WIP limit is analogous to lowering the waterline. It will expose the rocks, and new bottlenecks and constraints will be discovered. As a result teams can work to remove the new bottlenecks and constraints until work is flowing through the system smoothly again.
Another approach to continuous improvement is through retrospectives and other spontaneous change events (sometimes known as kaizen). When teams naturally refine and grow their capability, they often discover that they consistently have free space on their kanban board. This is a sign that they can retrospectively lower their WIP limits as a result of an improvement.
These two approaches can be related to the states described by Mihalyi Czikszentmihalyi in his book “Flow: The Psychology of Optimal Experience” [xi]. Pre-emptively reducing a WIP limit is equivalent to moving a team through a state of anxiety, where the skills required are greater the current ability. Retrospectively reducing a WIP limit is equivalent to moving a team through a state of boredom, where the ability becomes greater that the skills required. Both paths are valid and can be used in context.
Czikszentmihalyi’s description of flow is just one model which can be used to help us understand Kanban Systems in order to learn and improve. Applying different models, such as Theory of Constraints, Queuing Theory and Network Theory can give different perspectives and insights which help us continuously improve
Viewing Kanban Systems from these aspects creates a meta-language to help describe and think about any process. Kanban is not a methodology, but something which can be applied to an existing way of working to understand it from the perspectives of workflow, visualisation, work in process, cadence and learning.
As a simple example, it is possible to describe the typical agile time-box in terms of limiting work in process. Don Reinertsen gave me the analogy of a bucket of water as being a container for work in process. If the bucket is being continuously filled with water, then there are two approaches to avoiding the bucket from overflowing. The first is the equivalent of a time-box. If we know the rate at which the water fills the bucket, then we can set a cadence to empty it before it overflows. The second is the equivalent of setting explicit WIP limits. If we have mechanism to signal when the bucket is nearly full, then we can use that to empty it before it overflows.
These aspects can be used as levers, adjustable in either way, to tune a process. This is a different approach to describing a process in terms of practices which are more like knobs to be dialled up to ten (or eleven). The current configuration of the levers can be used to describe the current location of a team’s process on its journey of continuous improvement, a bit like a trail marker identifies a location on a forest path.
Having a wide range of configurations of processes, using these aspects of a Kanban System, means that we can employ different processes in different contexts, and work to improve those processes as we improve the underlying contexts. Using a ski slope metaphor, we can begin with a “Nursery Slope” process for an immature team or organisation which requires lots of safeguards in place due to low skill level, and over time move the team towards an “Off Piste” process when the team or organisation are very mature and require much less safety due to their high