What is Kanban Methodology?
Every software developer has heard the word “Kanban”. If we ask you about its meaning, you will probably answer that it is a popular methodology of software development. This is the right definition. However, it does not reflect the full variety of Kanban functionality. In this article we will look at Kanban method in greater detail. We should begin with the description of the history of this popular software development method.
What is Kanban methodology?
Kanban originated in Japan in 1940-s. It was invented by the employees of Toyota Corporation. The famous Japanese motor brand needed to improve the quality of its production and the terms of its delivery at that time. Toyota wanted to win the competitive struggle and to take its place in the world market. The invention of Kanban system helped it achieve this goal. The initial idea was simple. It was aimed at creating a project management system based on three main principles.
The first principle of Kanban methodology is the principle of customer demands consideration. The customer should always get the product he needs. Otherwise he will not buy your production. As the Kanban method originated, this principle was something new for most enterprises. Now it is widely used all over the world.
Visualization of workflow is the second principle of Kanban. Kanban task board was designed especially to implement it. With this simple device you will be able to visualize the workflow while performing any project. The idea is quite simple: the task board includes a number of columns. Each column reflects a certain stage of product creation. The tasks of the enterprise are depicted as sticky notes or cards. They are placed in various columns according to the stage of their performance. As a result – the company’s managers are able to see the progress of their work.
Limitation of WIP is the third principle of Kanban. WIP is the abbreviation for “work in progress”. Unlike other management methodologies Kanban is focused on the production’s quality and timely delivery. It means that for enterprises that use Kanban there is no need to perform lots of tasks at the same time. Moreover, if they limit the amount of WIP, they usually perform their tasks more efficiently.
In modern world there are lots of specific Kanban methodologies. They were designed for different industries; however, all of them are based on the abovementioned principles. Kanban methods may differ significantly from one company to another, but this does not change their main goals. All of them are aimed at improving the manufacturing process.
As we have already mentioned, Kanban is well known among software developers. Software development industry is one of the spheres of its successful implementation. Actually, Kanban is one of the Agile methodologies. The Agile approach to software development originated in early 2000-s when a group of specialists decided to improve the traditional method of programming. In a few years Kanban became one of the popular Agile methodologies. The old Japanese method of management is quite compatible with modern software development industry.
Like other Agile methods, Kanban is based on two main principles: flexibility and strong customer involvement.
The customer participates at any Kanban software project from the very beginning. Usually he is represented by a person named Product Owner. The Product Owner is one of the most important people in the Kanban team. He is responsible for collecting user stories and prioritizing them in the product backlog. These user stories are tasks for the team.
Kanban projects are extremely flexible even compared to other Agile projects. In Kanban the Product Owner can reprioritize the tasks of the project even during its performance. That is because of the fact that Kanban is focused on certain tasks, not on stages of work. Like any other Agile methodology it is iterative. However, its cycles differ from the cycles of other Agile methods. A Kanban cycle is a period required for one task to pass all stages of work.
The use of Kanban methodology in software development is a very good idea. It allows delivering the final product to the customer just in time. Additionally, is improves the quality of the developed software significantly.