Kanban 101: The Definition of Kanban System
Software development industry has been evolving rapidly in recent years. Technological progress is the main reason for that. New software development companies originate year after year. They occupy their places in the software market and the users begin to appreciate their production. But what methods do they use? There is no simple answer. Modern software development industry has lots of methodologies. Some of them are quite new. Others have been used for years. But all of them have the same goal – to create high quality software.
In recent years Agile methods of software development have become more popular all over the world. Partially that is due to the fact that they are more flexible than the traditional methods like Waterfall or others. Flexibility is the main principle for all Agile methodologies. Usually they have no strict plan of project’s realization. They use short iterative cycles to perform the work. Strong customer involvement into the process of software development is one more specific feature of all Agile methodologies. Unlike traditional software development methods they were designed especially to meet the needs of the customers and users. If you use Agile methodologies, you have no problems with user, or customer acceptance of your product. This article is dedicated to one of the popular Agile methodologies named Kanban.
As we have already mentioned, Kanban is a popular Agile method of software development. However, it is not enough to provide the full definition of Kanban system. We call it a system, because it combines the features of a software development methodology and a project management tool.
When we want to find the proper definition for some phenomenon, the first thing we should do is to take a look at its history. The Kanban methodology originated in Japan back in 1940-s. Of course there was no software development industry at that time. Kanban was invented as a tool of project management for a famous Japanese corporation Toyota. Its main idea was simple. The project management tool was aimed at delivering the final product to the customer just in time. Later Kanban methodology was applied to many other domains, including software development.
Today the Kanban method is widely used in software development industry. It allows companies to deliver the final product to the customer in time. Just like any other Agile methodology, Kanban is based on the principle of strong customer involvement into the working process. The customer is represented by a person called the Product Owner, who is responsible for the product backlog formulation and prioritization. After the user stories are placed and prioritized in the product backlog, the workflow begins. Kanban workflow is iterative, but it is not subdivided into short segments with independent plans like in Scrum, or other Agile methodologies. Kanban is rather focused on certain tasks, than on independent stages of work. In Kanban projects the customer is always able to control the process. Kanban project management tools allow teams to visualize the workflow, so the team members can always control and analyze it.
Now let’s talk about lean manufacturing, because it is a logical extension of Kanban. The definition of lean manufacturing is quite simple. It is a system of project management aimed at minimizing the ineffective waste of time. Lean manufacturing tries to minimize the waste of time by improving the efficiency of working process. The system originated in Japan as a continuation of the Kanban concept. Just like Kanban, it can be successfully applied to software development.