Foreward
Mike Cohn
Mary Poppendieck
Introduction
Chapter 1
Backdrop: The Science of Scrum
Mike CohnCertified ScrumMaster
Director, Agile Alliance
https://www.mountaingoatsoftware.com/
“Scrum excels on urgent projects that are critical to an organization.”
Scrum excels when requirements are unknown, unknowable, or changing.
Scrum excels by helping teams excel.
Scrum is hard..”
Mary Poppendieck
The Lean MindsetEnergized Workers, Delighted Customers, Genuine Efficiency Breakthrough Innovation
http://www.poppendieck.com/people.htm
“If teams are of a size that encourages every member to
participate, and team members feel like they are in control
of their own destiny, the experience, ideas, and concerns of
individual members will be leveraged, not squelched.
When team members share a common purpose that everyone
believes in, they will figure out how to achieve it.
When teams understand and commit to delivering business
value for their customers, when they are free to figure out
how to perform tasks, and when they are given the resources
they need, they will succeed.”
Introduction
“Scrum is not a prescriptive process, it doesn’t describe what to
do in every circumstance.
Scrum is used for complex work in which it is impossible to
predict everything that will occur.
Accordingly, Scrum simply offers a framework and set of
practices that keep everything visible.”
“Most people responsible for managing project have been taught
a deterministic approach to PM that uses detailed plans, Gantt
charts, and work schedules.
… Scrum shows management how to guide a project along its
optimal course, which unfolds as the project proceeds.”
Introduction … continued
“I used to teach people the theory, practices, and rules of Scrum.
Now I teach them what Scrum feels like as it is implemented.
I teach them to recognize when things are going right and when
they are going wrong…
… as you read this book, you will begin to understand what
Scrum feels like and how you might fell using Scrum in your
organization.”
Backdrop: The Science of Scrum
“The chapter describes how empirical processes are
used to control complex, processes and how Scrum
employs these empirical processes to control software
development projects…
… but not that it ensures the project will go exactly as
expected, yielding results identical to those that were
predicted…
… rather that Scrum controls the process of software
development to guide work toward the most valuable
outcome possible.”
Not a “silver bullet”!
Empirical Process Control
“When the underlying mechanisms by which a process
operates are reasonably well understood, adopting the
defined (theoretical) modeling approach makes sense.
When the process is too complicated for the defined
approach, the empirical approach is the appropriate
choice.
Empirical Process Control requires:
• Visibility
• Inspection
• Adaptation
Empirical Process Control
Visibility
Those aspects of the process that affect the outcome must be
visible to those controlling the process
Example: The meaning of “done” is precisely defined and understood
by all
Inspection
Those aspects of the process must be inspected frequently
enough that unacceptable variances in the process can be
detected.
Obviously, those doing the inspecting must have the skills to
assess what they are inspecting
Empirical Process Control
Visibility
Inspection
Adaptation
When one or more aspects of the process are outside
acceptable limits affecting the result, the process must be
adjusted ASAP to minimize further deviation
Code review
A good example of how the process should work
Complex Software Development
“When complex things interact, the level of complexity
goes through the roof.
In software development, the three most significant are:
1. Requirements
2. Technology
3. People
It’s common to have many stakeholders (those with an interest in
the software and how it works) who have different needs and
whose needs frequently change an are difficult to articulate.
Understanding of what they want often requires someone else’s impression
of what they want …
What they want (require) is not only ambiguous, but changes.
Complex Software Development
“When complex things interact, the level of complexity
goes through the roof.
In software development, the three most significant are:
1. Requirements
2. Technology
3. People
Simple technology exists, but it is rarely used in software
development... and
… more than one piece is usually employed, and the
interfaces of the many are far more complex than the
complexity within any single piece.
Figure 1-1 Complexity assessment graph
The intersection of these two kinds of complexity
defines the total complexity of the project.
Technology complexity
Req
uir
emen
ts c
om
ple
xit
y
Complex Software Development
“When complex things interact, the level of complexity
goes through the roof.
In software development, the three most significant are:
1. Requirements
2. Technology
3. People
Differ in skills, intelligence levels, experience, viewpoints,
attitudes and prejudices…
… and the ability to commit to work together, both
collaboratively and cooperatively.
The Skeleton and the Heart of Scrum
Iterations… occur one after another
The output of each iteration is an increment of product!
The “daily” inspection …team members meet to inspect
each others’ activities, making appropriate adaptations.
The Skeleton and the Heart of Scrum
At the start, the team reviews what it must do.
Selects what it believes it produce as “shippable” functionality by
the end of the iteration.
At the end of the iteration, product owner and stakeholders
inspect the functionality… approving or collaborating on what
changes can feasibly be made.
“The heart of Scrum is the iteration”
• The team looks at the requirements, considers the
available technology, evaluates their skills and
capabilities…
• As a team they then determine how to build the
functionality…
• … modifying its approach daily as it encounters new
complexities, difficulties, and surprises
Scrum Roles
1. Product Owner
Represents interests of everyone with a stake in the project
and its resulting system
Creates the project’s overall requirements… the Product
Backlog
Ensures that the most valuable functionality is produced first
Prioritized the Product Backlog to ensure that the most valuable
requirements are assigned to the next iteration
2. Team
3. ScrumMaster
Scrum Roles
1. Product Owner
2. Team
Is self-managing, self organizing, and cross functional
Determines how to turn Product Backlog into an increment of
functionality
Collectively… are responsible for the success of each iteration
and the entire project!
3. ScrumMaster
Scrum Roles
1. Product Owner
2. Team
3. ScrumMaster
Responsible for the Scrum process
… Scrum mentor for everyone involved in the project
… Ensures everyone involved follows Scrum rules and
practices
Scrum FlowProduct Backlog
List of functional and nonfunctional req’t
Prioritized & divided into proposed releases
… iteration after iteration
All work is done in sprints
Each sprint is an iteration
Daily Scrum Meeting
3 questions for each team member
What have you done since the last meeting?
What do you plan on doing between now and the next meeting?
What impediments are there to meeting your commitment?
End of Sprint Review … and then Next Spring Planning
Team meets with Product Owner
(and stakeholders that want to attend)
Review and assess the demonstrated “go live” product
produced during the Sprint
Product Owner approval is needed along with whatever changes are
required
Product Backlog is reviewed and approved
Sprint Retrospective
Team assesses effectiveness of the prior iteration
Identifies changes needed to improve the process and
effectiveness of the team
Scrum Artifacts
Product Backlog
Requirements
… but only at a non specific level
Recorded but requiring further team / Product
Owner collaboration when preparing the Spring
Backlog
"Card, Conversation, Confirmation"
ID Theme As a / an I want to … so that … Notes Priority Status
2 Game moderator create a new game by entering a
name and an optional description
I can start inviting estimators If games cannot be saved and
returned to, the description is
unnecessary
Required done
2 Game moderator invite estomaors by giving them
a url where they can access the
game
we can start the game done
5 Game moderator join a game by entering my name
on the page I received the url for
I can participate done
6 Game moderator start a round by entering an item
in a single multi-line text field
We can estimat it done
8 Game moderator see the item we're estimating I know what I'm giving an
estimate for
done
10 Game participant always have the cards in the
same order across multiple rows
it's easy to compare estimates Replaced with A08 because I
didn't want the story to talk
about the same order as that
might be a UI implementation
detail
to do
35 non-functional user have the application respond
quickly to my actions
I don't get bored done
36 non-functional user have nice error pages when
something goes wrong
I can truast the system and it's
developers
done
A11 non-functional Researcher results to be stored in a non-
identifiable way
I can study the data to see
thiings like whether estimates
cnverged around the first
opinion given by "estimator A"
for example
No names or story text should be
stored but we should store each
card of each hand,k know who
played it andknow the final
accepted estimate
A05 Game moderator edit an item in the list of items to
be estimated
so that I can make it better
reflect the team's
understanding of the item
22 Archive moderator export a transcript of a game as a
CSV file
I can further process the stories
and estimates
Exported file should be directly
importable back into the system
done
Product Backlog
Burndown Chart
Tracks the amount of work completed
Sprint Backlog
… but just an introduction