What is Kanban in Software Development?originally written by David Peterson
Our summary and key takeaways
Kanban is a way of managing tasks based on Toyota's just-in-time production. Even though Kanban is a lot different from an industrial production system, there is a lot that can be applied to any process.
You could think of a software development process as of a pipeline, which at one end takes in feature requests and at the other delivers working software, with a set of necessary steps in the middle. Whether it's an as-it-happens or a highly organized process, it's there to be followed. In this article, David Peterson takes into consideration three middle process steps: analysis of the requirements, development and testing.
The bottlenecks and their results
There is only so many tasks that can be worked on in any of the process stages. If there is more to do than the team is able to manage, a bottleneck will form, causing the next process step having to wait for the next items to come along. The throughput of the entire pipeline will therefore be determined by the throughput of the slowest bottleneck. The direct consequence of this is a rise of the lead time, causing both the requirements and the work already done to become outdated and possibly delayed and devalued.
How to solve bottlenecks?
Had the manager the knowledge of where in the process a bottleneck is, there would be the opportunity to take action towards resolving it. Whether by re-assigning team members or shuffling the tasks, a bottleneck could be progressed and any delays avoided. The remaining question is: how to pin-point a bottleneck?
Kanban for bottleneck spotting
The main aspect of a Kanban board, separating it from any other visual board, is the limitation on how much work can be progressed at any time. For each stage column, there will be a set number of tasks that can be entered and worked on simultaneously. Shall the limit get exceeded, you'll immediately know that you're over-producing, creating premature work (items that the other stage teams and possibly the client too are not yet ready for). Also you will immediately see a bottleneck forming (by exceeded WIP limits) and will be able to address it right away.
By managing the task distribution and re-deploying work items you can meticulously control the process and the product delivery rates. Kanban is incredibly simple but very effective, when applied with respect to the all-important work in progress limits.