Kanban (pronounced “Kahn-Bahn”), is a japanese word meaning “signboard”. The concepts of Kanban originated in manufacturing but has recently become popularized for software development by people like David Anderson.
Kanban is essentially a new process managing a continuous flow of software development requests. Like what you would see when supporting an enterprise application; with bugs being discovered and enhancements being requested constantly. One of the main reasons Kanban has increased in popularity is due to its’ simplicity.
There are three main principles with Kanban:
- Visualize the Workflow
- Limit Work-in-Progress (WIP)
- Measure and Optimize Lead Time
The key behind these principles is visualization. A team utilizing Kanban will create what’s called a card wall (we suggest that your first card wall be physical, but there are software programs that simulate them as well), that is divided into groupings. Some suggested groupings might be:
- Waiting for implementation
- In development
- Ready for deployment
Work items cards are held in a queue, and then as they are implemented, they are moved from one category to the next until they reach completion. As work progresses, different work items are moved along the card wall. The position of the work item triggers a given action. Being able to visualize the flow of work as a whole while accomplishing individual work items, creates an atmosphere of smooth, continuous work flow that is more efficient, more organized, and consequently, more effective.
Teams are able to foresee bottleneck issues and address them as a group when they arrive. By assigning limits to each category, the team can optimize the flow of work items out of queue into WIP and onto ready for deployment.