The way to solve complex problems is to break it down into smaller pieces, start with what we know or more often, a hypothesis around an assumption we are making, and then assess the outcome to decide what to do next. Agile frameworks and techniques like Scrum, XP, Feature Driven Development, Crystal, etc. are designed to support this. Kanban, while well suited for managing smaller pieces of work moving through a workflow does not have defined feedback loops to assess the outcomes. So there is often a question about whether Kanban is suited to help solve complex problems.
I would like to share three ways in which I believe Kanban helps us solve complex problems.
1. Flexibility in how you implement feedback loops. Kanban is a Strategy – and applied as a strategy, there is nothing precluding us from extending it to suit our context and needs. When using Kanban to solve complex problems, it makes a great pairing with a framework like Scrum that has built-in recurring feedback loops. However, complex work does not often fit nicely into the time-boxed cadence of one, two, or three-week sprints. Kanban offers the flexibility to implement feedback loops that make sense for your context. The flexibility makes possible feedback loops that are work-item-specific or a step in the workflow or book-ending the starting and ending points of a workflow or all of the above.
2. Discipline of focus and transparency. The process of solving complex problems can often be ambiguous and seemingly chaotic – with too many moving parts and a lack of visibility into exactly what is going on. Kanban can bring focus and transparency to the process. Maintaining WIP (Work in Progress) limits helps the team maintain focus on a few things at a time, making it easier to analyze and make better sense of the outcomes. Making explicit what is often implicit by creating a clear Definition of Workflow and visualizing it can help create a shared understanding of the process and state of a work item for both the team and stakeholders.
3. Language to communicate complexity. Our organizations need a new language to communicate the ambiguity and uncertainty that come with complex work. Kanban, with language like expectations (as in SLE – Service level expectation instead of estimates), aging (as in work item aging to inspire action to keep value flowing), and forecasting in terms of probabilities and level of confidence offers us the words to more clearly capture complexity.