The Kanban Methodology
The term Kanban came to us from Japan. It is used in the Toyota production system, the main principles of which are lean manufacturing, constant development, customer orientation, and the like. The term Kanban has a literal translation: “Kan” means visible, visual, and “ban” means a card or board.
What is Kanban software development, and how does it differ from other flexible methodologies?
First, we need to understand that Kanban is not a concrete process, but a system of values. As, however, and Scrum with XP. This means that no one will tell you what and how to do in steps.
Secondly, the whole of Kanban can be described in one simple phrase – “Reduction of work in progress”.
Third, Kanban is even more “flexible” methodology than Scrum and XP. This means that it will not suit all teams and for all projects. And this also means that the team should be even more ready for flexible work than even the teams using Scrum and XP.
The difference between Kanban and Scrum:
- In Kanban there are no timeboxes for anything (neither for tasks, nor for sprints)
- There are more and more problems in Kanban
- In Kanban, the time frame for the task is optional or there are none
- In Kanban “team speed” is absent and only average time for the full implementation of the task is considered
To work with Kanban, you need to define the stages of the workflow. In Kanban, they are depicted as columns, and the tasks denote special cards. The card moves in stages, like a part in a factory moving from the machine to the machine, and at each stage the percentage of completion becomes higher. At the output, we get the product element ready for delivery to the customer. The board with columns and cards can be both real and electronic – even here Kanban does not impose any restrictions on users.
Your own Kanban system can be as flexible as you wish, because in many ways Kanban is the visualization of the Agile idea. But Kanban has 4 pillars on which the whole system rests:
Cards: For each task an individual card is created, in which all information about the task is entered. Thus, all the necessary information about the task is always at hand.Limit on the number of tasks at the stage: The number of cards at one stage is strictly regulated. Thanks to this, one can immediately see when there is a “congestion” in the flow of operations, which is quickly eliminated.
Continuous flow: Tasks from the backlog fall into the thread in order of priority. Thus, work never stops. Kanban is allowed to leave the unfinished task at one of the stages, if its priority has changed and there are other urgent tasks.
Constant improvement (“kaizen”): The concept of continuous improvement. Its essence lies in the constant analysis of the production process and the search for ways to increase productivity.
What new and useful is this board with limits?
First, the reduction in the number of parallel tasks greatly reduces the execution time of each individual task. There is no need to switch the context between tasks, track different entities, plan them, etc. – only what is needed is done. There is no need to arrange sprints of planning and 5% workshops, because planning has already been done in the “task queue” column, and the detailed development of the task begins ONLY when the task begins to be executed.
Secondly, immediately visible “traffic jams”. For example, if testers do not cope with testing, they will very soon fill up their entire column and programmers who have completed the new task will no longer be able to move it to the testing column because it is full. What to do? It’s time to remember that “we are a team” and solve this problem. For example, programmers can help testers complete one of the testing tasks and only then move the new task to the vacant seat. This will accomplish both tasks faster.
Third, you can calculate the time for the average task. We can mark the date on the card when it got in the queue of tasks, then the date when it was taken into use and the date when it was completed. On these three points for at least 10 tasks, you can already calculate the average waiting time in the queue of tasks and the average time for the task. And from these figures, the manager or product owner can already count on anything he likes.
The whole of Kanban can be described by only three basic rules:
- Visualize production
– Divide the work into tasks, write each task on the card and place it on a wall or a board.
– Use the named columns to show the position of the task in production.
- Limit WIP (work in progress or work performed simultaneously) at each stage of production.
- Measure the cycle time (average time for one task) and optimize the process constantly to reduce this time.
Like Scrum, Kanban is well suited for a fairly cohesive team with good communication. But unlike Scrum, Kanban does not have clear deadlines, which is good for motivated and experienced teams.
With proper configuration and management, Kanban can bring great benefits to the project team. Exact calculation of the load on the team, the correct arrangement of constraints and the concentration on continuous improvement – all this allows Kanban to seriously save resources and put it into the deadlines and budget. And all this combined with flexibility.
Weaknesses of Kanban
You can often hear that for Kanban, unlike Scrum, you can work with almost any team. But it is not so. Kanban is best suited for teams whose skills intersect with each other. Thus, they can help each other overcome difficulties in solving problems. Without this, Kanban will not be as effective as it could be. Also, as already mentioned, Kanban is better suited when there are no hard deadlines. For rigid deadlines, the classic approach or Scrum is better suited.