This Focused Performance Weblog is a "business management blog" containing links and commentary related primarily to organizational effectiveness with a "Theory of Constraints" perspective. TOC is noted for its applications in Project Management and Multi-Project Management (Critical Chain) and Operations Management (Drum-Buffer-Rope), as well as in Marketing, Strategic Planning and Change Management (TOC Thinking Processes). If you are on an archive page, current postings are found here.
Wednesday, January 22, 2003
• SCRUM: Removing bottlenecks is a core systems design principle -- Jeff Sutherland, in his January 22 blog entry on agile software development, highlights a book that's near and dear to me and to other advocates of TOC, The Goal: A Process of Ongoing Improvement, in a context that it's factory setting doesn't usually trigger. A nod to Jeff for seeing through the surface of the novel and putting it in terms of his software world...
"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."
It's also interesting to see Jeff think of The Goal as "the best novel on project management and probably one of the most sophisticated project management books," especially since author Eli Goldratt is also responsible for Critical Chain. Jeff's intution is pretty good, though, because the way that the TOC core concepts are applied to a production environment in The Goal is closely related to the management of multi-project environments, in which organizational project performance is geared to scarce, potentially constraining, resource skills.
While on the subject, I've been recently trying to wrap my head around the various flavors of agile software development, and what they describe as "agile Project Management" (which has more of a sound of "task" or "process management" to my ears). There's been an excellent discussion of this in the Newgrange PM discussion list, which starts in the YahooGroups archive here.
I'm coming to the conclusion that a lot of the arguments that the agile community has with traditional approaches to project management are answered in the critical chain approach, with it's respect for inevitable variability in project schedule and cost performance, and the use of buffers to account for not only uncertainty in duration, but in iteration as well. As a matter of fact, I think that the difficulty that they have talking about making specific project level promises could be dealt with if the necessarily agile parts of a project were contained in a larger picture planned (I know that's a dirty word amongst the radical agile), controlled, and managed via critical chain processes.
Jeff concludes his post with...
• 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.
Regarding the latter, consider this a start. Regarding the former, the only bone I would pick with his analysis of T, I, and OE is that assuming there is a cash register at the end of a project (otherwise, why do it?), Work-In-Process Inventory in such an environment would be more closely related to the projects that have commenced, but not finished. On a production floor, too much work in process gets in the way and accumulates in queues, extending lead times. In a project environment, too much work in process -- too many projects -- get in the way of focused attention that the agile folks are so good at, and that critical chain processes both support and require for optimum results, and if forced on the system by pushing too much work into the pipeline, tends to drive multi-tasking and it's resulting expansion of project lead times.
posted by Frank - Permanent Link -
|