Business Object Design and Implementation Workshop

Position Paper


Scrum Development Process

Ken Schwaber (virman@aol.com)

Organization

Advanced Development Methods
Burlington, MA 01803


Date/Place: 16 October 1995/Austin, TX 


Overview

New axioms in systems development are: We attempt, in this paper, to provide the outline for a new approach to development, which takes these axioms into account. This approach is referred to as the Scrum methodology, after the scrum in rugby -- a group responsible for picking up the ball and moving it forward.

Scrum is concerned with the management, enhancement and maintenance of an existing product, while taking advantage of new management techniques and the axioms listed above. Scrum is not concerned with new or re-engineered systems development efforts.

Product releases are planned based on these variables:

The effects of these variables upon development projects are manifest in the ever-changing release timing and content. A successful development methodology must take these variables into account.

The Advantages of the Scrum Methodology

Traditional development methodologies are designed only to respond to the above variables at the start of an enhancement cycle. Such newer approaches as the Boehm spiral methodology and its variants are still limited, if not as rigid, in their ability to respond to changing requirements.

The Scrum methodology, on the other hand, is quite flexible. It provides managed mechanisms for planning a product release and then managing the above variables as the project progresses. This enables organizations to change the project at any point in time in order to provide a release appropriate to the variables.

Object Oriented technology provides the basis for the Scrum methodology. Objects, or product features, offer a discrete and manageable environment. Procedural code, with its many and intertwined interfaces, is inappropriate for the Scrum methodology.

Scrum Components

Components of Scrum Methodology:

Release Project Team

The team that works on the new release includes full time developers and external parties who will be affected by the new release, such as marketing, sales, and customers. In traditional release processes, these three groups are kept away from development teams for fear of over-complicating the process and allowing "unnecessary" interference. The Scrum approach, however, welcomes and facilitates their controlled involvement at set intervals, as this increases the probability that release content and timing will be appropriate, useful, and marketable.

The following teams are formed for each new release:

Management: Led by the Product Manager, it defines initial content and timing of the release, then manages their evolution as the project progresses and variables manifest. Management deals with backlog and issues.

Development teams: Development teams are small, with each containing equal numbers of developers, documenters and quality control staff. Multiple teams of between three and six people may be used. Each is assigned a set of packets (or objects), including all backlog items related to each packet.

The team defines changes required to implement the backlog item in the packets, and manages all problems regarding the changes. Teams can be either functionally derived (assigned those packets that address specific sets of product functionality) or system derived (assigned a specific part of the program for enhancement). The members of each team are selected based on their knowledge and expertise regarding sets of packets.

Scrum Phases

Scrum has three phases: Each of the phases has the following steps:

Planning:

Development:

A sprint is: A pre-defined period, usually two or four weeks (based on product complexity and degree of oversight desired). Sprint speed and intensity are driven by the selected duration of the sprint. Each sprint consists of each team performing the following: Each sprint is followed by a review.

Closure:

When the management team feels that the variables of time, competition, requirements, and quality concur for a new release to occur, they declare the release closed and enter this phase. This phase prepares the developed product for general release.

Release Estimating:

Our observations have led us to conclude that Scrum projects have both velocity and acceleration. In terms of functions delivered, or backlog items completed:

References:

Takeuchi, Hirotaka and Nonaka, Ikujiro. "The New New Product Development Game." Harvard Business Review, January-February, 1986.

Bach, James. "Process Evolution in a Mad World." Borland International, Scotts Valley, CA.

Coplien, James O. "Borland Software Craftmanship: A New Look at Process, Quality and Producitivity." Proceedings of the 5th Annual Borland International Conference, June 5, 1994. Orlando, Florida.

Kahn, Douglas R. and Sutherland, Jeff. "Let's start under-promising and over-delivering on OT." Object Magazine, March-April 1994.



See the SCRUM Home Page for the latest SCRUM developments ...

Business Object Design and Implementation