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 . Pre-emptively reducing a WIP limit is equivalent to moving a team through a state of anxiety, where the skills required are greater than the current ability. Retrospectively reducing a WIP limit is equivalent to moving a team through a state of boredom, where the ability becomes greater than the skills required. Both paths are valid and can be used in context.
Czikszentmihalyi’s description of flow is just one model that 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 that 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 that can be applied to an existing way of working to understand it from the perspectives of workflow, visualization, work in process, cadence, and learning.
As a simple example, it is possible to describe the typical agile timebox 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 timebox. 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 that 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 organization that requires lots of safeguards in place due to low skill level, and, over time, move the team toward an “off piste” process when the team or organization is very mature and requires much less safety due to its high skill level.