Recognizing Bottlenecks in Scrum, Part 1

The term “bottleneck” refers to a point after which the flow or velocity perceptively reduces. It is metaphorically derived from the flow of water through arecognizing bottlenecks in scrum agile software development narrow-mouthed bottle where the flow of water is constrained by its neck. For drinking purposes it is a good thing because it regulates the flow of water through the bottle to the drinker, preventing wasteful spillage. Bottlenecks, though constraining, can be both a good thing and a bad thing, depending on desirability from the system.

The Scrum framework contains a product backlog, which is essentially a queue (stack ranked, one after the other) of product backlog items (PBIs) that the Scrum team has to complete. Queues/backlogs don’t feel good. Think about the last time you were in a rush and had to go to a bank where you stood in a queue behind fifteen people before the teller addressed your needs. Or the time you had to stand in queue to board your daily commute bus – uncertain whether you will get a chance to board this bus before the driver declares “it’s full” and rides on. There is the frustration of waiting in a line and the uncertainty of whether you will make it. If PBI’s could feel, then I guess they would empathize with people stuck in queues.

IMO, the inherent assumption within complex software product development efforts is that

the business will always have more concepts or requirements than the team’s capacity to transform these into potentially shippable product increments.

If this assumption holds true for you, then your product backlog expresses the aggregate effect of bottlenecks that exist downstream in your system. In other words, if there were no bottlenecks or a team had infinite capacity then the all the PBIs would be transformed into potentially-shippable product increments within a sprint. The velocity metric represents this constrained capacity of a Scrum team. In Scrum terms, these bottlenecks and other blockers are commonly referred to as impediments. Impediments being a broad generic term, I’m focusing on bottlenecks – which are impediments that specifically cause reduction in flow at a systemic level over multiple sprints. (Nothing too revolutionary!)

In my next post, I’ll give some examples of bottleneck patterns to look out for.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 United States License.