Sunday, October 4, 2015

Kanban for Support Projects

Kanban is a lean agile methodology developed at Toyota Corporation, Japan to facilitate and optimize production process. Kanban uses visual cards/queues to manage tasks. ( Kan = Visual, Ban = Cards/Board). Primary focus of Kanban is to keep delivering 100% completed features to customer in a steady flow.

Kanban Methodology is based on following Lean Principles
  1. Customer Value
  2. Pull Method
  3. Continuous Flow
  4. Waste Elimination
  5. Continuous Improvement  

Three key aspects for Kanban are 
  1. Visualization
  2. Flow and Pull
  3. Work in Progress Limit

Visualization: 

Kanban Board has different columns. Each column represents different steps/queues as shown in the sample Kanban Board below. Individual tasks are represented by visual cards in these different steps.




Building a Board is a team activity. Like any Agile projects, Kanban team meet everyday for a Daily Standup and prioritize the items on Kanban board. In a Daily Standup Meeting, team discusses the roadblocks if they have. The difference in Kanban Standup and Scrum Standup is that Scrum team member discuss the work they have done since last meeting and also the work he/she will be doing on that day. But in Kanban Daily Standup, team does not discuss these two items. Primary focus is on impediments. 

Swimlanes (horizontal rows) are important parts of the visualized system. It is recommended to use Swimlanes to classify different services of work like Critical, 24 Hrs SLA, 48 Hrs SLA etc. In this example the name of the Swimlane represent the actual SLA attached to the tasks. 

The structure of Kanban Board is not fixed and team can structure it as per it's own needs. If team feels that particular step is a waste then team can delete that step to improve efficiency. 


Flow and Pull:

Kanban is about steady flow of tasks from one step to next. In Kanban, instead of Team Lead assigning (pushing) tasks to different team members, individual team members assign tasks for themselves (pull). When a task is completed then it is moved to next column and team member pulls tasks from "Ready for Development" column to "In Progress" column. When "Ready for Development" needs more tasks then team pull tasks from "To Do" Column. In Kanban team should start a new tasks only when old task has been completed and moved to next column.

Work in Progress Limit:

In Kanban there is a Work in Progress (WIP) limit for each column. WIP limit on each column ensures that team is not working over capacity and there is no constant switching of tasks. WIP limit also highlights potential bottlenecks if there are any. Team can decide the WIP limit for each column and it should be an ongoing process. One of the guidelines for setting up WIP limits is to set WIP limit to a column which takes more time and based on WIP limit of this column, team can set up WIP limits of other columns. In the sample Kanban Board above there is a WIP limit 5 for column Ready to Deploy. If this column reaches to it's higher WIP limit then new task should not be pulled to this column unless some of the tasks of this column are moved to next column. Another advantage of this WIP limit is that it eliminates the problem of partially done tasks. 

Issues with current Support System:

In current Support System Team Lead assigns tasks to different team members (Push tasks). Team lead needs to monitor backlog of each team members. Also there is no team collaboration in task allocation as everything is driven by a Team Lead. Many times there is a wait time for a team member for assignment of task from a Team Lead. As there is no upper limit on WIP items, team might be burn down with over capacity work. In this system Bottle necks are not clearly visible. 

How Kanban help to address issues with current Support System?

Kanban works on agile principles where there is a shared responsibility on a team instead of just a Team Lead. Kanban works on Pull model where team member pulls the tasks instead of Team Lead Pushes tasks to them. By this way Team Lead don't need to monitor individual team member backlog. Instead of that he can focus on other more important tasks. As it is the responsibility of a team member to pull the tasks there is no wait time for task assignment. Because of upper limit on WIP items there is no burn down of team members and WIP limit supports continuous flow of tasks. WIP limits on columns and Visual nature of Kanban highlights the Bottlenecks if there are any.

Kanban is a great tool with it's own advantages. But it does not replace existing Support process. Team should implement Kanban Principles on existing Support process. Kanban Principles with it's visual board will help team to streamline existing Support process and highlight the bottlenecks in visual manner.