The bottleneck law has its origin in the Theory of Constraints, created by Dr Eliyahu Goldratt and published in 1984 in his book “The Goal”.
The law says that every system, regardless of how well it works, has at least one constraint (a bottleneck) that limits performance.
The law allows us to deduce the response time and performance limits of a process – essential information for IT services and software development projects.
Focusing improvement efforts on resolving the bottlenecks is the quickest and most effective path to improving profitability.
Bottlenecks can involve people, information, tools, procedures, and may be internal or external to the organization.
A bottleneck is the stage in the process in the form of sub-processes or activities that limit or block the flow. The throughput in the bottleneck is lower than in the rest of the stages. In other words, it is the stage at which the elapsed time for a work unit to pass through the system is largest.
For example, let us have a look at the process of “laundry washing-drying-folding”
The bottleneck is the drying machine because at this stage of the whole process the lead time is largest.
Processes involve different people, activities and tools and each of these has different performance. Therefore, if the activities of a process has to be executed in a sequential manner, for example
Washing-drying-folding
Flight check-in- luggage check – flight boarding
Requirements definition- analysis-design-implementation – testing – delivery
How to resolve a bottleneck?
In the Kanban: Successful Evolutionary Change for your Technology Business book by David Anderson you can find more details about how to resolve a bottleneck depending on whether it is caused by a capacity constrained resource or by insufficient resource availability.
Here I will only summarize the approaches to bottleneck resolution:
- Fully exploit the bottleneck resource: make sure that the resource only does the activities she is specialized in and assign the remaining activities to other resourcesFor example, we have a specialist in software integration and because of his involvement in various projects he becomes a bottleneck. An option will be to let him do only integration tasks and assign other tasks to other team members.
- Increase resource availability – the frequency with which the resource is available even for a shorter time.Example: The integration specialist can dedicate one day a week to each project. A more efficient solution is that he/she dedicates each project half a day twice a week than a full day only once a week.
- Automate part of the activities .
- Increase the resource (elevate the bottleneck) – usually the most expensive solution.Following the example above this is equivalent to hiring another person with the necessary knowledge and experience in software integration.
Related posts
- The Project Management Principles that (Almost) Nobody Teaches
- Little’s law
- The effects of the variation
- Esteban, the “bottleneck” (a real case)
Thank you for reading my blog.
References
- David Anderson, Kanban: Successful Evolutionary Change for your Technology Business
- Eliyahu Goldratt, The Goal
- Theory of Constraints