SCRUM Development Process
SCRUM Development Process
Ken Schwaber
Advanced Development Methods
131 Middlesex Turnpike Burlington. MA 01803
email [email protected] Fax: (617) 272-0555
ABSTRACT. The stated. accepted philosophy for systems development is that the development
process is a well understood approach that can be planned. estimated. and successfully completed.
This has proven incorrect in practice. SCRUM assumes that the systems development process is
an unpredictable. complicated process that can only be roughly described as an overall progression.
SCRUM defines the systems development process as a loose set of activities that combines
known. workable tools and techniques with the best that a development team can devise to build
systems. Since these activities are loose. controls to manage the process and inherent risk are
used. SCRUM is an enhancement of the commonly used iterativel"lncremental object-oriented
development cycle.
KEY WORDS: SCRUM SEI Capability-Maturity-Model Process Empirical
1. Introduction
In this paper we introduce a development process, SCRUM, that treats major portions of systems
development as a controlled black box. We relate this to complexity theory to show why this
approach increases flexibility and produces a system that is responsive to both initial and additional
requirements discovered during the ongoing development.
Numerous approaches to improving the systems development process have been tried. Each has
been touted as providing "significant productivity improvements." All have failed to produce
dramatic improvements: As Grady Booch noted, "We often call this condition the software crisis,
but frankly, a malady that has carried on this long must be called norrnal.,,2
Concepts from industrial process control are applied to the field of systems development in this
paper. Industrial process control dermes processes as either "theoretical" (fully defined) or
"empirical" (black box). When a black box process is treated as a fully defined· process,
unpredictable results occur. A further treatment of this is provided in Appendix 1.
A significant number of systems development processes are not completely defined, but are treated
as though they are. Unpredictability without control results. The SCRUM approach treats these
systems development processes as a controlled black box.
Variants of the SCRUM approach for new product development with high performance small
teams was first observed by Takeuchi and Nonaka3 at Fuji-Xerox, Canon. Honda, NEC, Epson,
Brother, 3M, Xerox, and Hewlett-Packard. A similar approach applied to software development at
Borland was observed by Coplien4 to be the highest productivity C++ development project ever
I Brooks, F.P. "No silver bullet-essence and accidents of software engineering." ~ 20:4: 10-19. April
1987.
2 Object Oriented Analysis and Design with Applications, p. 8, Grady Booch, The Benjamin/Cummings
Publishing Company, Inc., 1994
J Takeuchi, Hirotaka and Nonaka, Ikujiro. January-February 1986. "The New New Product Development Game."
Harvard Business Review.
• Coplien, J. "Borland Software Craftsmanship: A New Look at Process, Quality and Productivity." Proceedings of
the 5th Annual Borland lmemalional Conference, June 5, 1994. Orlando, Florida.
documented. More recently, a refined approach to the SCRUM process has been applied by
Sutherland' to Smalltalk development and Schwaber6 to Delphi development.
The SCRUM approach is used at leading edge software companies with significant success.
Industry analysts believe SCRUM may be appropriate for other software development
organizations to realize the expected benefits from Object Oriented techniques and tools. 7
2. Overview
Our new approach to systems development is based on both defined and black box process
management. We call the approach the SCRUM methodology (see Takeuchi and Nonaka, 1986),
after the SCRUM in rugby -- a tight formation of forwards who bind together in specific positions
when a scrumdown is called. 8
As will be discussed later, SCRUM is an enhancement of the iterative and incremental approach to
deliverinl object-oriented software initially documented by Pittman9 and later expanded upon by
Booch.' It may use the same roles for project staff as outlined by Graham", for example, but it
organizes and manages the team process in a new way.
These variables form the initial plan for a software enhancement project. However, these variables
also change during the project. A successful development methodology must take these variables
and their evolutionary nature into account.
Systems are developed in a highly complicated environment. The complexity is both within the
development environment and the target environment. For example, when the air traffic control
system development was initiated, three-tier client server systems and airline deregulation did not
have to be considered. Yet, these environmental and technical changes occurred during the project
and had to be taken into account within the system being built.
, Sutherland, Jeff. Serum Web Home Page: A Guide to the SCRUM Development Process. Jeff Sutherland's Object
Technology Web Page, 1996 <http://www.tiac.net/users/jsuthlscrum/index.html>
• Schwaber, Ken. "Controlled Chaos: Living on the Edge." American Pro(WIIDmer. April 1996.
7 Aberdeen Group. Upgrading To [Sy Methodology For Enterprise Application Deyelopment. Product Viewpoint