What does a Japanese industrial engineer from the last century have to do with trends in software development? Much more than it seems. Taiichi Ohno (1912-1990) is considered one of the main theorists of efficient industrial organization; however, apart from the theory, he was also well acquainted with the practice through his expertise in Toyota factories.
His ideas on industrial production, reflected in the book ‘Toyota Production System: Beyond Large-Scale Production’ published in 1988, were keys to the growth of the Japanese company, one of the most reliable, respected and profitable car makers in the world.
A simple system
Contrary to what one might think, the Kanban system devised by Ohno is relatively simple. Its name alone, in Japanese, explains a lot. “Kan” means visible or visual, and “ban”, card or board. We know that boards are basics in Ohno’s factories, but obviously the system is more complex, and we are going to try to explain it through an example.
Imagine a bicycle factory, where we are responsible for the brake pads. We have a stock of 10 pieces that we assemble, and when we have half left we use a board to advise that we will need 10 more brake pads. These will come when we run out of the 5 we had when we put up the notice.
This way, inventory management is just right: there are never pieces occupying space needed for other tasks and production never slows down due to lack of materials. The system adjusts to a lesser or greater number of incoming orders. The key to the method’s success is its ability to adapt to a changing volume of work.
Columns are an essential part of the method
If we consider a whole factory, or also any other type of organization, such as a development team, the Kanban system is organized with a large board divided into columns, usually seven:
-
Objectives: these are set in the long term, with the idea that all team members have them in mind. This is an optional column and is not always present.
-
To Do: this column includes the pending tasks that can be addressed immediately. At the highest point of this column we will place the pending task that has the highest priority, and once we start, we move it on to the following columns.
-
Preparation: this is also optional. Here we include those tasks that need some internal discussion before being tackled. When we are clear, we move on to the next column.
-
In Progress: we place the task in this space until it is finished. If something goes wrong, it goes back to the previous column.
-
Testing: we check that everything is working well. Based on this review, the task moves forward or back on the board.
-
Application: the existence of this column depends on the characteristics of each task. We are talking, for example, about tasks such as installing a new version of an application on a server.
-
Done: when we no longer have to worry about something because we have completed the task.
This is not a closed system that cannot be changed if we want to be sure it will work. For example, priority tasks may appear at the top of any column, and although they were not included in the planning, you have to start working on them immediately. You can even create a specific ‘urgent’ horizontal row, above all columns. Of course, there can only be one task that passes through all columns, in its own special upper lane.
Another way to improve the management procedure is to establish a maximum number of tasks for each of the columns, based on the team of professionals we have. For example, if we are talking about software and we have eight programmers, it would be absurd to have ten tasks in ‘in progress’. Some will have to wait in ‘to do’.
Is Kanban applied to software: better or worse than Scrum?
Since Kanban was used in a Microsoft IT project in 2004, a whole theory has been created about its use in IT production. The debate that compares Kanban to the Scrum method is common. What are the major differences?
Basically, Scrum puts more emphasis on the speed of processes and control by the management team. But that control requires time in meetings, discussions and internal checks. With Kanban the manager’s job is basically to determine the tasks to do and change their priority in terms of events. The entire chain of work is in full view of everyone, and if there are jams, it is clear where they occur. The same organizational principles that improved car production are still very useful in the era of the digital economy.
Want to know more about software development? We show a selection of useful platforms
If you are interested in financial APIs, discover all the ones BBVA has to offer.