Thursday, July 05, 2007

Origins of Scrum

Scrum derives directly from the Takeuchi and Nonaka paper in the Harvard Business Review, "The New New Product Development Game." The best example in this paper is Honda and their style of product development. I gave this paper to Kent Beck at his request in 1995 when he was putting together eXtreme Programming.

The Scrum daily meeting derives directly from the Borland Quattro Pro paper by Jim Coplien.

Complex adaptive systems theory, particularly as implemented by iRobot using Prof. Rodney Brooks subsumption architecture, was used to implement simple rules to allow an average team to boot up into a hyperproductive state.

All of this occurred in 1993. The great results delivered by Scrum with new products in 1994 and 1995 got Mike Beedle and Ken Schwaber interested in the process. Ken clarified the process for global consumption beginning in 1995 and Mike Beedle led the effort to write the PLoP patterns paper on Scrum pointing out that it is an organizational pattern to allow teams to achieve a hyperproductive state.

The first Scrum team starting in 1993 rapidly achieved a hyperproductive state by implementing all of the engineering practices now known as XP, along with some that are not in XP. In particular, it used strategies for choosing Sprint backlog items that generated the most rapid appearance of new features. This forced not only test first development (and document first as well) but created a strategy similar to Toyota's concurrent engineering.

Few implementations of Scrum achieve the hyperproductive state for which Scrum was designed (5-10 times normal performance). Those that do all implement variations on XP engineering practices and many, like the CMMI Level 5 implementation of Scrum (which has not achieved the hyperproductive state yet) drive the whole implementation from a lean perspective.

Takeuchi and Nonaka are the godfathers of Scrum and gave it the name. Their latest Hitosubashi book clarifies and extends their work in the original Harvard Business Review paper and it useful for those trying to achieve a hyperproductive state. There is a lot of lean in there.

The first Scrum was influenced by concepts from Goldratt's constraint theory and focus on muri, mura, and mudah. Elimination of disruptions in flow was initiated after the first few Sprints to eliminate reset times between Sprints, now accepted as a best practice in Scrum. Mura, or avoidance of stress on an person, system, or process yielded hyperproductive states combined with zero attrition in several of the Scrum companies where I led engineering. This is now known as sustainable pace in Agile development. Finally, Mudah, or radical reduction in waste has always been a primary driver in all the companies where I implemented Scrum. You cannot achieve a hyperproductive state without it.

Jim Coplien has pointed out repeatedly over the years that there are down sides to constraint theory and some XP practices which should be avoided. I've done my best to sidestep the potholes he has pointed out.

Scrum was specifically designed to deal with:

Ziv's law - specifications will never be fully understood.
Humphrey's law - the user will never know what they want until after the system is in production (maybe not even then)
Wegner's lemma - an interactive system can never be fully specified nor can it ever be fully tested. This is the software analogy to Godel's theorem.
Langdon's lemma - software evolves more rapidly as it approaches chaotic regions (taking care not to spill over into chaos)

Thus any association of predictive or defined processes with Scrum is an exercise in futility.

That said, I am entirely in agreement with Ken Schwaber, that all of this should be driven by "inspect and adapt" and building a prioritized impediment list. Working off the impediment list in priority order will streamline flow, reduce stress, and eliminate waste in the correct sequence and failing to do so will, ironically, result in violation of lean principles.

"There is a spectrum of work in which Langdon is at one end and Brooks can be thought of at the other. At Langdon's end, the goal is to create virtual simulations (nothing physical) that exhibit characteristics such as evolutionary change and emergent complexity. Much of this work was done in conjunction with the Santa Fe Institute, and was big a decade ago. Much of the excitement around it has died down. At Brooks' end, roboticists use models from real organisms to organize their structure. Early works in this vein included an artificial cockroach, and it has been a feature of Brooks' MIT research for the last 15 years or so. Although both are biologically inspired, the goals and methods are quite different."
http://hci.stanford.edu/academics/cs378/wiki/Main/ArtificialLife

1 comment:

Venkatesh Krishnamurthy said...

Thanks for sharing the details Jeff. This is wonderful, and thought provoking.