Kanban Pull System: A Simple Way to Improve Software Throughput

Kanban
In order to break down the traditional cycle of production, Toyota, a global brand popularly known as the leader in the automotive industry, introduced a new methodology that followed the ‘Just-In-Time’ principle.

This new methodology is termed as Kanban methodology. The methodology enables engineers to create a highly visualized communication network among team members. As a result, deciding the ‘What’, ‘When’ and ‘How’ becomes much easier along with streamlining the manufacturing process and improving the overall productivity.

Before we get into the details, let us begin with the basics first. Like for instance –

What is Kanban and how does it differ from other software development methodologies?

Kanban is a Japanese term meaning ‘Signboard’. Originally coined by Toyota, it was used as a scheduling system to decide what to produce, when to produce, and how much to produce.

Kanban

Figure: Kanban Storage area at Motomachi Plant of Toyota

Based on customer demand and available capacity, Kanban helps to streamline the flow of items by pulling them accordingly. We call this the Pull Mechanism as it allows timely replacement of product backlogs, just like refilling a car tank on noticing the red light on the gas gauge blink while driving.

In Kanban, an individual work is represented as Card. When pulled on a Kanban Board, the Cards serve as a signaling system. It limits the Work in Progress in any phase or lane and hence makes close monitoring easier. It must be noted that you can never pull the Cards on to the Board unless there is an adequate number of resources available.

With Kanban, anyone can pull a task from a previous stage to the next stage. Developers can pull out completed tasks, QA engineers can pull out already built tasks, and Release Managers can pull out tasks after it has been tested.

As a Pull System, it ensures that resources are drawn into the work pipeline only when they are actually required. Hence, it differs from the Push System mechanism that usually has to depend on forecasts and schedules to drive the flow of production. A Push system tends to have a larger inventory compared to the Pull System that minimizes the inventory.

But most important of all, Kanban also helps to improve the production environment in terms of organizational throughput. It increases a team’s overall throughput in the following ways –

  • Limiting the Work in progress (WIP).
  • Easy monitoring of workflows through each phase of the development process.
  • Generating reports and metrics that help to increase an organization’s predictability.
  • Encouraging change in continuous, small, evolutionary, and incremental steps to ensure less impact.
  • Increasing possibility and motivation of team members to develop self-governance capacity.
  • Promoting thorough understanding of how processes work and how tasks are actually managed.
  • Promoting rational and objective discussions on issues and risks faced by the team.

This is done based on certain Kanban mechanisms, which are as follows –

1.   Visualization of Work

A Kanban board lets you take a quick glance at the different work stages from a granular point of view. This makes identification of impediments before they turn into raging fire.

In Kanban, there are three basic phases based on which the work is divided. These are – To Do, Doing and Done. Each phase is graphically represented as columns. This allows a smarter and effective way of visualizing work without the need of manual handoffs like informing stakeholders through emails, phone calls, or messages.

kanban

Figure: The main Kanban Stages

kanban board

Figure: Personal Kanban in White Board

Kanban helps to achieve an organization’s throughput in the following ways –

  • Break down of every stage from start to finish.
  • Defining a smooth execution pipeline by creating a lane or column at each stage.
  • Usage of different color-codes for different work type that will make visualization of the on-going work easier.
  • Creating a centralized work that will keep everyone informed about the status of a work.

On a Kanban board, one can easily move or drag a card (representing Work) from left [the ‘To Do’ Column] to right [the ‘Done’ Column]. With real-time updates, teams can quickly take corrective actions quickly at an early stage.

2.   Limited work-in-progress

In today’s agile world, multi-tasking is believed to be more time-consuming. It makes a development process error-prone, increases timespan of each deliverable and elongates the overall delivery cycle.

kanban

Figure: Limiting WIP of work items

Kanban stresses on limiting the work-in-progress (WIP). New items introduced in a work step must have a capacity and work needs to be completed first in order to create an open capacity. Here, work is not pushed but pulled based on the capacity that is available in each phase.

Kanban emphasizes on breaking the work into smallest units and working on each individually. This enables a quick and steady flow of work.

Kanban helps to streamline the execution process by restricting the WIP limits. A WIP limit acts as a clog in the channel. Work does not flow through the system until the channel is unclogged. In case there is an unnecessary delay in unclogging the system, the team or the resources concerned would be held responsible for cleaning up their plates before pulling up new items from the heap.

A throughput is achieved in the following ways –

  • By maintaining an effective time management system. This is done by limiting the total time taken to complete each work through a uniformed process one at a time, irrespective of whether a project is basic or complicated or whether a team consists of 2 people or 10.
  • Eliminating wastes in terms of cost, resource, unnecessary work, and schedule by following a smooth workflow – the main goal of WIP limits.

3.   Incremental Changes

Improves the current ongoing process through incremental changes. Kanban helps to point out the areas where work tends to pile up.

kanban

Figure: Incremental changes of phases

It introduces the WIP limit at an earlier phase to control the injection of new work and focus instead on quick completion. The improvements are made evident by changing the phases and redefining the WIP limits at each phase. It is because of these small incremental approaches that Kanban is called evolutionary.

In this case, a throughput can be achieved in the following way –

  • Steady improvements that happen with the change of a phase. This leads to less error-prone output and quality maintenance of products until the completion phase.
  1. Flow Enhancement

Often after completing a task, resources fail to understand what they should do next. One of the most probable reasons behind this confusion could be that a bug has been detected from an earlier work.

In that case, the resource is not sure what to do as the work is already completed and he/she has already pulled another one on the board.

Kanban helps to solve this problem by pulling the next highest thing from the backlog.

This can help to reduce the confusion and crisis that can often arise when a resource is unavailable. A work can only be tagged as ‘Completed’ when the final product is being used.

kanban

Figure: Pulling of work

The amount of re-work is reduced and time is saved in the process.

Conclusion

Although the idea of Kanban was a bit challenging at first, it was well received by organizations. Using the above-mentioned mechanisms, Kanban helps to bring resources that are otherwise geographically scattered, under one roof. As a virtual board, it offers a simplified overview of the work in progress and plans to make tracking of tasks and statuses easier.

Another important advantage of Kanban is that it offers a simple and efficient method of tracking the flow of work and discovering bottlenecks in the process of development. So you can see, it is one power packed solution if you are looking forward to improving your organizational throughout.

Source: https://dzone.com/articles/kanban-pull-system-a-simple-way-to-improve-softwar

Sugata Dutta is a Software Engineer, involved in the Customer Solutions and Services at Kovair Software. He is an expert in configuring Kovair ALM solutions to satisfy the business needs of various customers.

Leave a Reply

Your email address will not be published. Required fields are marked *