Kanban as a method has its roots in production and is an important element of both Kaizen and Lean production. Kanban is focused on the pull strategy, with resources allocated based on where and when they are needed to support just-in-time delivery.
Kanban is also an important visualization and task management method used in Agile software development. Let's see how Kanban is applied in this area, and why you should consider using it in your development efforts!
How is Kanban applied in software development, and what are the benefits of using this method?
The principle method of visualization in Kanban is the Kanban board. In a production environment, this is a physical board where tickets for the demand of resources are placed. While chalkboards may be used by software developers, virtual Kanban boards are obviously a better choice for teams that are often geographically dispersed, and work in a virtual environment.
Kanban is a method that greatly supports Agile teams, and therefore Agile project management and ALM tools often provide a Kanban board. This Kanban board may be used to track tasks and their statuses, giving everyone involved a simple overview of how work is progressing against plans.
A general layout of a Kanban board used in software development will list all To Do, In Progress, To Verify, and Completed tasks in separate columns. Work in progress (WIP) limits may be set so that developers are always tasked to capacity, but are not overloaded with tasks. Team mebers willl move cards from one column to the other as their work progresses. Kanban is a simple and efficient method to track the flow of work and to discover bottlenecks in the process of development.
How Kanban delivers benefits in software development
- Easier changes: cardboard column names are representing the different states of the workflow. Visualizing the flow of work is core to understanding how work proceeds, and ensures easier decision on changes.
- Work in progress (WIP) limits: To enhance efficiency, the number of elements in work-in-progress statues should be limited. This helps ensure that new work is “pulled” into production only when necessary – that is, when there is available capacity within the local WIP limit.
- Helps to manage the workflow: The flow of work through each state in the process should be monitored, measured, and reported. Therefore, the Kanban board is also helpful for project managers as it gives them insights into the team's performance, and could also help them discover patterns limiting productivity.
- Supports problem solving and risk management: Due to the explicit understanding of how things work and how work is actually done, it is possible to move to a more rational, objective discussion of issues, problems, and risks. Using this method encourages team members to come up with suggestions for improvement.
- Promotes collaboration and experimentation: Kanban encourages small, continuous, incremental, and evolutionary changes that stick. For example, Kanban can support effectively the daily standup meetings of Scrum, as it gives a quick overview on tasks, statuses, and WIPs for better resource allocation. It helps implement continuous, incremental and evolutionary changes, and increases the motivation and self-governance of teams.