Scrum Simplified Part 1: Background, Values, and Roles
Join the DZone community and get the full member experience.Join For Free
Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.
- Simple to understand
- Difficult to master
Scrum is a process framework that has been used to manage complex product development since the early 1990s. It was created by Ken Schwaber and Jeff Sutherland working with others and originally presented at OOPSLA 1995. 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 that fit your organization’s needs. Scrum makes clear the relative efficacy of your product management and development practices so that you can improve.
For more on Scrum best-practices and background, check out our full-length Refcard here.
Scrum is the most popular Agile process framework, with over 70% of all Agile teams using Scrum or a Scrum hybrid.
Scrum is founded on empirical process control theory, or empiricism. Empiricism asserts that knowledge comes from experience and making decisions based on what is known. Scrum employs an iterative, incremental approach to optimize predictability and control risk. Three pillars uphold every implementation of empirical process control: transparency, inspection, and adaptation.
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-business value features first, incorporating user feedback sooner.
Scrum has been used for a variety of work, but has initially been most popular for delivering software based products. Because Scrum employs an empirical approach, a team would incrementally deliver work to mitigate risks and increase understanding.
A Disruptive and Transformative Framework
The reality checks forced by the short feedback loops in Scrum are intended to expose challenges at the individual, team, and organizational level. Rather than modify Scrum to mask these challenges, organizations are encouraged to address these constraints and transform themselves.
Scrum is a framework, not a defined process or methodology. Scrum provides a simple structure of roles, events, artifacts, and rules. Scrum teams are responsible for creating and adapting their processes within this framework. Scrum’s management practices are similar to those of eXtreme Programming (XP)3, but, unlike XP, Scrum does not prescribe specific engineering practices.
When the values of commitment, courage, focus, openness and respect are embodied and lived by the Scrum Team, the Scrum pillars of transparency, inspection, and adaptation come to life and build trust for everyone. The Scrum Team members learn and explore those values as they work with the Scrum events, roles and artifacts. Successful use of Scrum depends on people becoming more proficient in living these five values.
The Product Owner is a leadership role that is responsible for maximizing the value of the product and the work of the Development Team. How this is done may vary widely across organizations, Scrum Teams, and individuals. The Product Owner is the sole person responsible for managing the Product Backlog.
Product Backlog management includes:
- Clearly expressing Product Backlog items;
- Ordering the items in the Product Backlog to best achieve goals and mission;
- Ensuring the value of the work the Development Team performs;
- Ensuring that the Product Backlog is visible, transparent, and clear to all, and shows what the Scrum Team will work on next;
- Ensuring the Development Team understands items in the Product Backlog to the level needed.
The Product Owner may do the above work, or have members of the Development Team do it. However, the Product Owner remains accountable for the value being delivered by the team.
The Development Team
The Development Team consists of professionals who do the work of delivering a potentially releasable Increment of “Done” product at the end of each Sprint. Only members of the Development Team create the Increment. Development Teams are structured and empowered by the organization to organize and manage their own work. The resulting synergy optimizes the Development Team’s overall efficiency and effectiveness.
Development Teams have the following characteristics:
- They are self-organizing. No one (not even the Scrum Master or Product Owner) tells the Development Team how to turn Product Backlog into Increments of potentially releasable functionality;
- Development Teams are cross-functional, with all of the skills as a team necessary to create a product Increment;
- Scrum recognizes no titles for Development Team members other than Developer, regardless of the work being performed by the person; there are no exceptions to this rule;
- Individual Development Team members may have specialized skills and areas of focus, but accountability belongs to the Development Team as a whole;
- Development Teams do not contain sub-teams dedicated to particular domains like testing or business analysis.
Optimal Development Team size is small enough to remain nimble and large enough to complete significant work. Smaller Development Teams may encounter skill constraints during the Sprint, causing the Development Team to be unable to deliver a potentially releasable Increment. Large Development Teams may generate too much complexity for an empirical process to manage.
The Scrum Master is responsible for ensuring Scrum is understood and enacted. Scrum Masters do this by ensuring that the Scrum Team adheres to Scrum theory, practices, and rules. The Scrum Master is a servant-leader for the Scrum Team.
The Scrum Master serves both the Product Owner and the Development Team in several ways, including:
- Teaching the Scrum Team to understand the need for clear and concise Product Backlog items;
- Facilitating Scrum events as requested or needed;
- Coaching the Development Team in self-organization and cross-functionality;
- Teaching and helping the Development Team to create high-value products;
- Removing impediments to the Development Team’s progress.
The Scrum Master helps those outside the Scrum Team understand which of their interactions with the Scrum Team are helpful and which aren’t. The Scrum Master helps everyone change these interactions to maximize the value created by the Scrum Team
To check out part two of this article, see the following link: Scrum Simplified Part 2: Events.
Published at DZone with permission of Michael James. See the original article here.
Opinions expressed by DZone contributors are their own.