This article is about the process management and improvement method.
For the lean manufacturing process, see
Kanban.
Kanban is a method for managing knowledge work with an emphasis on just-in-time delivery while not overloading the team members. This approach presents all participants with a full view of the process from task definition to delivery to a customer. Team members pull work from a queue.
Kanban in the context of software development can mean a visual process-management system that tells what to produce, when to produce it, and how much to produce - inspired by the Toyota Production System[1] and by Lean manufacturing.[2]
Overview
David Anderson was among the first to formulate the Kanban Method for application to IT and software development in his 2010 book Kanban.[3]
A notable earliest contribution came from Corey Ladas, whose 2009 book Scrumban[4] was the first to suggest that Kanban was a superior alternative to Scrum for software development. Corey's book saw Scrumban as the transition from the starting point of Scrum to the destination of Kanban.
The Kanban Method
Formulated by David Anderson, the Kanban Method is an approach to incremental, evolutionary process and systems change for organizations. It uses a work-in-progress limited pull system as the core mechanism to expose system operation (or process) problems and stimulate collaboration to continuously improve the system. Visualisation is an important aspect of Kanban as it allows to understand the work and the workflow.[5]
The Kanban Method is rooted in four basic principles:
- Start with existing process
- The Kanban method does not prescribe a specific set of roles or process steps. The Kanban method starts with existing roles and processes and stimulates continuous, incremental and evolutionary changes to the system. The Kanban method is a change management method.
- Agree to pursue incremental, evolutionary change
- The organization (or team) must agree that continuous, incremental and evolutionary change is the way to make system improvements and make them stick. Sweeping changes may seem more effective but have a higher failure rate due to resistance and fear in the organization. The Kanban method encourages continuous small incremental and evolutionary changes to your current system.
- Respect the current process, roles, responsibilities and titles
- It is likely that the organization currently has some elements that work acceptably and are worth preserving. The Kanban method seeks to drive out fear in order to facilitate future change. It attempts to eliminate initial fears by agreeing to respect current roles, responsibilities and job titles with the goal of gaining broader support.
- Leadership at all levels
- Acts of leadership at all levels in the organization, from individual contributors to senior management, are encouraged.
Open Kanban
Open Kanban Agile and Lean heritage is reflected in its core values: Respect for people, Courage, Focus on Value, Communication-Collaboration, and a Holistic or Systemic Approach to Change. Those values manifest in four key practices:
- 1. Visualize the workflow.
- You cannot improve what you cannot see. Knowledge work needs a way to show progress. Kanban boards are one of the ways to display progress.
- 2. Lead using a team approach.
- Without a team and leadership, nothing of significant value can be created or improved.
- 3. Reduce the Batch Size of your Efforts or Reduce BASE.
- Science and the work from Donald G. Reinertsen[6] has shown that when the batch unit of work is decreased, more can be accomplished. This principle goes beyond simply Limiting Work in Progress.
- 4. Learn and improve continuously.
- This practice implies reflecting so that one can learn from experience, and it aligns with performing retrospectives and embracing Kaizen. In addition Open Kanban itself is open source and it welcomes contributions or extensions to the method.
Examples
Kanban Software Development Workflow[7] complements the Scrum, XP and Waterfall models.
Workflow ⇒ |
Inbox |
Specification |
Ready for Development |
Development (e.g. using Scrum and XP) |
Code Review |
Test on Local System |
Test on Pre-Production System |
Ready for Deployment |
Deployed |
WIP Limit ⇒ |
5 |
2 |
2 |
3 |
2 |
2 |
2 |
|
|
Feature |
|
In progress |
Done |
|
Planned |
In Progress |
Done |
In progress |
Done |
In progress |
Done |
In progress |
Done |
|
|
Login |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Register |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Password Recovery |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
Billing |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Policies ⇒ |
|
Write acceptance criteria |
Plan developer pairing |
Note cycle start time |
TDD and Refactoring |
Note cycle end time |
Check Policies
|
Tester and Product Owner needed |
Check only code functionality |
|
- Remove Ticket
- Note lead end date
- Review deployment
- Update statistics
- Reprioritize user stories based on new estimates
|
Outside of software development
While developed for software development and software teams, the Kanban method (as distinct from Kanban) has been applied in other areas of knowledge work.[8] As a visualization and control mechanism, any repeatable and consistent workflow can be tracked, regardless of complexity or subject area. Business functions that have applied Kanban include:
- Human Resources[9] and recruitment[10] teams
- Sales and marketing teams[11]
- Organizational strategy and executive leadership teams[12]
- Audit teams
- Sales to Goods delivery process
- Procurements to Goods receipt process
- Contracts to Project execution process
- Accounts receivable & payable processes
See also
References