In today’s Agile world, there are a lot of popular frameworks and practices. While most of them originated from software development, like the initial Agile Manifesto, there is one that is coming straight from the floors of one of the most famous auto makers in history. It’s name is Kanban and it is a framework for managing projects with a lot of uncertainty.
So, what is Kanban?
Kanban originally appeared as a scheduling system, used by Toyota to optimize the production of automobiles during the 1950s. Instead of pushing products on to the market, Kanban helped Toyota to implement a pull system which allowed them to deliver Just In Time (JIT), based on customer demand. It laid the foundation of what eventually became Lean, a philosophy which aimed to create more values for the customers, while minimizing waste activities.
In software development, Kanban appeared in the beginning of the 2000s. Visionary people have started to realize that the same principles of JIT, visualizing capacity and limiting work in progress could be very useful in their software projects as well. Once they understood the principles, they found that they can begin practicing this with little or no overhead, unlike implementing it on a factory floor, where changes would be quite substantial.
The easiest way to start doing Kanban is to set up the most simple and straightforward Kanban board with 3 simple columns: “To Do”, “In Progress”, “Done”. If updated correctly, it will then serve as a real time information radiator, highlighting potential bottlenecks or anything else that might interrupt a smooth workflow. In fact, this is the most important practice in Kanban: “Visualizing the workflow”.
But Kanban isn’t just about visualization. Since it promotes starting with what you have and pursuing evolutionary change, there are some other practices that may improve a team’s Kanban:
- Limit work in progress – ensuring that there is a manageable number of active items at any point in time
- Manage Flow – managing the work process to become as smooth as possible, instead of managing the people. This helps to reduce waste and maximize value
- Making process policies explicit – making the process clearly defined, published and acknowledged by everyone on the team.
- Implement feedback loops – a key element when pursuing evolutionary change
- Improve collaboratively – teams with a shared understanding are more likely to pursue continuous improvement
Unlike other workflow management methods, that force change from the outset, Kanban is about evolution instead of revolution. Maybe this is why it is slowly becoming as popular as its other Agile siblings.
Well, it’s quite obvious that Agile is standing on the shoulders of Lean, with the Lean principles serving as a great source of inspiration for the creators of Agile.
Among the similarities that Lean and Agile share, we may find:
- The obsession for the end result. It must create value for the customer and it is the only goal of the development process
- The focus on the cooperation between the people doing the actual work. In both methodologies, the people doing the actual work are more important than the tools they use.
- The attention to continuous improvement. While in Lean, every process should be continually inspected and improved, in Agile we have regular opportunities for reflection, in order to evaluate potential improvements.
But there are also a couple of differences as well, based on their roots:
- While Agile focuses on optimizing development processes, cherishing creativity, Lean focuses on the optimization of production processes, embracing linearity.
- While in production, variation is seen as negative and expensive, Agile embraces variation and promotes it as a competitive advantage. Teams that absorb variation really well have an advantage compared to teams that don’t respond really well to change.
- While Agile, at its roots, was conceived to optimize the effort of a product team, Lean was conceived to optimize entire systems.
So, although they’re often considered as distinct philosophies, and often treated in an Agile VS Lean manner, the 2 of them are rooted in similar values. Depending on their specific needs, companies may draw inspiration from both Agile and Lean, and create ecosystems that deliver customer value in a sustainable manner.