Scrum is a simple management framework for incremental product development using one or more cross-functional, selforganizing teams of about seven people each.
Scrum teams use fixed length iterations, called Sprints, typically two weeks or 30 days long. They attempt to build a potentially shippable (properly tested) product increment every iteration.
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.
Figure 1: Traditional “waterfall” development assumes perfect understanding of requirements at outset.
Figure 2: Scrum blends all development activities into every iteration, adapting to discovered realities at fixed intervals.
Scrum has been used for a variety of products, but has initially been most popular for software products using object-oriented technologies. It is particularly suited to high risk endeavors where traditional efficiency concerns are secondary to the ability to deliver the right product, or any product, by the required date.
The reality checks forced by the short feedback loops are intended to expose dysfunction at the individual, team, and organizational level. Rather than modify Scrum to mask these dysfunctions, organizations are encouraged to challenge these constraints and transform themselves.
Scrum is a framework, not a defined process or methodology. Scrum provides a simple structure of roles, meetings, rules, and artifacts1. 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), but, unlike XP, Scrum does not prescribe specific engineering practices.
The Product Owner is the single individual responsible for return on investment (ROI) of the product development effort. The Product Owner owns the product vision, constantly re-prioritizes the Product Backlog, and revises release plan expectations. The Product Owner is the final arbiter of requirements questions, including which items are considered “done” at the Sprint Review Meeting.
The Team is a self-organizing/-managing group of about seven (give or take two) individuals. While the Team may contain specialists, collectively it is cross-functional, containing the range of skills (including testing) which were traditionally found in different departments. The Team is given autonomy regarding how to achieve the commitments they’re held responsible for between the Sprint Planning and Sprint Review meetings.
A Scrum Development Team is most likely to succeed when members are co-located in a team room.
The ScrumMaster facilitates the Scrum process, keeps the Scrum artifacts visible, facilitates Team self-organization (keeping it in the “zone”), helps resolve impediments (at the team level and organizational level), shields the team from interference, and advocates improved engineering practices2.
The ScrumMaster does these things (and more) without any authority on the Team. The ScrumMaster does not make business decisions or technical decisions, does not commit to work on behalf of the Team, etc.
All Scrum Meetings are facilitated by the ScrumMaster, though he has no decision-making authority at these meetings.
Figure 3: Scrum Meetings
Part 1: At the beginning of each iteration, the Product Owner and Team negotiate which Product Backlog Items the Team will attempt this Sprint. The Product Owner is responsible for declaring which items are the most important to the business, and the Team is responsible for committing to the amount of work they feel they can accomplish without accruing technical debt.
Part 2: The Team decomposes the selected Product Backlog Items into an initial list of Sprint Tasks and makes a final commitment to do the work. The Product Owner’s full attendance is often not necessary during Part 2. The maximum time for planning a 30-day Sprint is 8 hours.
Every day, at the same time and place, the Scrum Development Team members spend 15 minutes reporting to each other. Each team member reports to the rest of the team what he did the previous day, what he will do today, and what impediments he has.
The team will typically examine the current Sprint Task list, Sprint Burndown Chart, and impediments list.
The Product Owner’s attendance is often not necessary at the Daily Scrum and may actually impede team self-organization.
Topics that require additional discussion may be handled as optional sidebars after every team member has reported. It’s a common practice to stand at this meeting to create a sense of urgency, so it’s sometimes called the “standup meeting.”
Reporting to an entire team, rather than to a boss, is one of the new habits Scrum team members learn.
At the end of each Sprint execution, the Team demonstrates the actual working product increment they built to the Product Owner and other stakeholders. The Product Owner declares which committed items will be considered “done” according to the previously negotiated agreement. Incomplete items are returned to the Product Backlog as candidates for future Sprints. Feedback from stakeholders is converted to new Product Backlog Items.
The Sprint Review Meeting is an opportunity to inspect and adapt the product as it emerges and iteratively refine the understanding of the requirements. New products, particularly software products, are hard to visualize in a vacuum. Many customers need to be able to react to a piece of functioning software to discover what they actually want.
At the end of every Sprint, the team meets to reflect on its own process. They inspect their own behavior and take action to adapt it for future Sprints. This meeting provides an inspectand- adapt mechanism for the team’s process.
Techniques ScrumMasters can use to facilitate retrospectives3 include silent writing, timelines, satisfaction histograms, and many others. Common topics include: “What went well?”; “What could be improved?”; “What did we learn?”; “What still puzzles us?”; “What actions will we take?”
As with the Daily Scrum, the team may choose to invite the Product Owner. Candid communication will help the team gain common understanding of multiple perspectives and come up with actions that will take the team to the next level.
The team estimates the effort of items in the Product Backlog so the Product Owner can prioritize them before the next Sprint Planning Meeting. Large, vague items are split and clarified. New stories might be written by a subset of the team, in conjunction with the Product Owner and other stakeholders, before involving the entire team in estimation.
This meeting lacks an official name, thus may also be called “Backlog Maintenance,” “Backlog Grooming,” “Backlog Estimation Meeting,” etc.
Figure 4: Product Backlog
Figure 5: Each PBI represents a customer-centric feature, usually requiring several tasks to achieve definition of done.
Figure 6: Large PBIs (often called “epics”) split into thin vertical feature slices (“stories”), not horizontal implementation phases, when they rise toward the top of the Product Backlog.
Figure 7: The Sprint Backlog is often represented on an “information radiator” such as a physical task board.
Figure 8: The Sprint Backlog may also be represented electronically in a collaboration tool such as ScrumWorks® Pro. This tool’s electronic task board mimics the cards of a physical task board.
Figure 9: Sprint Burndown Chart
Figure 10: A Release Burndown Chart variation popularized by Mike Cohn4. The red line tracks PBIs completed over time (velocity), while the blue line tracks new PBIs added (new scope discovery). The intersection projects release completion date from empirical data5.
Scrum addresses uncertain requirements and technology risks by grouping people from multiple disciplines into one team, ideally in one team room, to maximize communication bandwidth, visibility, and trust.
When requirements are uncertain and technology risks are high, adding too many people makes things worse.
Traditional practices of grouping people by specialty or architectural component can also make things worse. Typical
Figure 11: Communicaton pathways increase geometrically with team size.
problems include messy team interdependencies, late discovery of integration risks (being “90% done 50% of the time”), and poor alignment of effort with business value.
A more successful approach has been fully cross-functional “feature teams,” able to operate at all layers of the architecture, and across components if necessary6.
Figure 12: Cross-functional teams organized around related features
Rather than get all aspects of a component working first, a feature team focuses on thin user-centric slices of functionality that cut through multiple architectural layers or physical components.
Since multiple feature teams risk stepping on each other’s work, it’s wise to get practices of continuous integration (with robust test coverage enforced through a product-wide definition of “done”) established by one feature team before adding other teams.
Multiple teams coordinate with each other in a variety of ways, including sending delegates to each other’s meetings or to central “Scrum of Scrums” meetings. Individuals working on particular components may form informal working groups with their counterparts on other feature teams. They are primarily responsible to their feature teams, however.
Organizations seeking to scale Scrum are advised to pursue training, coaching, and to examine previous case studies.
Scrum is a general management framework coinciding with the agile movement in software development, which is partly inspired by Lean manufacturing approaches such as the Toyota Production System. Scrum has been popularized by people like Ken Schwaber, organizations like the Scrum Alliance, and companies like Danube Technologies, Inc.
Unlike eXtreme Programming (XP), Scrum does not prescribe specific engineering practices.
Scrum focuses on incrementally improving the definition of “done” (particularly around testing) before work is demonstrated. This can motivate the team to adopt engineering practices associated with XP and now proven to reduce technical debt: Continuous Integration (continuous automated testing), Test Driven Development (TDD), constant refactoring, pair programming, frequent check-ins, etc.
Figure 13: The green line represents the general goal of agile methods. Doing Scrum properly entails incrementally improving the definition of “done” to prevent technical debt. 7
Teams applying Scrum rigorously (as intended by this author) may find themselves questioning traditional “best practices.”
The expectation of a working product demonstrated early and often, combined with frequent retrospection, leads teams to challenge assumptions from respected sources such as the Project Management Institute’s Project Management Body of Knowledge (PMBOK®), existing waterfall habits, and more prescriptive processes for iterative development such as IBM’s Rational Unified Process (RUP). Scrum teams may even question agile practices such as eXtreme Programming (XP).
Figure 14: Scrum is intended for the green space labeled as “Chaotic” above. 8 9
The disruption of introducing Scrum is not always advisable when defined processes could meet the needs. Ken Schwaber has said, “If waterfall suits current needs, continue using it.” Consider whether the underlying mechanisms are well understood. Scrum was not originally intended for repeatable types of production and services.
Scrum is intended for the kinds of work defined processes have often failed to manage: uncertain requirements combined with unpredictable technology implementation risks. These conditions usually exist during new product development.
Challenges and Opportunities of Team Self-Organization
This author has seen self-organizing teams radically outperform larger, more experienced, traditionally managed teams. Familysized groups naturally self-organize when they are committed to clear, short-term goals, all members can gauge the group’s progress, and all members can observe each other’s contribution.
Psychologist Bruce Tuckman describes stages of group development as “forming, storming, norming, performing.”10 Optimal self-organization takes time, introducing a reasonable risk the team will perform worse during early iterations than it might have as a traditionally managed working group.
Research suggests heterogeneous teams outperform homogeneous teams when doing complex work, and they experience more conflict11. Disagreements are to be expected on a motivated team -- team performance will be determined by how well the team handles these conflicts.
“Bad apple theory” suggests a single negative individual (“withholding effort from the group, expressing negative affect, or violating important interpersonal norms”12) can disproportionately reduce performance of an entire group. Such individuals are rare, but their impact is magnified by a team’s reluctance to remove them. This can be partly mitigated by giving teams greater influence over who joins them.
Other individuals who underperform in a boss/worker situation (due to being under-challenged or micromanaged) will shine on a Scrum team.
Self-organization is hampered by conditions such as geographic distribution, boss/worker dynamics, part-time team members, and interruptions unrelated to sprint goals. Most teams will benefit from a full-time ScrumMaster, whose responsibilities include helping mitigate these kinds of impediments.
Scrum is mainly an oral tradition conveyed through Certified ScrumMaster (CSM) courses. These are typically two-day events led by trainers who have been vetted by the Scrum Alliance13. The CSM credential does not prove proficiency. It is intended as a stepping stone toward Certified Scrum Practitioner (CSP), an indication of at least one year of experience doing Scrum. The Scrum Alliance also certifies Scrum Product Owners, coaches, and trainers.