The Kanban Café - A Story of Flow
Oct 24, 2024
Imagine a small, bustling café in the heart of a city. The owner, Maria, runs her café with a smooth and steady rhythm. Every day, customers walk in, place orders, and wait as her team of baristas works carefully to prepare drinks and serve delicious pastries. But here’s the magic: despite how busy it gets, the café never seems overwhelmed. There’s no chaotic rush to push out orders, and customers don’t have to wait long. How does Maria do it? She runs her café like Toyota ran its factories in the early days of Lean Manufacturing.
Just like in Maria’s café, in Kanban, work is managed based on the team’s capacity, ensuring that things are done efficiently and without bottlenecks. Let’s explore how.
Capacity vs. Push: A Tale of Two Systems
To understand the magic behind Maria’s café, we must first compare two different approaches: one that’s based on capacity, like Maria’s, and another where work is pushed through the system no matter how ready the team is to handle it.
Imagine another café down the street, owned by Alex. Alex’s café uses a different approach. He pushes new orders to the baristas constantly, without thinking about how many drinks they’re already preparing. The result? Chaos. Baristas are rushing to keep up, drinks are spilling, and customers are growing impatient. Even though Alex’s café serves the same number of customers as Maria’s, things seem far more chaotic because orders keep coming in faster than the team can handle.
In Alex’s café, work is “pushed” onto the baristas, no matter what they already have on their plates. In Kanban, Maria’s café, on the other hand, represents a capacity-based system. Just like Maria checks how many drinks her baristas are currently working on before accepting a new order, Kanban ensures that new tasks are only taken when the team has the capacity to handle them.
The Principles Behind Kanban: Lessons from Toyota
This idea of only working on what you can handle is rooted in the Toyota Production System, pioneered by Taiichi Ohno, where work is “pulled” based on capacity rather than “pushed” without regard to the team’s workload. Toyota revolutionized manufacturing by implementing the concept of flow, making sure that production was smooth and that bottlenecks were avoided. Ohno’s Toyota Production System: Beyond Large-Scale Production emphasizes the importance of visualizing work, limiting work-in-progress (WIP), and continuously improving processes to reduce waste.
Maria’s café follows a similar principle. Orders are only taken when baristas have the capacity to prepare them, ensuring quality and preventing overwhelm. In software development, Kanban adopts this principle by focusing on limiting WIP to what the team can handle, maintaining a flow that avoids bottlenecks, much like Toyota’s factories.
Kanban in Software Development: The Coffee Cup Analogy
Now, let’s bring this back to software development. In Kanban, each task is like a cup of coffee. The team has a limited number of “cups” they can fill at any given time. If they try to fill too many, just like with too many orders at once in the café, the quality suffers, and nothing gets delivered on time.
David J. Anderson, in his book Kanban: Successful Evolutionary Change for Your Technology Business, explains how Kanban is designed to help teams handle tasks at a sustainable pace. Just as Maria keeps an eye on the number of orders before taking a new one, a Kanban board in software development visually limits how much work is in progress. This keeps the team from being overwhelmed and ensures that work flows steadily from start to finish.
Applying the Toyota Way
In addition to Taiichi Ohno’s work, The Toyota Way by Jeffrey Liker offers further insights into how Toyota’s principles of Lean Manufacturing can be applied to software development. Liker outlines 14 management principles that emphasize respect for people, continuous improvement, and the elimination of waste. These principles directly align with Kanban’s focus on improving flow, limiting work-in-progress, and empowering teams to manage their own capacity. Kanban allows software teams to achieve similar levels of productivity and reliability by respecting the natural capacity of their workflow.
A Push-Based Model: The Overflowing Café
In contrast, the push-based model Alex uses is like constantly pouring more and more drinks without checking if the baristas can keep up. In software development, this is often seen when teams are constantly assigned new tasks without regard for their current workload. This leads to delays, mistakes, and an overwhelmed team, much like Alex’s chaotic café.
Key Characteristics of Kanban as a Capacity-Based Model
Visualizing Work
Just like Maria’s café uses a visible board for orders, Kanban teams use boards to track tasks. This transparency helps everyone see where work is in the pipeline. Erich Brechner’s book Agile Project Management with Kanban highlights how visualizing work on Kanban boards leads to better workflow and clarity for the team.
Limiting Work-In-Progress
Maria doesn’t take more orders than her team can handle, and in Kanban, teams limit how many tasks they work on at once to maintain quality and flow. Brechner emphasizes how limiting WIP is critical to maintaining steady progress and avoiding bottlenecks.
Pull-Based System
Instead of pushing tasks onto the team, Kanban allows them to “pull” new tasks only when they have capacity—just like Maria’s baristas only take the next order when they’re ready. This pull-based system, which Anderson discusses extensively, ensures that the team is never overloaded.
Continuous Improvement
Just as Maria adjusts her café’s workflow to improve service, Kanban emphasizes reflecting on the process and making adjustments to improve efficiency. Continuous improvement is a core principle in both Lean Manufacturing and Kanban, which helps teams refine their approach over time.
Conclusion: The Kanban Way
Maria’s café thrives because she respects her team’s capacity, just like Kanban respects a team’s workload. Whether in cafés or software development, pushing too much work too fast creates chaos, delays, and poor quality. Kanban, inspired by the Toyota principles of Lean Manufacturing as outlined by Taiichi Ohno, ensures that work flows at a sustainable pace, allowing teams to focus on delivering the best result without burning out.
In software development, adopting Kanban is like running Maria’s café: it’s all about ensuring that the work gets done in an organized, efficient way without overwhelming the team—one cup of coffee, one task, at a time.
References
- Ohno, Taiichi. Toyota Production System: Beyond Large-Scale Production. Productivity Press, 1988.
- Anderson, David J. Kanban: Successful Evolutionary Change for Your Technology Business. Blue Hole Press, 2010.
- Brechner, Erich. Agile Project Management with Kanban. Microsoft Press, 2015.
- Liker, Jefrey. The Toyota Way, Second Edition: 14 Management Principles from the World’s Greatest Manufacturer, 2021.
Tags: post , kanban , lean , team , flow