down the entire system so that steps run no faster than the bottleneck.
3. Make all other steps in the process subservient to the bottleneck's capacity (and thus achieve flow).
Anything running faster than the bottleneck does not make the system run faster and is a form of waste. Once we bring down the speed we have done two things: we have released excess resources from non-bottleneck steps that we can use elsewhere, and we have just found ourselves at step 3 in Lean - the system is "flowing"!
This is the perfect hand-off position to Lean's step 4:
4. Pull work.
Now our system does not do any extra work until it is needed and it is running at the bottleneck's speed. At this point Lean tells us to continue removing waste and ToC tells us to increase the capacity of the bottleneck until it is no longer the bottleneck. ToC is the more specific of the recommendations:
5. Elevate/improve the capacity of the bottleneck until it is no longer the bottleneck (using Agile practices).
So how do we elevate the bottleneck? How do we increase its capacity? You guessed it - this is where the Agile practices come in. We now target the Agile practices to surgically improve the process. We use the resources that were freed up earlier in step 3. We don't have a large collection of practices to adopt. For this to work well we must be aware of each Agile practice and what parts of the organization it addresses and improves.
We have given an overview of both Lean and ToC and proposed a way to use them alongside Agile practices to more effectively target your organization's business goals. This article is meant to pique your curiosity and whet your appetite for Lean and ToC. If we have been successful in doing that, then go read more with our advice in mind.
These references are good starting points to the topics of Lean, ToC, and Agile practices that leverage either/both of these methods.
- Womack, Jones, and Roose, The Machine that Changed the World , Harper Perenial, 1991.
Theory of Constraints 4. Goldratt and Cox, The Goal , 3 rd edition, North River Press, 2004.
- Goldratt, Beyond the Goal: Eliyahu Goldratt Speaks on the Theory of Constraints (Audio), Coach Series, 2005.
- Scheinkopf, Thinking for a Change: Putting TOC Thinking Processes to Use , CRC, 1999.
Agile Software Development
- Poppendieck and Poppendieck, Lean Software Development: An Agile Toolkit for Software Development Managers , Addison Wesley Professional, 2003.
- Poppendieck and Poppendieck, Implementing Lean Software Development: From Concept to Cash , Addison Wesley Professional, 2003.
- Anderson, Agile Management for Software Engineering: Applying Theory of Constraints for Business Results , Prentice Hall PTR, 2003.
About the Authors
Amr Elssamadisy is a Principal Consultant with Valtech, where he helps clients build better software using the latest technologies and, of course, adopting and adapting Agile practices. As a software practitioner, he plays multiple roles on different teams including coach, instructor, developer, architect, tech-lead, Scrum master, and project manager. He is also author of Patterns of Agile Practice Adoption: The Technical Cluster which guides the reader in crafting and implementing an Agile adoption strategy.
John Mufarrige is a Senior Consultant with Valtech, where he holds down odd jobs as Java/J2EE developer, instructor, Agile development mentor, and general troublemaker. His other work-related interests include testing, metrics, and team dynamics. He started his professional career in the mid-nineties as a VB/ASP