
28
Jan 2000
Zimmerman, Brenda; Lindberg, Curt; PlsekEdgeware, Paul. Edgeware: insights from complexity science for health care leaders. VHA Inc., 1998.
The SCRUM development process takes advantage of these basic principles from complexity theory. The book shows how to apply them to healthcare organizations (or any other organization):
Extreme
ProgrammingThe latest thinking in rapid application development involves building testing methods as part of developing every class in the software system, a great augmentation of the SCRUM development process. We were using this at Easel and VMARK back in 1993 in Smalltalk while inventing SCRUM. Kent Beck provides the latest and greatest view of this approach, now christended "Extreme Programming." I am currently using this technique for developing enterprise, federated, heterogeneous, distributed workflow systems in Java using XML messaging in a native Web environment.

Beck,
Kent. Smalltalk
Best Practice Patterns. Prentice Hall, 1996.
SCRUM
Pattern accepted for publicationBeedle, Mike; Devos, Martine; Sharon, Yonat; Schwaber, Ken; Sutherland, Jeff. SCRUM: An extension pattern language for hyperproductive software development. In Harrison, Neil; Foote, Brian; Rohnert, Hans (Eds.) Pattern Languages of Program Design 4. Addison-Wesley Software Patterns Series, 1999 (in press).
Abstract: The patterns of the SCRUM development method are presented as an extension pattern language to the existing organizational pattern languages. In the last few years, the SCRUM development method has rapidly gained recognition as an effective tool to hyper-productive software development. However, when SCRUM patterns are combined with other existing organizational patterns, they lead to highly adaptive, yet well-structured software development organizations. Also, decomposing SCRUM into patterns can guide adoption of only those parts of SCRUM that are applicable to a specific situation.
Goldratt.
Eliyahu M. The
Goal : A Process of Ongoing Improvement. North River Press, 1994."A proposal by Harlan Mills offers a fresh and creative solution. Mills proposes that each segment of a large job be tackled by a team, but that the team be organized like a surgical team rather than a hog-butchering team. That is, instead of each member cutting away on the problem, one does the cutting and the others give him every support that will enhance his effectiveness and productivity." Fred Brooks, 1975.
Brooks,
Frederick P. Jr. The
Mythical Man-Month : Essays on Software Engineering. Addison-Wesley,
1995.
The problem with the surgical team approach is that only the best companies have good surgeons, and even then there are only one or two of them. A major benefit of the SCRUM Development Process is that it empowers the entire team as a collective surgeon. Mere mortals may then achieve superprogrammer performance. The team becomes the virtuoso.
"A characteristic of the cybercorp is that virtuoso employees have to be empowered because their managers cannot understand what they are doing." James Martin. The Great Transition: Using the Seven Disciplines of Enterprise Engineering to Align People, Technology, and Strategy. American Management Association, 1995. ISBN 0-8144-0315-8
The essence of SCRUM is daily meetings where the whole team is focused on the Goal. Bottlenecks are a major priority. They are identified and evaluated daily. Small batch sizes (increments) are the rule, which shortens lead time to market. This is the essence of Goldratt's revolutionary strategy for reengineering manufacturing.
SCRUM is designed for managing a complex adaptive system, i.e. the development process. Check out: Jim Coplien on the Complexity of the Development Process
"Interaction machines, defined by extending Turing machines with input actions (read statements), are shown to be more expressive than computable functions, providing a counterexample to the hypothesis of Church and Turing that the intuitive notion of computation corresponds to formal computability by Turing machines. The negative result that interaction cannot be modeled by algorithms leads to positive principles of interactive modeling by interface constraints that support partial descriptions of interactive systems whose complete behavior is inherently unspecifiable. The unspecifiability of complete behavior for interactive systems is a computational analog of Godel incompleteness for the integers.
"Incompleteness is a key to expressing richer behavior shared by empirical models of physics and the natural sciences. Interaction machines have the behavioral power of empirical systems, providing a precise characterization of empirical computer science. They also provide a precise framework for object-based software engineering and agent-oriented AI models that is more expressive than algorithmic models.
"Fortunately the complete behavior of interaction machines is not needed to harness their behavior for practical purposes. Interface descriptions are the primary mechanism used by software designers and application programmers for partially describing systems for the purpose of designing, controlling, predicting, and understanding them. Interface descriptions are an example of "harness constraints" that constrain interactive systems so their behavior can be harnessed for useful purposes." Peter Wegner, OOPSLA'95 Tutorial
Levy,
Steven [1993] Artificial
Life: A Report from the Frontier Where Computers Meet Biology.
Vintage Books. ISBN: 0679743898.Bach, James. Process Evolution in a Mad World. Software Testing Laboratories, Inc.
Bach, James. The Challenge of "Good Enough" Software, American Programmer, October 1995.
Boehm, B.W. 1985. "A Spiral Model of Software Development and Enhancement," from Proceedings of an International Workshop on Software Process and Software Environments, Coto de Caza, Trabuco Canyon, California, March 27-29, 1985.
Booch, Grady. Object Oriented Analysis and Design with Applications. The Benjamin/Cummings Publishing Company, Inc., 1994, p. 8
Booch, Grady. Object Solutions: Managing the Object-Oriented Project. Addison-Wesley, 1995.
Brynjolfsson, Erik, Amy Austin Renshaw, Marshall van Alstyne. The Matrix of Change: A Tool for Business Process Reengineering. MIT Sloan School of Management, 1996.
Coplien, J. "Borland Software Craftsmanship: A New Look at Process, Quality and Productivity." Proceedings of the 5th Annual Borland International Conference, June 5, 1994. Orlando, Florida.
DeGrace, P. and Hulet Stahl, L. 1990. Wicked Problems, Righteous Solutions. Yourdon Press
Dennett, Daniel. Darwin's Dangerous Idea: Evolution and the Meanings of Life. Simon and Schuster, 1995 (some say this is the best book ever written on evolution - and it all applies to software systems).
Gartner, Lisa. The Rookie Primer. Radcliffe Rugby Football Club, 1996
Gleick, J. 1987. Chaos, Making A New Science. Penguin Books.
Graham, Ian. Migrating to Object Technology. Addison-Wesley, 1994.
Kahn, D. and Sutherland, J. March-April 1994. "Object Insider: Let’s start under-promising and over-delivering on OT." Object Magazine, Mar/Apr 1994.
Langton, Christopher. Artificial Life. In Artificial Life, Volume VI: SFI Studies in the Sciences of Complexity (Ed. C. Langton) Addison-Wesley, 1988.
Levy, Steven. Artificial Life: A Report from the Frontier Where Computers Meet Biology. Vintage Books, 1993.
Nonaka, Ikujiro and Takeuchi, Hirotaka. 1995. The Knowledge Creating Company: How Japanese Companies Create the Dynamics of Innovation. Oxford University Press.
Ogunnaike, B. 1994. Process Dynamics, Modeling, and Control. Oxford University Press.
Pittman, Matthew. Lessons Learned in Managing Object-Oriented Development. IEEE Software, January, 1993, pp. 43-53.
Rumbaugh, October 1995, "What Is a Method". Journal of Object Oriented Programming.
Schwaber, Ken. "Controlled Chaos: Living on the Edge." American Programmer, April 1996.
Takeuchi, Hirotaka and Nonaka, Ikujiro. January-February 1986. "The New New Product Development Game." Harvard Business Review.
Wegner, Peter. Interactive Foundations of Object-Based Programming. IEEE Computer 28:10:70-72, Oct 95.
Wegner, Peter. Models and Paridigms of Interaction. OOPSLA'95 Tutorial Notes.
Ziv, Hadar and Debra J. Richardson. The Uncertainty Principle in Software Engineering. Submitted to ICSE'97, 19th International Conference on Software Engineering. 23 August 1996.
© Jeff Sutherland 1995-2000