How do you optimize throughput in any systems process?
Goldratt's book is extremely useful to any techncial expert, whether in software development, or a surgeon in the Operating Room of the Future. It is written as a novel, easy and fun to read, and based on sophisticated mathematical principles.
The book shows that any industrial (or software, or clinical) process is a complex adaptive system. It is not possible to directly optimize the whole system because side effects overwhelm any analysis. The key to optimization is to look for bottlenecks. What is getting in the way? Remove the obvious bottleneck and throughput will increase. Then the next bottleneck with appear. By adopting a strategy of eliminating bottlenecks one by one, the system will evolve into radically improved throughput. This is why the third key question in a SCRUM every day is, "What is blocking progress?" The primary responsibility of management is not managing a SCRUM. It is removing bottlenecks identified by the SCRUM.
Goldratt. Eliyahu M. The Goal : A Process of Ongoing Improvement, 2nd Revised Edition. North River Press, 1992
Certainly the best novel on project management ever written and probably one of the most sophisticated project management books. Based on constraint theory, it's a business school favorite.
You can make many process improvements, but just as in tuning a computing system, one local bottleneck is always controlling throughput. If you miss that bottleneck you are hosed.
Maximizing net profit will maintaining an excellent return on investment and adequate cash flow is the goal of a business, but this doesn't translate well to the programmer in the cube or the union worker on the factory floor. In a typical hospital, there is clearly no one responsible for maximizing throughput as bottlenecks exist everywhere.
Maximizing throughput is easily understood, but focusing on efficiency does not lead to optimizing the business. In fact, you can go out of business by focussing on efficiency, which the story of the book.
Focussing on maximizing (Throughput minus Inventory minus Operating Expense) does optimize the business. It seems to me that Throughput is software SOLD, Inventory is software built but UNSOLD, and Operating Expense is the usual expense budget.
I'm interested in any analysis or experience you may have with this book and the application of its concepts to software development.
Goldratt's home page