Kanban - Yash-777/kanboard GitHub Wiki

Kanban Summary:

Kanban is thus a continuous improvement technique that helps achieve Agility in projects. Here are the key features and benefits :

  • Ensure continuous movement of work between stages
  • Reduces idle inventory
  • Shortening Lead Time (time from WIP to done)
  • Delivering business value faster
  • Imbibing culture of Kaizen to achieve greater success rate
  • Enhanced quality of work
  • Faster turnaround of work requests
  • Identification and elimination of bottlenecks
  • Reduced queue time
  • Improved teamwork
  • Reduction of wasted effort

As Edward Demmings says “ A bad system will beat a good person every time”. Kanban can be used to improve the system so that the team delivery with a balanced workflow.

As 2017 State of Scrum report published by Scrum alliance, 43% of Agile Projects are following Kanban. It is used in organizations that manage operations and infrastructure. As a result, there is faster turnaround of work requests, reduced wait time, improved teamwork and optimization of team effort.

Agile vs WaterFall(Drabacks of WaterFall): The drivers for Agile adoption as inferred from the case studies is as follows

  • Quick time to market
  • Respond to changes quickly with quality
  • Develop software amidst requirement volatility

WaterFall model canot be used because of:

  • Results are visible only late in SDLC cycle
  • Cost of rework/changes in the SDLC cycle is very high
  • Requrements need to be fixed in the begning of the Projects

We can conclude that waterfall model cannot address the market needs and hence we need the Agile approach to software development.

In the waterfall model, each software development life cycle(SDLC) phase has a specific deadline and deliverable that flows into the next phase. Hence all requirements are collected, then designed, code written, tested, integrated and deployed at the end.

In Agile, the requirements are broken down into small parts and all the SDLC phases are completed for it. Hence small pieces of working software get released frequently.


Kanban Fundamentals:

Kanban (referred in software engineering space) originated from ‘kanban’, a workflow mechanism adapted in Lean manufacturing and the Toyota Production System. It is a signal (visual card) from a downstream entity (person/team/system) to an upstream entity. It tells the upstream entity two things:

The downstream entity has completed something by consuming an input provided by upstream entity

Therefore, the upstream entity should produce a replacement input for the downstream entity for the production to continue

To make this possible, the following principles are followed.

  • The work is split into multiple stages
  • Minimize idle inventory for lack of warehouse space
  • On demand production (as mentioned above)

These principles were found to be useful in software engineering where the tasks can be akin to the assembly line in a manufacturing domain, smoothly flowing from one workstage to another towards completion. These principles were therefore adopted by the software engineering industry.

Kanban - The manufacturing and software engineering perspective

Let us try to understand the Kanban properties and its relevance in manufacturing and software engineering space.

Property Manufacturing context Software context
Physical Card Card containing information of part to replenished A task to be implemented
Limit Work in Progress Prevents overproduction Precents accumulation of tasks beyond teams capacity
Continuous Flow Prompts the inventory requirement for continious supply continious flow of tasks optimizing teams capacity
Pull 1. Downsteam wokstage pulls form upstream on need basis
2. Defects are never passed on to the next stages
Tasks move across multiple workflow stages based on task completion and available team capacity in each stage. Quality is inbuilt to the process.
Visual Current status and progress is visually represented Crrent status and progress to the tasks is transparent to the team.
Kaizen promotes continuos improvement promotes early and continious feedback

Kanban in software engineering

Kanban in software engineering space is inspired from Kanban in manufacturing space.

The workflow involved in doing a work need to be managed effectively. The work to be done is organized as a queue. A system is in place to gather feedback at different points in the workflow.

While implementing Kanban in software engineering space, the following principles are followed.

  • Start with what you have – the existing process
  • Agree to pursue an evolutionary approach to change and improvement
  • Respect the current roles and responsibilities of the team / organization

Kanban has its application in the following specific area of software engineering. (Details would be provided in the later sections)

  • Application –Maintenance, Support
  • Setting up infrastructure
  • Managing operations
  • Scaled Agile Framework
  • Process that could be adopted while adopting DevOps practices

When would Kanban approach be needed?

  • Tasks are dynamic every day – every hour
  • Difficult to plan in advance as tasks come in an ad-hoc manner
  • Issues need to be addressed on the fly
  • Priorities of the work keep changing
  • Tasks queue up and need to be cleared as quick as possible
  • Release frequently(Periodically)
  • Work needs to be done continuously in periodic intervals (not time boxed)
  • Avoid complexity in planning and estimations

Let us now understand how Kanban approach can be implemented in a project.

Q: Consider a project team considering Kanban as their approach. Their project lead suggests the following reasons.
Choose the option(s) that suggest the applicability of Kanban for the project.
[*]  The team is unable to get a fixed product backlog even for a short duration, tasks come ad-hoc 
[*]  Tasks need to be completed and released at the earliest and not wait for the end of an iteration 
[*]  Teams want to track every single task that arrives and ensure the completion 
[*]  Teams need a smooth workflow of tasks  
[]  Teams need to complete a given set of tasks and released after a fixed iteration period  

An organization, in the process of embracing Kanban, must put into practice the following core practices. This would help them in successful Kanban implementation. 1.Visualize the workflow 2.Limit workin progress 3.Manage flow of work 4.Make the process and policies explicit 5.Implement feedback loops 6.Improve collaboratively

Let us now understand the core practices in detail.


Kanban Boards:

A Kanban board is used for visualizing the workflow. The components of a Kanban board are as given below.

Workflow[WF]– It represents the activities-sequence across different stages, needed for the work completion. Different types of tasks can go through the same workflow even if it takes skipping some intermediate stages. Workstages[WS]– Each stage in the workflow where a certain amount of progress in the overall work to be done is achieved. Work items[WI] – The task to be done flows across each stage referred to as work items under each stage.

Kanban board is a visual representation of the work stream, hence represent tasks and workflow clearly

Backlog -> [WS1]design -> [WS2]code [WIP 5 (In Progress, Review Ready)] -> [WS3]test -> [WS4]quality check -> release/Done

WIP Limits: A workstage in the work flow can be given a number as the ‘WIP Limit’ that indicates the maximum number of work items that can be present in that workstage at any given point of time.

WS1 has WIP limit of 5 – this is inclusive of WS1 In Progress and Ready

However, it may be noted that this WIP limit can be refined and revisited continuously.

A workflow is said to be ‘good’ when it moves steadily and is also predictable. A consistent flow of work is essential to ensure transparent, faster and more reliable delivery thereby bringing greater value to customers, team, and the organization.

The following are the key metrics that can help in measuring the Kanban system so as to improve it.

  • Work In Progress
  • Throughput
  • Queues
  • Blockers
  • Lead Time
  • Cycle Time
  • Cumulative Flow Diagrams

CFD: Workstages: Backlog, Approval, Buffer, Progressing, Final Review, Done

Cycle Time = Work In Progress / Throughput work in progress = (Backlog – Done)

Work In Progress: The total number of work items present under each stage = Design(2) + Code(2) + Test(3) + Quality Check(2) = 9


Understanding Reports in Kanban:

Practical tips As Pearl Zhu says "Selecting the right measures and measuring things right are both art and science."

  1. Process stability can be identified from the CFD chart
  • If the bands in the CFD are in parallel and equally spaced, process is stable
  • if the bands are continuously narrowing it means that the throughput of the stage it represents is higher than the entry rate. Teams can then adjust their capacity in that stage and hence can be relocated to optimize the workflow
  • If the bands are widening, then the work items entering a stage is higher than that leaving it. WIP limits cna be revisited and focus can be there to finish work than starting work.
  • If the band is going down, then there is a mistake in the CFD
  1. Scatter plot for cycle time can be used for the following -
  • Visual view of cycle time for similar work
  • Helps forecast cycle time for future work items

Quick recap A good workflow is predictable and moves steadily and smoothly A good workflow is essential for fast delivery Metrics and bottleneck analysis helps ensure smooth workflow

SWIM Lanes:

When there are different typed work items flowing across a Kanban board, the significance and hence the urgency of work items would also vary. Hence it is mandatory for the team to be able to segregate inflowing work items, prioritize it and handle it accordingly inside the Kanban board.

To facilitate this, the concept of swim lanes are present in Kanban board. Though swim lanes can be customized according to every project’s need, it is generally recommended to have an ‘expedite lane’ or ‘fast track lane’ and a ‘regular’ or ‘normal’ lane. Any high priority items or escalations can be handled in the expedite lane.

When items are taken up in the expedite lane, the work in progress in the regular lane are put on hold, WIP limit is breached if needed and the critical work items are attended to.

![]Critical components - Expedite Lane Diagram

In the above board, there are two lanes in use – Normal lane and Expedite lane. The expedite lane can be used to handle high priority work items.

It may also be noted that the WIP limit of WS1 has been breached since expedite lane items had to be accommodated.


Kanban Fitment

Kanban is applicable in the following scenarios:

  • When incoming work is continuous
  • When responding to changes is required really fast and cannot wait for completion of specific iteration period (for example a sprint in scrum)
  • Dynamic prioritization is required based on task type and nature

Kanban is not applicable in the following scemarios:

  • Task completion requires some research work (unknown requirement) or in cases where task effort cannot be estimated
  • Tasks evolve and scope is not defined
  • Too much dependency between tasks
  • If all the items across workstages need to be collated, then only deployed

Kanban is predominantly found to be used in –

  • Production support projects
  • Ticket based systems
  • IT operations
  • Scaled Agile framework

Practical tips

  • Teams need to look at parameters and nature of project to ensure that Kanban is the right fit

Quick recap

  • Kanban is useful when incoming work is continuous, teams need to respond extremely quickly to changes and tasks are very dynamically prioritized
  • Kanban is not useful when the work is new and when there is lot of dependency between the tasks

Applicability of Kanban: Production Support Projects

Why? : Application development teams follows agile approach and there is demand for L2 and L3 support level processes to follow an agile approach

Nature of project

  • Issues faced in the project: Difficulty in handling uncertainty and severity reported issues while adapting to changed needs
  • Key challenge: Services are ad hoc and event driven, planning early is not possible

Where can Kanban be applied?

  • Customer requests are dynamic - a process is required to ensure tracking and completion of these ad-hoc requests
  • Priorities keep changing constantly – a process is required to consider priorities and fast track if required

How can Kanban help?

  • Provides lightweight process which aids a support activity
    • No time boxed iteration or ceremonies like estimation, review meetings etc
    • lightweight framework to schedule work to be done
  • New items can be added to the “to do” list anytime

Possible Workflow

  1. Customer request received (ex. Via email to a DL)
  2. Convert to a Kanban card
  3. Support team starts to work on it and moves it to “in progress” column in the Kanban board
  4. Once completed it is moved to “testing” and then to “waiting for acceptance from customer” to “done”

A sample Kanban board for a production support system is given below for your reference.

Benefits of using Kanban

  • Better task flow
  • Additional requests can be serviced or pulled in based on WIP synergy of the stages
  • There is no time boxed iteration or size involved
  • The team composition can also be adjusted
  • Ensure that work is moving to completion faster and in a focused manner

Applicability of Kanban: Ticket based Support projects

Why Kanban? : When there is lack of visibility into the tasks (teams may be over working). Also, there is lack of transparency (who is doing what is not transparent)

Nature of the project:

  • Issues faced: Teams overwork to stay on top of the tickets
  • Key issues faced: Response times, feedback of completion may not be tracked

What is needed? : A visual mechanism to track work status and monitor them

How can Kanban help?

  • Provides ability to monitor and measure throughput
  • Results are measurable
  • Helps in visualization of the task flow

Possible Workflow

  1. List the steps for resolving tickets and record them on the Kanban board
  2. Board is setup for visualization and WIP limit is put for how many work items can be taken up on that stage
  3. Prioritization of what tasks to be pulled is setup(Swimlanes for requests that need to be fast tracked or in urgent category can also be setup)

Benefits of using Kanban:

  • Helps achieve improved productivity of teams
  • Helps Streamline process and workflow due to prioritization

Applicability of Kanban: IT Operations

Why Kanban? : Operations teams need to balance out production environment stability with new feature delivery and hence end up taking more work

Nature of project

Issues in project:

  • Teams take more work than their capacity as their time is demanded by all the stakeholders
    • Leads to long lead times for services and products to reach customers
    • Teams are burnt out most of the time due to conflicting priorities
    • Ex. it is important to fix the security certificate issue for a customer than delivering an enhanced feature given by the Dev Team
  • Multitude of requests – enhanced features, fixing production issues, fixing issues that have stringent SLAs, compliance to security and standards etc.

Key issue: How to quantify the capacity available to take up tasks and how to prioritize them and visually see what the status is

How can Kanban help?

  • Helps balancing demand and capacity
  • Work that consumes a lot of time, but not very clearly visible can be tracked and improved
  • Identify the points where wastage is happening and remove them

Possible Workflow:

  1. Make the team’s work visible using the Kanban board
  2. Identify the work categories (project task, maintenance, internal improvement, unplanned troubleshooting etc.)
  3. Identify the states/activities that are needed to complete the work
  4. Prioritize the work
  5. Limit WIP for each of the workstages
  6. Measure and improve
  7. Make risks and bottlenecks visible

Benefits of using Kanban:

  • Provides visibility on what work is pending, how long is it taking, bottlenecks and a realistic idea of the capacity
  • Helps limit WIP and hence taking more work than available capacity
  • Visibility allows all stakeholders to understand the state of tasks and work (radiation of information)

Manage Flow of work in Kanban:

Kanban Best Practices:

Metrics in Kanban:

⚠️ **GitHub.com Fallback** ⚠️