Jeff Sutherland's Scrum Handbook: January 2010
Jeff Sutherland's Scrum Handbook: January 2010
net/publication/301685699
CITATIONS READS
6 29,649
1 author:
Jeff Sutherland
Institute of Electrical and Electronics Engineers
76 PUBLICATIONS 1,638 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Jeff Sutherland on 28 April 2016.
Scrum Handbook
Everything
you need
to know
to start
a Scrum project
in your
organization
scrum
training
institute
press
This book is dedicated to Nobel Laureate Muhammad Yunus and the
Grameen Bank for originating microenterprise development and the
Accion International President’s Advisory Board, responsible for much of
microenterprise development in the western hemisphere.
The strategy for bootstrapping the poor out of poverty has been
a model for freeing hundreds of thousands of software developers from
developer abuse caused by poor management practices.
Thanks to the reviewers of the text who include among many others:
• Tom Poppendieck
• Henrik Kniberg
• Rowan Bunning
• Clifford Thompson
Jeff Sutherland
Scrum Training Institute
32 Appleton Street
Somerville, MA 02144
[email protected]
Executive Summary
Scrum is an agile method designed to add energy, focus, clarity,
and transparency to project planning and implementation. Today,
Scrum is used in small, mid-sized and large software corporations
all over the world.
Preface 5
1. Scrum at a glance 6
4. Scrum Cases 38
Appendix
2. References
Yours faithfully,
Jeff Sutherland
Chairman, Scrum Training Institute
Co-Creator of Scrum
Boston, USA
July 2010
5
CHAPTER 1
Scrum at a Glance
Scrum is an iterative, incremental framework for projects and
product or application development.
7
Jeff Sutherland’s Scrum Handbook 8
Part I
Scrum Basics
9
This is How Scrum Works
2 The Sprint
A. The Product Owner Scrum structures product development in cycles of work called
Takes the inputs of what the product Sprints, iterations of work which are typically 1–4 weeks in length.
should be and translates them into a The Sprints are of fixed duration and end on a specific date whether
product vision or a Product Backlog. the work has been completed or not; they are never extended.
3 Sprint Planning
At the beginning of each Sprint, the Sprint Planning Meeting takes
place. The Product Owner and Scrum Team (with facilitation from
the ScrumMaster) review the Product Backlog, discuss the goals and
context for the items, and the Scrum Team selects the items from the
Product Backlog to commit to complete by the end of the Sprint,
starting at the top of the Product Backlog.
B. The Team Each item selected from the Product Backlog is designed and then
Develops the product envisioned by the broken down to a set of individual tasks. The list of tasks is recorded
Product Owner. in a document called the Sprint Backlog.
24 hrs
New functionality
is demonstrated at
Sprint Planning Meeting 2 Sprint Backlog end of Sprint
Product
Owner
11
What’s Wrong With
Traditional Software Development?
The traditional way to build software, used by companies big and small,
was a sequential life cycle of which there are many variants (such as the
V-Model). Commonly, it is known as “The Waterfall”.
1. It typically begins with a detailed planning phase, where the end
product is carefully thought through, designed, and documented in great
detail.
2. The tasks necessary to execute the design are determined, and the
work is organized using tools such as Gantt charts and applications such as
Microsoft Project. The team arrives at an estimate of how long the
development will take by adding up detailed estimates of the individual
steps involved.
3. Once stakeholders have thoroughly reviewed the plan and provided
their approvals, the team starts to work.
4. Team members complete their specialized portion of the work, and
then hand it off to others in production-line fashion.
5. Once the work is complete, it is delivered to a testing organization
(some call this Quality Assurance), which completes testing prior to the
product reaching the customer. Throughout the process, strict controls are
placed on deviations from the plan to ensure that what is produced is
actually what was designed.
This approach has strengths and weaknesses. Its great strength is that it is
supremely logical – think before you build, write it all down, follow a plan,
and keep everything as organized as possible. It has just one great
weakness: humans are involved. Hence a lot of problems occur:
• Creativity is inhibited
This approach requires that the good ideas all come at the beginning of the
release cycle, where they can be incorporated into the plan. But as we all
know, good ideas appear throughout the process – in the beginning, the
middle, and sometimes even the day before launch. A process that does
not permit change will stifle this innovation. With the waterfall, a great
idea late in the release cycle is not a gift, it’s a threat.
• No crystal balls
Humans are not able to predict the future. For example, your competition
makes an announcement that was not expected. Unanticipated technical
problems crop up that force a change in direction. Furthermore, people are
particularly bad at planning uncertain things far into the future – guessing
today how you will be spending your week eight months from now is
something of a fantasy. It has been the downfall of many a carefully
constructed Gantt chart.
• Sub-optimized results
A rigid, change-resistant process produces mediocre products. Customers
may get what they first ask for (at least two translation steps removed), but
is it what they really want once they see the product? By gathering all the
requirements up front and having them set in stone, the product is
condemned to be only as good as the initial idea, instead of being the best
once people have learned or discovered new things.
13
CHAPTER 2
Dedicated team
The Team in Scrum is seven plus or minus two
people. For a software product the Team might include
programmers, interface designers, and testers. The
Team develops the product and provides ideas to
the Product Owner about how to make the
product great. In my experience, it is essential
that the Team is 100 percent dedicated to the
work for one product during the Sprint;
multitasking across multiple products or projects
will severely limit performance. Stable Teams are
associated with higher productivity, so changing
team members should also be avoided.
Application groups with many people are
organized into multiple Scrum teams, each
focused on different features for the product, with
close coordination of their efforts. Since one Team
does all the work (planning, analysis, programming,
and test) for a complete customer-centric feature,
15
Scrum teams are also known as feature teams. In very technically
complex programs and products, I’ve seen Teams organized by
architectural layer - such as when product family architectures are
employed. However, integration prior to the end of the Sprint is more
difficult when Teams are so structured.
Commitment is important
Since Scrum makes visible many impediments and threats to the
team’s and Product Owner’s effectiveness, it is important to have an
engaged ScrumMaster working energetically to help resolve those
issues. If not, the team or Product Owner will find it difficult to
succeed. Scrum teams should have a dedicated full-time
ScrumMaster, although a smaller team might have a team member
play this role (carrying a lighter load of regular work when they do
so). Great ScrumMasters can come from any background or
discipline: Engineering, Design, Testing, Product Management,
Project Management, or Quality Management.
The ScrumMaster and the Product Owner cannot be the same
individual; at times, the ScrumMaster may be called upon to push
back on the Product Owner (for example, if they try to introduce new
deliverables in the middle of a Sprint). And unlike a project manager,
the ScrumMaster does not tell people what to do or assign tasks –
they facilitate the process, supporting the team as it organizes and
manages itself. If the ScrumMaster was previously in a position
In addition to the three Scrum roles, there are other contributors to the
success of the product, including managers. While their role changes,
they remain valuable. For example:
• they create a business model that works and provide resources the
team needs
• they support the team by respecting the rules and spirit of Scrum
• they help remove impediments that the team identifies
• they make their expertise and experience available to the team
• they challenge the team to move beyond mediocrity
17
CHAPTER 3
Getting Started
Initiating a Scrum project is not hard, as long as one takes one
step at a time, and makes sure that everyone feels included.
The Product Backlog leads the way ahead for the Scrum Team. It is maintained by the Product Owner.
19
velocity of the team. A realeastic release plan is always based on the
velocity of the team.
The items in the Product Backlog can vary significantly in size or
effort. Larger ones are broken into smaller items during the Product
Backlog Refinement workshop or the Sprint Planning Meeting, and Team Planning
smaller ones may be consolidated.
A key practice in Scrum is that the
team decides how much work they will
Sprint Planning commit to complete, rather than
having it assigned to them by the
At the beginning of each Sprint, the Sprint Planning Meeting takes Product Owner. This makes for a more
place. It is divided into two distinct sub-meetings, the first of which reliable commitment because the team
is called Sprint Planning Part One. is making it based on their own
analysis and planning, rather than
In Sprint Planning Part One, the Product Owner and Team (with having it “made” for them by someone
facilitation from the ScrumMaster) review the high-priority items in else.
the Product Backlog that the Product Owner is interested in
implementing this Sprint. They discuss the goals and context for
these high-priority items on the Product Backlog, providing the Team
with insight into the Product Owner’s thinking. The Product Owner
and Team also review the “Definition of Done” that all items must
meet, such as, “Done means coded to standards, reviewed,
implemented with unit test-driven development (TDD), tested with
100 percent test automation, integrated, and documented.” This
definition of “done” ensures transparency and quality fit for the
purpose of the product and organization.
Part One focuses on understanding what the Product Owner
wants. According to the rules of Scrum, at the end of Part One the
(always busy) Product Owner may leave although they must be
available (for example, by phone) during the next meeting. However,
they are welcome to attend Part Two...
Sprint Planning Part Two focuses on detailed task planning for
how to implement the items that the team decides to take on. The
Team selects the items from the Product Backlog they commit to
complete by the end of the Sprint, starting at the top of the Product
Backlog (in others words, starting with the items that are the highest
priority for the Product Owner) and working down the list in order.
While the Product Owner does not have control over how much
the team commits to, he or she knows that the items the team is
committing to are drawn from the top of the Product Backlog – in
other words, the items that he or she has rated as most important. The
Jeff Sutherland’s Scrum Handbook 20
Example of how the available hours can be estimated.
team has the authority to also select items from further down the list
One Item at a Time
in consultation with the Product Owner; this usually happens when
During task generation and estimation the team and Product Owner realize that something of lower priority
in Sprint Planning it is not necessary – fits easily and appropriately with the high priority items.
nor appropriate – for Team members to
volunteer for all the tasks “they can do
The Sprint Planning Meeting should be timeboxed to four hours
best.” Rather, it is better to only for a four-week Sprint and two hours for a two-week Sprint. In order
volunteer for one task at a time, when to do this, the team must help the Product Owner by estimating the
it is time to pick up a new task and to
size of stores before the Sprint Planning meeting – the team is
consider deliberately choosing tasks
that will involve learning (perhaps by making a serious commitment to complete the work, and this
pair work with a specialist). commitment requires careful thought to be successful. A Team bases
its commitments on its past velocities. If a Team is new, new to the
technology or domain, it may not have reliable, stable velocities until
it has worked together for three or four Sprints. In making its
commitment, the Team factors in any vacations, new organizational
demands, and other items that may reduce its past velocity.
Once the Team capacity available is determined, the Team starts
with the first item on the Product Backlog – in other words, the
Product Owner’s highest priority item – and working together,
”go to where the work is” breaks it down into individual tasks, which are recorded in a
21
document called the Sprint Backlog (see below). As mentioned, the
No Changing Goals
Product Owner must be available during Part Two (such as via the
phone) so that clarifications and decisions regarding alternative There are powerful, positive factors
that arise from the team being
approaches is possible. The team will move sequentially down the
protected from changing goals during
Product Backlog in this way, until it’s used up all its capacity. At the the Sprint:
end of the meeting, the team will have produced a list of tasks with • First, the team gets to work knowing
with absolute certainty that its
estimates (typically in hours or fractions of a day). The list is a
commitments will not change, thus
starting point, but more tasks will emerge as the Team addresses each reinforcing the team’s focus on
Product Backlog item during the Sprint. The Team will work on a ensuring completion.
technical design that will be implemented using Sprint Backlog • Second, it disciplines the Product
Owner into really thinking through the
tasks. The team choses the ordering of Sprint Backlog tasks to items he or she prioritizes on the
maximize the velocity of production and quality of “done” Product Backlog and offers to the team
functionality. for the Sprint.
Scrum encourages multi-skilled workers, rather than only
“working to job title” such as a “tester” only doing testing. In other
words, team members “go to where the work is” and help out as
possible. If there are many testing tasks, then all Team members may
help. This does not imply that everyone is a generalist; no doubt
some people are especially skilled in testing (and so on) but Team
members work together and learn new skills from each other. Pairing
has proven a valuable approach to sharing knowledge.
All that said, there are rare times when a Team member may do a
particular task because it would take far too long or be impossible for
others to learn – perhaps he or she is the only person with any artistic
skill to draw pictures. Other Team members could not draw a “stick
man” if their life depended on it. In this rare case – and if it is not
rare and not getting rarer as the Team learns, there is something
wrong – it may be necessary to ask if the total planned drawing tasks
that must be done by this certain Team member are feasible within
the short Sprint.
One of the pillars of Scrum is that once the Team makes its
commitment, any additions or changes must be deferred until the
next Sprint. This means that if halfway through the Sprint the
Product Owner decides there is a new item he or she would like the
Team to work on, he cannot make the change until the start of the
next Sprint. If an external circumstance appears that significantly
changes priorities, and means the Team would be wasting its time if
it continued working, the Product Owner or the team can terminate
23
the Sprint. The Team stops, and a new Sprint Planning meeting
initiates a new Sprint. The disruption of doing this is usually great;
this serves as a disincentive for the Product Owner or team to resort
to this dramatic decision.
By following these Scrum rules the Product Owner gains two
things. First, he or she has the confidence of knowing the Team has
made a commitment to complete a realistic and clear set of tasks they
have chosen. Over time a Team can become quite skilled at choosing
and delivering on a realistic commitment. Second, the Product
Owner gets to make whatever changes he or she likes to the Product
Backlog before the start of the next Sprint. At that point, additions,
deletions, modifications, and re-prioritizations are all possible and
acceptable. While the Product Owner is not able to make changes to
the selected items under development during the current Sprint, he or
she is only one Sprint’s duration or less away from making any
changes. Gone is the stigma around change – change of direction,
change of requirements, or just plain changing your mind – and it
may be for this reason that Product Owners are usually as
enthusiastic about Scrum as anyone.
Daily Scrum
Once the Sprint has started, the Team engages in another of the key
Scrum practices: The Daily Scrum. This is a short (15 minutes or
less) meeting that happens every workday at an appointed time and
place. Everyone on the Team attends. To keep it brief, it is
recommended that everyone remain standing. It is the Team’s
opportunity to report to each other and inspect each other’s progress
and obstacles. In the Daily Scrum, one by one, each member of the
team reports three (and only three) things to the other members of
the team: (1) What they were able to get done since the last meeting;
(2) what they are planning to finish by the next meeting; and (3) any
blocks or impediments that are in their way. Note that the Daily
Scrum is not a status meeting to report to a manager; it is a time for a
self-organizing Team to share with each other what is going on, to
help it coordinate its work and optimize its likelihood of meeting its
commitments. Someone makes note of the blocks, and the
ScrumMaster is responsible for helping team members resolve them.
There is no discussion during the Daily Scrum, only reporting
60
burndown line
50
New estimate of work remaining
40 current estimate of
work remaining for
the team
30
20
idealized line
10
0
0 1 2 3 4 5 6 7 8 9 10
Days
Sprint Burndown Chart. While the Sprint Burndown chart can be created and displayed using a spreadsheet,
many teams find it is more effective to show it on paper on a wall in their workspace, with updates in pen;
this “low-tech/high-touch” solution is fast, simple, and often more visible than a computer chart.
25
answers to the three questions; if discussion is required it takes place
immediately after the Daily Scrum in a follow-up meeting, although
in Scrum no one is required to attend this. This follow-up meeting is
a common event where the Team adapts to the information they
heard in the Daily Scrum: in other words, another inspect and adapt
cycle. It is generally recommended not to have managers or others in
positions of perceived authority attend the Daily Scrum. This risks
making the Team feel “monitored” – under pressure to report major
progress every day (an unrealistic expectation), and inhibited about How much work remains in the
reporting problems – and it tends to undermine the Team’s self- future?
management, and invite micromanagement. It would be more useful
for a stakeholder to instead reach out to the team following the
meeting, and offer to help with any blocks that are slowing the
Team’s progress.
27
to pick one duration for Sprints (say, two weeks) and not change it. The Sprint Retrospective
A consistent duration helps the Team learn how much it can
A simple way to structure the Sprint
accomplish, which helps in both estimation and longer-term release Retrospective is to draw four columns
planning. It also helps the Team achieve a rhythm for their work; this on a whiteboard, labeled
is often referred to as the “heartbeat” of the team in Scrum. • What went well?
• What could have been better?
• Things to try?
Sprint Review • Issues to escalate?
– and then go around the room, with
After the Sprint ends, there is the Sprint Review, where the team each person adding one or more items
reviews the Sprint with the Product Owner. This is often mislabeled to the lists. As items are repeated,
the “demo” but that does not capture the real intent of this meeting. check marks are added next to them,
so the common items become clear.
A key idea in Scrum is inspect and adapt. To see and learn what is
Then the team looks for underlying
going on and then evolve based on feedback, in repeating cycles. The causes, and agrees on a small number
Sprint Review is an inspect and adapt activity for the product. It is a of changes to try in the upcoming
Sprint, along with a commitment to
time for the Product Owner and key stake-holders to learn what is
review the results at the next Sprint
going on with the product and with the Team (that is, a review of the Retrospective.
Sprint); and for the Team to learn what is going on with the Product A useful practice at the end of the
Owner and the market. Consequently, the most important element of Retrospective is for the team to label
each of the items in each column with
the Review is an in-depth conversation and collaboration between either a “C” if it is caused by Scrum (in
the Team and Product Owner to learn the situation, to get advice, and other words, without Scrum it would
so forth. The review includes a demo of what the Team built during not be happening), or an “E” if it is
exposed by Scrum (in other words, it
the Sprint, but if the focus of the review is a demo rather than
would be happening with or without
conversation, there is an imbalance. Scrum, but Scrum makes it known to
Present at this meeting are the Product Owner, Team members, the team), or a “U” if it’s unrelated to
Scrum (like the weather). The team
and ScrumMaster, plus customers, stakeholders, experts, executives,
may find a lot of C’s on the “What’s
and anyone else interested. The demo portion of the Sprint Review is Working Well” side of the board, and a
not a “presentation” the team gives – there is no slideware. A lot of E’s on the “What Could Work
guideline in Scrum is that as little time as possible should be spent on Better ”; this is good news, even if the
“What Could Work Better” list is a long
preparing for the Sprint Review; Scrum suggests no more than 2 one, because the first step to solving
hours. It is simply a demo of what has been built. Anyone present is underlying issues is making them
free to ask questions and give input. visible, and Scrum is a powerful
catalyst for that.
Sprint Retrospective
The Sprint Review involves inspect and adapt regarding the product.
The Sprint Retrospective, which follows the Review, involves
inspect and adapt regarding the process. This is a practice that some
teams skip which is unacceptable, because self-organization requires
the frequent regular reflection provided by the Retrospective. It’s the
29
main mechanism for taking the visibility that Scrum provides into Is a Release Sprint needed?
areas of potential improvement, and turning it into results. It’s an
Note that the need for a Release Sprint
opportunity for the entire ScrumTeam to discuss what’s working and
is a sign of some weakness; the ideal is
what’s not working, and agree on changes to try. Sometimes the that it is not required. When
ScrumMaster can act as an effective facilitator for the retrospective, necessary, Sprints continue until the
Product Owner decides the product is
but it may be better to find a neutral outsider to facilitate the
almost ready for release, at which
meeting; a good approach is for ScrumMasters to facilitate each point there will be a Release Sprint to
others’ retrospectives, which enables cross-pollination among teams. prepare for launch. If the team has
followed good development practices,
with continuous refactoring and
Updating Release Backlog & Burndown Chart integration, and effective testing
At this point, some items have been finished, some have been added, during each Sprint, there should be
little pre-release stabilization or other
some have new estimates, and some have been dropped from the wrap-up work required.
release goal. The Product Owner is responsible for ensuring that
these changes are reflected in the Release Backlog (and more
broadly, the Product Backlog). In addition, Scrum includes a Release
Burndown chart that shows progress towards the release date. It is
analogous to the Sprint Burndown chart, but is at the higher level of
items (requirements) rather than fine-grained tasks. Since a new
Product Owner is unlikely to know why or how to create this chart,
this is another opportunity for a ScrumMaster to help the Product
Owner.
Release Sprint
The perfection vision of Scrum is that the product is potentially
shippable at the end of each Sprint, which implies there is no wrap
up work required, such as testing or documentation. Rather, the
31
Product Owner will do release planning, refining the estimates, Don’t impose Scrum on the Team
priorities, and content as they learn.
Something to be wary of is managers
Some releases are date-driven; for example: “We will release imposing Scrum on their teams; Scrum
version 2.0 of our project at a trade-show on November 10.” In this is about giving a team space and tools
to manage themselves, and having this
situation, the team will complete as many Sprints (and build as many
dictated from above is not a recipe for
features) as is possible in the time available. Other products require success.
certain features to be built before they can be called complete and the A better approach might begin with a
product will not launch until these requirements are satisfied, team learning about Scrum from a peer
or manager, getting comprehensively
however long that takes. Since Scrum emphasizes producing educated in professional training, and
potentially shippable code each Sprint, the Product Owner may then making a decision as a team to
choose to start doing interim releases, to allow the customer to reap follow the practices faithfully for a
defined period; at the end of that
the benefits of completed work sooner.
period, the team will evaluate its
Since they cannot possibly know everything up front, the focus is experience, and decide whether to
on creating and refining a plan to give the release broad direction, continue.
The good news is that while the first
and clarify how tradeoff decisions will be made (scope versus
Sprint is usually very challenging to the
schedule, for example). Think of this as the roadmap guiding you team, the benefits of Scrum tend to be
towards your final destination; which exact roads you take and the visible by the end of it, leading many
decisions you make during the journey may be determined en route. new Scrum teams to exclaim: “Scrum
is hard, but it sure is a whole lot
Most Product Owners choose one release approach. For example, better than what we were doing
they will decide a release date, and will work with the team to before!”
estimate the Release Backlog items that can be completed by that
date. In situations where a “fixed price / fixed date / fixed
deliverable” commitment is required – for example, contract
development – one or more of those parameters must have a built-in
buffer to allow for uncertainty and change; in this respect, Scrum is
no different from other approaches. The advantage of Scrum is that
new requirements can easily be added into the release at sprint
boundaries as long as low prority requirements scheduled later can
”Scrum is hard, but it sure is a
be removed and still keep the project on time and on budget. whole lot better than what we
were doing before!”
Application or Product Focus
For applications or products – either for the market or for internal
use within an organization – Scrum moves groups away from the
older project-centric model toward a continuous application/product
development model. There is no longer a project with a beginning,
middle, and end. And hence no traditional project manager. Rather,
there is simply a stable Product Owner and a long-lived self-
managing Team that collaborate in an “endless” series of two- or
Common Challenges
Scrum is not only a concrete set of practices – rather, and more
importantly, it is a framework that provides visibility to the Team,
and a mechanism that allows them to “inspect and adapt”
accordingly. Scrum works by making visible the dysfunction and
impediments that are impacting the Product Owner and the Team’s
effectiveness, so that they can be addressed. For example, the
Product Owner may not really know the market, the features, or how
to estimate their relative business value. Or the Team may be
unskilled in effort estimation or development work.
The Scrum framework will quickly reveal these weaknesses.
Scrum does not solve the problems of development; it makes them
painfully visible, and provides a framework for people to explore
ways to resolve problems in short cycles and with small
improvement experiments.
33
Suppose the team fails to deliver what they committed to in the first
Sprint due to poor task analysis and estimation skill. To the team, this
feels like failure. But in reality, this experience is the necessary first
step toward becoming more realistic and thoughtful about their
commitments. This pattern – of Scrum helping make visible
dysfunction, enabling the team to do something about it – is the basic
mechanism that produces the most significant benefits that teams
using Scrum experience.
Another common mistake is to assume that a practice is
discouraged or prohibited just because Scrum does not specifically
require it. For example, Scrum does not require the Product Owner to
set a long-term strategy for his or her product; nor does it require
engineers to seek advice from more experienced engineers about
complex technical problems. Scrum leaves it to the individuals
involved to make the right decision; and in most cases, both of these
practices (along with many others) are well advised.
U.S., European, or Japanese companies often outsource in Dubai, or development may occur in Germany and
software development to Eastern Europe, Russia, or the quality assurance in India. Typically, cross-cultural
Far East. Typically, remote teams operate independently communication problems are compounded by differences
and communication problems limit productivity. While in work style in the primary organization vs. the
there is a large amount of published research on project outsourced group. In the worst case, outsourced teams
management, distributed development, and outsourcing are not using Scrum and their productivity is typical of
strategies as isolated domains, there are few detailed waterfall projects further delayed by cross-continent
studies of best project management practices on large communications lag time.
systems that are both distributed and outsourced.
Best practice recommended by the Scrum Alliance is a
Distributed Team Models Distributed Scrum of Scrums model. This model partitions
Here we consider three distributed Scrum models work across cross-functional, isolated Scrum teams while
commonly observed in practice: eliminating most dependencies between teams. Scrum
teams are linked by a Scrum-of-Scrums where
• Isolated Scrums - Teams are isolated across ScrumMasters (team leaders/project managers) meet
geographies. In most cases off-shore teams are not cross- regularly across locations. This encourages
functional and may not be using the Scrum process. communication, cooperation, and cross-fertilization and
• Distributed Scrum of Scrums – Scrum teams are isolated is appropriate for newcomers to Agile development.
across geographies and integrated by a Scrum of Scrums
that meets regularly across geographies. An Integrated Scrums model has all teams fully
• Totally Integrated Scrums – Scrum teams are cross- distributed and each team has members at multiple
functional with members distributed across geographies. locations. While this appears to create communication
In the SirsiDynix case (see chapter 5), the Scrum of and coordination burdens, the daily Scrum meetings help
Scrums was localized with all ScrumMasters in Utah. to break down cultural barriers and disparities in work
styles. On large enterprise implementations, it can
Most outsourced development efforts use a degenerative organize the project into a single whole with an
form of the Isolated Scrums model where outsourced integrated global code base. Proper implementation of
teams are not cross-functional and not Agile. this approach provides location transparency and
Requirements may be created in the U.S. and developed performance characteristics similar to small co-located
Strategies for distributed Scrum teams (adapted from Takeuchi and Nonaka).
35
Jeff Sutherland’s Scrum Handbook 36
Part II
Scrum At Work
37
CHAPTER 4
Scrum cases
This chapter serves as a retrospective on the origins of Scrum, its
evolution in different companies, and a few key learnings along
the way. It will provide a reference point for further investigation
and implementation of Scrum.
All-at-Once model
All-at-Once models of software development assume that the
creation of software is done by simultaneously working on
requirements, analysis, design, coding, and testing and then
delivering the entire system all at once. The simplest All-at-Once
model is a single super-programmer creating and delivering an
application from beginning to end. All aspects of the development
process reside in a single person’s head. This is the fastest way to
deliver a product that has good internal architectural consistency, and
it is the hacker’s mode of implementation. The next level of
approach to All-at-Once development is handcuffing two
programmers together, as in the XP practice of pair programming.
39
Software Evolution and Punctuated Equilibrium
Our daily meetings at Easel were disciplined in a way that we now
understand as the Scrum pattern. The most interesting effect of
Scrum on Easel's development environment was an observed
"punctuated equilibrium effect." A fully integrated component
design environment leads to rapid evolution of a software system
with emergent, adaptive properties, resembling the process of
punctuated equilibrium observed in biological species.
By having every member of the team see every day what every
other team member was doing, we began to see how we could
accelerate each other's work. For instance, one developer
commented that if he changed a few lines in code, he could eliminate
days of work for another developer. This effect was so dramatic that
the project accelerated to the point where it had to be slowed down.
This hyperproductive state was seen in several subsequent Scrums,
but never went so dramatic as the one at Easel.
41
releases of one of the products – in a single quarter. It was the fact
that Scrum eliminated several hours a day of senior management
meeting time starting the day that Scrum began, within a week of my
arrival at the company.
Because Individual had just gone public at the beginning of the
Internet explosion, there were multiple competing priorities and
constant revision of market strategy. As a result, the development
team was constantly changing priorities and unable to deliver
product. The management team was meeting daily to determine
status of priorities that were viewed differently by every manager.
These meetings were eliminated and the Scrum meetings became the
focus for all decision making.
It was incredibly productive to force all decisions to occur in the
daily Scrum meeting. If anyone wanted to know the status of specific
project deliverables or wanted to influence any priority, he or she
could only do it in the daily Scrum meeting. I remember the senior
VP of marketing sat in on every meeting for a couple of weeks
sharing her desperate concern about meeting Internet deliverables
and timetables. The effect on the team was not to immediately
respond to her despair. Over a period of two weeks, the team self-
organized around a plan to meet her priorities with achievable
technical delivery dates. When she agreed to the plan, she no longer
had to attend any Scrum meetings. The Scrum reported status on the
Web with green lights, yellow lights, and red lights for all pieces of
functionality. In this way, the entire company knew status in real
time, all the time. This transparency of information has become a key
characteristic of Scrum.”
43
company. He was the 21st employee, and the development team
grew from a dozen people to 45 people in six months.
45
CHAPTER 5
It may seem improbable, but during the most productive Java project
ever documented, the 56 developers from SirsiDynix and StarSoft
Development Laboratories had an ocean and half a continent
between them. Working from Provo in Utah, Waterloo in Canada
and St. Petersburg in Russia, the distributed team delivered 671,688
lines of production Java code during 2005. In total, the Java
application consisted of over 1,000,000 lines of code. This proves
that a large, distributed, outsourced team actually can achieve a
hyperproductive state – in this case 15.3 function points per
developer & month.
Best practices for distributed Scrum seen on this project consisted
of:
1. daily Scrum team meetings of all developers from multiple
sites
2. daily meetings of the Product Owner team
3. hourly automated builds from one central repository
4. no distinction between developers at different sites on the
same team
5. seamless integration of XP practices like pair programming
with Scrum
The companies
SirsiDynix has approximately 4,000 library and consortia clients,
serving over 200 million people through over 20,000 library outlets
in the Americas, Europe, Africa, the Middle East and Asia-Pacific.
Jack Blount, President and CEO of Dynix and now CTO of the
merged SirsiDynix company, negotiated an outsource agreement
with StarSoft who staffed the project with over 20 qualified
engineers in 60 days. Significant development milestones were
completed in a few weeks and joint development projects are
efficiently tracked and continue to be on schedule.
StarSoft Development Labs, Inc. is a software outsourcing service
provider in Russia and Eastern Europe. Headquartered in Cambridge,
Massachusetts, USA, StarSoft operates development centers in St.
47
SSCI complexity drivers are described as:
• Increasing problem complexity shifting focus from requirements
to objective capabilities that must be met by larger teams and
strategic partnerships.
• Increasing solution complexity which shifts attention from
platform architectures to enterprise architectures and fully
integrated systems.
• Increasing technical complexity from integrating standalone
systems to integrating across layers and stacks of communications
and network architectures.
• Increasing compliance complexity shifting from proprietary to
open standards.
• Increasing team complexity shifting from a single implementer
to strategic teaming and mergers and acquisitions.
Team Formation
The second major challenge for large projects is process
management, particularly synchronizing work between sites. This
was achieved by splitting teams across sites and fine tuning daily
Scrum meetings.
Teams at SirsiDynix were split across the functional areas needed
for an integrated library system. Half of a Scrum team is typically in
Provo, Utah, and the other half in St. Petersburg. There are usually
3-5 people on the Utah part of the team and 4 or more on the St.
Petersburg portion of the team. The Search and Reporting Teams are
smaller. There are smaller numbers of team members in Seattle,
Denver, St. Louis, and Waterloo, Canada.
Scrum Meetings
Teams meet across geographies at 7:45am Utah time which is 17:45
St. Petersburg time. Teams found it necessary to distribute answers to
the three Scrum questions in writing before the Scrum meeting. This
shortens the time needed for the join meeting teleconference and
helps overcome any language barriers. Each individual reports on
what they did since the last meeting, what they intend to do next, and
what impediments are blocking their progress.
49
Email exchange on the three questions before the daily Scrum
teleconference was used throughout the project to enable phone
meetings to proceed more smoothly and efficiently. These daily team
calls helped the people in Russia and the U.S. learn to understand
each other. In contrast, most outsourced development projects do not
hold formal daily calls and the communication bridge is never
formed.
Local sub-teams have an additional standup meeting at the
beginning of the day in St. Petersburg. Everyone uses the same
process and technologies and daily meetings coordinate activities
within the teams.
ScrumMasters are all in Provo, Utah or Waterloo, Canada, and
meet in a Scrum of Scrums every Monday morning. Here work is
coordinated across teams. Architects are directly allocated to
production Scrum teams and all located in Utah. An Architecture
group also meets on Monday after the Scrum of Scrums meeting and
controls the direction of the project architecture through the Scrum
meetings. A Product Owner resident in Utah is assigned to each
Scrum team. A chief Product Owner meets regularly with all Product
Owners to assure coordination of requirements.
SirsiDynix achieved strong central control of teams across
geographies by centrally locating ScrumMasters, Product Owners,
and Architects. This helped them get consistent performance across
distributed teams.
Sprints
Sprints are two weeks long on the SirsiDynix project. There is a
Sprint planning meeting similar to an XP release planning meeting in
which requirements from User Stories are broken down into
development tasks. Most tasks require a lot of questions from the
Product Owners and some tasks take more time than initial estimates.
The lag time for Utah Product Owner response to questions on
User Stories forces multitasking in St. Petersburg and this is not an
ideal situation. Sometimes new tasks are discovered after querying
Product Owners during the Sprint about feature details.
Code is feature complete and demoed at the end of each Sprint.
Up until 2006, if it met the Product Owner’s functional requirement,
it was considered done, although full testing was not completed. It
Product Specifications
Requirements are in the form of User Stories used in many Scrum
and XP implementations. Some of them are lengthy and detailed,
others are not. A lot of questions result after receiving the document
in St. Petersburg which are resolved by daily Scrum meetings, instant
messaging, or email.
For this project, St. Petersburg staff like a detailed description
because the system is a comprehensive and complex system designed
for specialized librarians. As a result, there is a lot of knowledge that
needs to be embedded in the product specification.
The ways libraries work in St. Petersburg are very different than
English libraries. Russian libraries operate largely via manual
operations. While processes look similar to English libraries on the
surface, the underlying details are quite different. Therefore, user
stories do not have sufficient detail for Russian programmers.
51
Story for Simple Renewals Use Case:
Patron brings book or other item to staff to be renewed. Patron John Smith checked out "The
Da Vinci Code" the last time he was in the library. Today he is back in the library to pick up
something else and brings "The Da Vinci Code" with him. He hands it to the staff user and
asks for it to be renewed. The staff user simply scans the item barcode at checkout, and the
system treats it as a renewal since the item is already checked out to John. This changes the
loan period (extends the due date) for the length of the renewal loan. Item and patron
circulation history are updated with a new row showing the renewal date and new due date.
Counts display for the number of renewals used and remaining. The item is returned to
Patron John Smith.
Assumptions:
Item being renewed is currently checked out to the active patron
• No requests or reservations outstanding
• Item was not overdue
• Item does not have a problem status (lost, etc)
• No renew maximums have been reached
• No block/circulation maximums have been reached
• Patron's subscriptions are active and not within renewal period
• No renewal charges apply
• No recalls apply
Renewal is from Check Out (not Check In)
Staff User has renewal privileges
Verification (How to verify completion):
• Launch Check Out
• Retrieve a patron who has an item already checked out but not yet overdue
• Enter barcode for checked out item into barcode entry area (as if it is being checked
out), and press <cr>.
• System calculates new due date according to circulation rules and agency
parameters.
• The renewal count is incremented (Staff renewal with item)
• If user views "Circulation Item Details", the appropriate Renewals information should
be updated (renewals used/remaining)
• Cursor focus returns to barcode entry area, ready to receive next scan (if previous
barcode is still displayed, it should be automatically replaced by whatever is entered
next)
• A check of the item and patron circulation statistics screens shows a new row for the
renewal with the renewal date/time and the new due date.
1. Items that were in Item list should appear in the list in Reserve Item
2. Status of all items that has been just added should be shown as “Inactive”
Expected Results
3. Save button should be inactive
4. All corresponding Items should retain their original parameters
53
In the summer of 2006, a new CTO of SirsiDynix, Talin Bingham,
took over the project and introduced Test Driven Design. Every
Sprint starts with the usual Sprint Planning meeting and teams are
responsible for writing functional tests before doing any coding.
Once functional tests are written and reviewed, coding starts. Test-
first coding is mandated. When coding is complete, developers run
unit tests and manually pass all the functional tests before checking
in changes to the repository.
Automation testing is done using the Compuware TestPartner tool,
but there is still room for improvement of test coverage.
Configuration Management
SirsiDynix was using CVS as source code repository when the
decision was made to engage an outsourcing firm. At that time,
SirsiDynix made a decision that CVS could not be used effectively
because of lack of support for distributed development, largely seen
in long code synchronization times. Other tools were evaluated and
Perforce was chosen as the best solution.
StarSoft had seen positive results on many projects using Perforce.
It is fast, reliable and offers local proxy servers for distributed teams.
Although not a cheap solution, it has been very effective for the
SirsiDynix project.
Automated builds run every hour with email generated back to
developers. It takes 12 minutes to do a build, 30 minutes if the
database changes. StarSoft would like to see faster builds and true
concurrent engineering. Right now builds are only stable every two
weeks at Sprint boundaries.
Measuring Progress
The project uses the Jira <http://www.atlassian.com> issue tracking
and project management software. This gives everyone on the project
a real-time view into the state of Sprints. It also provides
comprehensive management reporting tools.
Data from Jira can be downloaded into Excel to create any
requested data analysis. High velocity projects need an automated
tool to track status across teams and geographies. The best tools
support bug tracking and status of development tasks in one system
and avoid extra work on data entry by developers. Such tools should
track tasks completed by developers and work remaining. They
provide more detailed and useful data than time sheets, which should
be avoided. Time sheets are extra overhead that do not provide useful
information on the state of the project, and are de-motivating to
developers.
SirsiDynix Horizon 8.0 Project Dashboard showing the Sprint burn-down chart,
a snapshot of Earned Business, and a synopsis of bug status.
55
Other companies like PatientKeeper have found tools that
incorporate both development tasks and defects that can be packaged
into a Sprint Backlog are highly useful for complex development
projects. Thousands of tasks and dozens of Sprints can be easily
maintained and reviewed real-time with the right tool.
57
Jeff Sutherland’s Scrum Handbook 58
CHAPTER 6
59
task-based planning is implemented along with overtime and
weekend work. Most agile development practices are abandoned.
EmbeddedWaterFall.com reverted to type.
There was an extensive analysis of root causes and lessons learned
on this project. The bottom line is failure of management to
understand agile practice and failure of management commitment to
implement Scrum made it impossible to remove impediments at the
first sign of trouble.
61
Appendix 1
Jim Coplien and the ATT Bell Labs Pasteur Project wrote the paper
on the most productive software development team ever documented
– the Borland Quattro Pro Project. The first Scrum team
implemented the Scrum daily meeting after reading this paper.
Alan Kay and his team at Xerox Parc invented Smalltalk, the mouse,
the graphical user interface, the personal computer, the Ethernet, and
the laser printer. Listening to his insights on innovation inspired the
first Scrum team to go from “good” to “great”.
63
Christopher Alexander coined the phrase “ quality without a
name” (QWAN) – something that many Scrum practitioners
experience. The phrase was used in the book “The Timeless Way of
Building”, where Alexander describes a certain quality that we seek,
but which cannot be named. This may be the most important feature
of Scrum and can only be spoken of as a set of core values -
openness, focus, commitment, courage, and respect. It could be
viewed as the “speed of trust” or one of the sources of “ba” often
seen on Scrum teams. Ba is the Japanese term for the creative flow
of innovation described by Takeuchi and Nonaka.
References
For a complete list of Jeff Sutherland papers, please visit http://scrum.jeffsutherland.com/.
C. Jakobsen and J. Sutherland, “Scrum and CMMI – Going from Good to Great: are you
ready-ready to be done-done?,” in Agile 2009, Chicago, 2009.
K. Schwaber and J. Sutherland. The Scrum Guide. Scrum.org, 2010.
A. Sutherland, J. Sutherland, and C. Hegarty, “Scrum in Church: Saving the World One
Team at a Time,” in Agile 2009, Chicago, 2009.
J. Sutherland, “Future of Scrum: Parallel Pipelining of Sprints in Complex Projects,” in
AGILE 2005 Conference Denver, CO: IEEE, 2005.
J. Sutherland and I. Altman, “Organizational Transformation with Scrum: How a Venture
Capital Group Gets Twice as Much Done with Half the Work,” in 43rd Hawaii
International Conference on Software Systems, Kauai, Hawaii, 2010.
J. Sutherland, S. Downey, and B. Granvik, “Shock Therapy: A Bootstrap for a Hyper-
Productive Scrum” in Agile 2009, Chicago, 2009.
J. Sutherland, G. Schoonheim, and M. Rijk, “Fully Distributed Scrum: The Secret Sauce
for Hyperproductive Offshored Development Teams,” in Agile 2008, Toronto,
2008.
J. Sutherland and K. Schwaber, The Scrum Papers: Nuts, Bolts, and Origins of an Agile
Method. Boston: Scrum, Inc., 2007.
J. Sutherland, A. Viktorov, J. Blount, and N. Puntikov, “Distributed Scrum: Agile Project
Management with Outsourced Development Teams,” in HICSS'40, Hawaii
International Conference on Software Systems Big Island, Hawaii: IEEE, 2007.
H. Takeuchi and I. Nonaka, “The New New Product Development Game,” Harvard
Business Review, 1986.
65
”Nuts, Bolts, and Origins of an Agile Framework”
Jeff Sutherland’s Scrum Handbook is the perfect companion for any ambitious team
member of a Scrum project. Being written by one of the co-creators of the method
itself, and based on his 15 years of experiences from a long range of companies, it
contains not only accurate descriptions of the methodology but also statements and
conclusions that are proven by trials in real-life projects.
• Part II Scrum at Work – The second part can be seen as a chronicle of Scrum –
illustrated with a number of case studies which have been carried out by Jeff
Sutherland over the years. One chapter is dedicated to a particulary large case,
SirsiDynix, where the difficulties of intercontinental distributed Scrum are
scrutinized.
Author Jeff Sutherland Ph.D, created the first Scrum in 1993 and formalized the
Scrum development process with Scrum Co-Creator Ken Schwaber. Jeff is Chairman
of the Scrum Training Institute, CEO of Scrum, Inc. and Senior Advisor and Agile
Coach to OpenView Venture Partners.
scrum
training
institute
press