Blog‎ > ‎4. Kanban‎ > ‎

Work In Progress Limits

WIP Limits

Work In Progress Limiting (WIP Limit)

A WIP (work in progress) limit is a strategy for preventing bottlenecks in software development. This concept is based on the assumption that Multi-Tasking results in loss of time in context switching.

WIP Limits in Kanban

Work in progress limits are agreed upon by the development team before a project begins and are enforced by the team's facilitator. For example, a team may divide the tasks that must be performed for a feature into design, code, test and deploy.  When a WIP limit for a certain task has been reached, the team stops and works together to clear the bottleneck.  The goal of working in this manner is meant to ensure that the entire team takes ownership of the project and produces high quality code.

Consider the example below

·         The project is of 13 user stories to be implemented (A thru M) by a team of 3 people.

 

Backlog

TODO

Development

Testing

Deployment

Done

 

 

 

Ongoing

Done

Ongoing

Done

 

 

WIP Limit

 

2

3

2

1

 

 

I

G

E

D

C

B

 

A

 

J

H

F

 

 

 

 

 

 

K

 

 

 

 

 

 

 

 

L

 

 

 

 

 

 

 

 

M

 

 

 

 

 

 

 

·         Suppose there are No WIP limits on the implementation, all 13 may be considered by the team with a average of 4+ user stories per person. The concept is that, if there is too much context switching, the 13 user stories might get delayed because the 3 developers may not be able to focus on any of the user stories.

·         Thus now WIP limits are introduced as shown below. A WIP limit of 2 in TODO means that only 2 user stories should be short listed for development. A WIP limit of 3 in development means that there can be only 3 at a time in development cycle.

·         Please notice that D is Done (and therefore there may be a slack with this developer) but still development is not started on G/H. If G/H is taken for development, the backlog for testing will increase and nothing will get completed. Instead the developer who completed D can either share some tasks of E,F or help in testing of C before taking up G/H.