The Kanban method is a new technology used to efficiently manage the software development process. The Kanban method is derived from Toyota’s JIT (just-in-time) system.
Although producing software is a creative activity, which is different from the mass production of cars, the principles of production line management are still the same.
The process of software development can be seen as a section of water pipeline, with characteristic requirements entering from one end, and improved software emerging from the other end.
Inside the pipeline, there are various processes, some are informal temporary processes, and some are very formal phased processes. In this article, we assume a simple phased process:
(1) Analyze requirements
(2) Development code
(3) The software runs normally
The impact of bottlenecks
Bottlenecks in the pipeline restrict the flow of work. The overall throughput of the pipeline is limited to the throughput of the bottleneck.
Take the development pipeline as an example: if testers can only test 5 features per week, and developers and analysts can produce 10 features per week, the throughput of the entire pipeline is only 5 features per week, because the testers played the role of the bottleneck.
If analysts and developers don’t know that testers are the bottleneck, testers’ backlogs will accumulate.
The effect is an increase in lead time. And, just like inventory, jobs in the pipeline hold up the money invested, create a distance from the market, and gradually lose value over time.
In the end, it affects the quality. In order to be able to keep up with the schedule, testers began to cut corners. Finally, the bug was released to the product, which caused problems to users and affected the pipeline capacity in the future.
On the other hand, if we know where the bottleneck is, we can redeploy resources to remove it. For example, analysts can help with testing, and developers start automated testing.
But how do we know where bottlenecks are in a given process? And what happens when bottlenecks move?
Kanban method can dynamically display bottlenecks
Kanban method is unimaginably simple, but it is unimaginably powerful.
The simplest form of the Kanban system consists of a large whiteboard hanging on the wall with many cards or post-it notes placed in columns with a number at the top of each column.
The reason why you can find these bottlenecks is that limiting the number of work in progress (WIP) will show bottlenecks.
The card represents the work item, the column represents the development process, and the card flows from the first step to the last step.
The number at the top of each column is used to limit the maximum number of cards allowed in each column.
The big difference between any other visual Kanban. Limiting WIP quantities at every step of the process prevents overproduction and dynamically presents bottlenecks so that you can find them before they get out of control.
The following whiteboard shows such a situation:
Developers and analysts are being prevented from doing any new work, and this situation will continue until the tester vacates a card slot and pulls the next work item into the test step. At this time, developers and analysts will begin to find ways to help testers reduce the burden.
Note that we have split some columns into two columns, this is to illustrate the items in progress and items which have been completed and are ready to be pulled by downstream processes.
You can also layout the whiteboard in a few different ways. Here is a relatively simple way. The restriction at the top of the column contains the two columns “doing” and “done”.
Once the tester has completed the test of a feature, the card will be removed and a card position will be free in the “Test” column.
Now, the empty positions in the “Test” column can be supplemented with a card in the “Done” column of the development.
At this time, a card position will be free in the “Development” column, and the next card can be pulled in from the “Analysis” column, as do the other columns.
In summary, this paper introduces the basic concept of the Kanban method and its simple application examples.