Wednesday, January 22, 2003

SCRUM: Removing bottlenecks is a core systems design principle

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
  • Wednesday, January 08, 2003

    SCRUM: Saving the Product While Downsizing 96%


    Mike Cohn has written a very cool article on how he used SCRUM to assure product survival and a company sale with 12 people after laying off 88. SCRUM works best under pressure!

    Cohn, Mike. From the Front Line: The Upside of Downsizing. STQE Magazine 5:1:18-21, Jan/Feb 2003.

    Thursday, January 02, 2003

    SCRUM: Agile database development


    Fowler, Martin and Sadalage, Pramod. Evolutionary Database Design

    Abstract:
    Over the last few years we've developed a number of techniques that allow a database design to evolve as an application develops. This is a very important capability for agile methodologies. The techniques rely on applying continuous integration and automated refactoring to database development, together with a close collaboration between DBAs and application developers. The techniques work in both pre-production and released systems.