82 About Scrum
A Management Framework
Scrum is a management framework for incremental product development using one or more cross-functional, self-organizing teams of about seven people each.
It provides a structure of roles, events, rules, and artifacts. Teams are responsible for creating and adapting their processes within this framework.
Scrum uses fixed-length iterations, called Sprints. Sprints are no more than 30 days long, preferably shorter. Scrum teams try to develop a potentially releasable (properly tested) product increment every Sprint.
An Alternative to Waterfall
Scrum’s incremental, iterative approach trades the traditional phases of “waterfall” development for the ability to develop a subset of high-value features first, incorporating feedback sooner.
Requirements Analysis
Design
Code
Integration
Test
Deploy
Figure 1: Traditional “waterfall” development depends on a perfect understanding of the product requirements at the outset and minimal errors executing each phase.
Figure 2: Scrum blends all development activities into each iteration, adapting to discovered realities at fixed intervals.
The greatest potential benefit of Scrum is for complex work involving knowledge creation and collaboration, such as new product development. Scrum is usually associated with object-oriented software development. Its use has also spread to the development of products such as semiconductors, mortgages, and wheelchairs.
Doing Scrum, or Pretending to Do Scrum?
Scrum’s relentless reality checks expose dysfunctional constraints in individuals, teams, and organizations. Many people claiming to do Scrum modify the parts that require breaking through organizational impediments and end up robbing themselves of most of the benefits.
Scrum Roles
Scrum Development Team
- Cross-functional (e.g., includes members with testing skills, and others not traditionally called developers: business analysts, designers, domain experts, etc.)
- Self-organizing / self-managing, without externally assigned roles
- Plans one Sprint at a time with the Product Owner
- Has autonomy regarding how to develop the increment
- Intensely collaborative
- Most successful when located in one team room, particularly for the first few Sprints
- Most successful with long-term, full-time membership. Scrum moves work to a flexible learning team and avoids moving people or splitting them between teams.
- 6 ± 3 members
- Has a leadership role
Product Owner
- Single person responsible for maximizing the return on investment (ROI) of the development effort
- Responsible for product vision
- Constantly re-prioritizes the Product Backlog, adjusting any long- term expectations such as release plans
- Final arbiter of requirements questions
- Decides whether to release
- Decides whether to continue development
- Considers stakeholder interests
- Has a leadership role
Scrum Master
- Works with the organization to make Scrum possible
- Ensures Scrum is understood and enacted
- Creates an environment conducive to team self-organization
- Shields the team from external interference and distractions to keep it in group flow (a.k.a. the zone)
- Promotes improved engineering practices
- Has no management authority over the team
- Helps resolve impediments
- Has a leadership role