Sometimes I hear people ask whether they should use Scrum or Kanban. It's a confusing question, and a false dichotomy. You can't "do" Kanban the same way you "do" Scrum. People who ask this question probably refer to a choice between using a timebox (iteration), or a WIP limit (Kanban).
However, Scrum and Kanban operate on two different levels.
Kanban (capital K) is an evolutionary method for process improvement (Kanban: Successful Evolutionary Change for Your Technology Business, by David J. Andersson), utilizing a kanban (small k) pull system. Kanban requires some underlying process in place, something you already have, improving it incrementally and continuously (kaizen). Kanban is the "layer on top", visualizing your current approach.
Scrum, on the other hand, is a lightweight framework that helps people, teams and organizations generate value through adaptive solutions for complex problems (2020 Scrum Guide). Scrum replaces your current approach at once (if you're not using Scrum already), disrupting the status quo (kaikaku).
Why does this matter?
In practice this means that you can apply the Kanban method to almost any process/framework, including Waterfall, or indeed, Scrum, to start improving the flow of work, without disrupting the current state of things too much at once.
A brief summary of the Kanban method
- Start where you are (your current framework: Scrum, "ScrumBut", "Water-Scrum-Fall", some custom agile variation, Waterfall etc.)
- Visualize your work (find bottlenecks in the system)
- Limit your work in process ("stop starting, start finishing")
- Manage for flow (Cycle Time, Throughput, Work In Progress)
- Make process policies explicit
- Recognize improvement opportunities.
So next time someone asks "Scrum or Kanban?", perhaps one or more of the following questions can help in finding the underlying need, and paving the way forward:
- Where are you now?
- What do you want to optimise for?
- How change tolerant is your team/organisation?
- What do you want to achieve?
Obviously there's a lot more to this, but that'll be another post :)