By Ken Schwaber, May, 2009
By Ken Schwaber, May, 2009
INTRODUCTION TO SCRUM
Scrum has been used to develop complex products since the early 1990s. This paper describes how to use Scrum to build products. Scrum is not a process or a technique for building products; rather, it is a framework within which you can employ various processes and techniques. The role ofScrum is to surface the relative efficacy of your development practices so that you can improve upon them while providing a framework within which complex products can be developed.
Scrum, which is grounded in empirical process control theory, employs an iterative, incremental approach to optimize predictability and control risk. Three legs uphold every implementation of empiricalprocess control.
THE FIRST LEG IS TRANSPARENCY
Transparency ensures that aspects of the process that affect the outcome must be visible to those managing the outcomes. Not only must these aspects be transparent, but also what is being seen must be known.That is, when someone inspecting a process believes that something is done; it must be equivalent to their definition of done.
THE SECONDLEG IS INSPECTION
The various aspects of the process must be inspected frequently enough so that unacceptable variances in the process can be detected. The frequency of inspection has to take into consideration that all processes are changed by the act of inspection. A conundrum occurs when the required frequency of inspection exceeds the tolerance to inspection of the process. Fortunately, thisdoesn’t seem to be true of software development. The other factor is the skill and diligence of the people inspecting the work results.
THE THIRD LEG IS ADAPTATION
If the inspector determines from the inspection that one or more aspects of the process are outside acceptable limits, and that the resulting product will be unacceptable, the inspector must adjust the process or the materialbeing processed. The adjustment must be made as quickly as possible to minimize further deviation. There are three points for inspection and adaptation in Scrum. The Daily Scrum meeting is used to inspect progress toward the Sprint goal, and to make adaptations that optimize the value of the next work day. In addition, the Sprint Review and Planning meetings are used to inspect progress towardthe Release Goal and to make adaptations that optimize the value of the next Sprint. Finally, the Sprint Retrospective is used to review the past Sprint and determine what adaptations will make the next Sprint more productive, fulfilling, and enjoyable.
The Scrum framework consists of a set of Scrum Teams and their associated roles: Time-Boxes, Artifacts, and Rules. Scrum Teamsare designed to optimize flexibility and productivity; to this end, they are selforganizing, they are cross-functional, and they work in iterations. Each Scrum Team has three roles: 1) the ScrumMaster, who is responsible for ensuring the process is understood and followed; 2) the Product Owner, who is responsible for maximizing the value of the work that the Scrum Team does; and 3) the Team, whichdoes the work. The Team consists of developers with all the skills to turn the Product Owner’s requirements into a potentially releasable piece of the product by the end of the Sprint. Scrum employs time boxes to create regularity. Elements of Scrum that are timeboxed include the Release Planning Meeting, the Sprint Planning Meeting, the Sprint, the Daily Scrum, the Sprint Review, and the SprintRetrospective. The heart of Scrum is a Sprint, which is an iteration of one month or less that is of consistent length throughout a development effort. All Sprints use the same Scrum framework, and all Sprints deliver an increment of the final product that is potentially releasable. One Sprint starts immediately after the other. Scrum employs four principal artifacts. The Product Backlog is a...