USER STORIES
What are they?
Who are they for?
What benefit do they bring?
What are the best practices?
User Story origin

From XP's use cases to the 3Cs
− Card: token representing requirements
− Conversation: grooming/pre-planning/prioritisation
− Confirmation: define how we know it's done

user stories are an artefact of team negotiation
on scope commitment, a medium to add
certainty to what the team is building, obtain
early feedback ('fail' and learn early) and
improve as part of incremental software
delivery
Story journey from Design Thinking
to Scrum
Story mapping via user activities
Build/measure/improve minimum
viable product
http://www.slideshare.net/chassa/2013-0603specification-byexamplewithgherkinchristianhassa
Characteristics of a good story

I Independent The user story should be self-contained, in a
way that there is no inherent dependency on another user story.

N Negotiable User stories, up until they are part of an iteration,
can always be changed and rewritten.

V Valuable A user story must deliver value to the end user.

E Estimatable You must always be able to estimate the size of a
user story.

S Scalable (small sized) User stories should not be so big
as to become impossible to plan/task/prioritize with a certain level of
certainty.

T Testable The user story or its related description must provide the
necessary information to make test development possible.
Story formatting: best practices
1. As a… I want… so that…: role, feature and
business case (V in INVEST)
2. Assumptions: are captured to avoid
misunderstandings: system availability,
excluded story scope, dependencies… (S & I
in INVEST)
3. Scenarios + given/when/then: T in INVEST.
Acceptance Criteria are a set of statements,
each with a clear pass/fail result, that specify
both functional (e.g., minimal marketable
functionality) and non-functional (e.g., minimal
quality) requirements.
1.a. Defining the role: “As a....”

This is the WHO? Something or someone that
sends a stimulus into the system boundary

Keeping the story valuable and user centric

Use role and personae to help define most
adequate features

As a... designer/dev? Effort vs. value (Customers
only value tasks instrumentally, as required steps on the way to getting
what they really want)

Developer? Technical stories should only be used when the
product is constrained to a single subsystem or component & there is no
obvious external user/device/system

Read more:
https://www.scrumalliance.org/community/articles/2011/august/5-common-mistakes-we-make-writing-user-stories
What is a valid role?
• Real stories go from outside the system
boundary to inside the system, or vice versa.
• If we see a story focused only on things happening inside the system, it's a
sign that this is an implementation detail, not something the user regards
as a system behavior.
http://www.industriallogic.com/blog/as-a-developer-is-not-a-user-story/
Can spikes be user stories?

Definitions

“A Spike is a technical [or functional] investigation to produce an answer in
regards to some acceptance criteria on a story prioritized in upcoming
Sprints” http://agileatlas.org/articles/item/spikes-in-scrum-the-exception-not-the-rule

“"a story that cannot be estimated until a team runs a timeboxed
investigation. The output of a spike story is an estimate for the original
story.” http://underlap.blogspot.co.uk/2013/02/why-i-hate-spikes.html

Characteristics
Does not fit INVEST or ‘user’ in ‘user story https/
://davenicolette.wordpress.com/2014/09/25/is-a-spike-a-type-of-story

Team collaboration should happen *within* the user story container (as tasks)
and spikes are exceptions to the rule because of the size/dependency of the
task.

Spikes tend to be ‘specialist’ owned whereas Stories are cross-functional

Prototypes, Proof of Concepts (PoC), and Wireframes all fall into the
classification of Spikes
Can spikes be user stories?(continued)

Estimates

Like tasks, spikes should be estimated in time & further framed with a timebox.
XP has used the ‘Gold star card’ concept to ensure management of spikes

Team velocity is a metrics used to calculate value rather than effort
http://guide.agilealliance.org/guide/velocity.html

Velocity is used as a predictive measurement and analytics tool shared with
stakeholders, so they know when they are likely to receive working software. If
effort is written into it, the metric loses reliability.
http://johnharo.net/agile-should-you-estimate-spikes-with-story-p
1.b. Defining the feature “I want...”

Define the feature/series of events. How the
role triggers the stimulus; usually verb+object

Englobes the set of criterion (WHAT vs.
HOW)

Is unique to both the 'role' and the 'benefit'

Example: “I want to collect books in my
shopping basket”
1.c. Defining the benefit “so that...”

This is the WHY?

Helps the PO prioritise. This section is sometimes fleshed
out to include the business case, or recap on pain points/opportunities
identified in Design Thinking

Helps guarantee value specific to the 'role'

Example: “so that I can purchase multiple
books at once”
2. Acceptance criteria in practice:
specification by example

Define a scenario: acceptance criterion
headline

Use the Triple A of Given/When/Then
− Given=Arrange: Context, initial state of the system
− When=Act: Execution of the feature/event
− Then=Assert: Assertion of observable behaviour

Example:
scenario: Books can be added to the shopping basket
Given my shopping basket is empty
When I add the book “Harry Potter” to my shopping basket
Then my shopping basket should contain 1 copy of “Harry Potter”
Advantages of specification by
example

Scenario gives quick ‘in’ into the aim(s) of the
feature

Going through given/when/then helps drive
reflection, detection of borderline cases,
negative testing, which will uncover more work
(ex: content/UX/design on error messages)

Language is simple and can be used by both
business and systems (Cucumber/Java style of
Behaviour Driven Development)
Specification by example extended
to deployment automation (CI)
Specifications used to detect code
regression across full project
(not just latest feature)

A business case for User Stories

  • 1.
    USER STORIES What arethey? Who are they for? What benefit do they bring? What are the best practices?
  • 2.
    User Story origin  FromXP's use cases to the 3Cs − Card: token representing requirements − Conversation: grooming/pre-planning/prioritisation − Confirmation: define how we know it's done  user stories are an artefact of team negotiation on scope commitment, a medium to add certainty to what the team is building, obtain early feedback ('fail' and learn early) and improve as part of incremental software delivery
  • 3.
    Story journey fromDesign Thinking to Scrum
  • 4.
    Story mapping viauser activities
  • 5.
  • 6.
    Characteristics of agood story  I Independent The user story should be self-contained, in a way that there is no inherent dependency on another user story.  N Negotiable User stories, up until they are part of an iteration, can always be changed and rewritten.  V Valuable A user story must deliver value to the end user.  E Estimatable You must always be able to estimate the size of a user story.  S Scalable (small sized) User stories should not be so big as to become impossible to plan/task/prioritize with a certain level of certainty.  T Testable The user story or its related description must provide the necessary information to make test development possible.
  • 7.
    Story formatting: bestpractices 1. As a… I want… so that…: role, feature and business case (V in INVEST) 2. Assumptions: are captured to avoid misunderstandings: system availability, excluded story scope, dependencies… (S & I in INVEST) 3. Scenarios + given/when/then: T in INVEST. Acceptance Criteria are a set of statements, each with a clear pass/fail result, that specify both functional (e.g., minimal marketable functionality) and non-functional (e.g., minimal quality) requirements.
  • 8.
    1.a. Defining therole: “As a....”  This is the WHO? Something or someone that sends a stimulus into the system boundary  Keeping the story valuable and user centric  Use role and personae to help define most adequate features  As a... designer/dev? Effort vs. value (Customers only value tasks instrumentally, as required steps on the way to getting what they really want)  Developer? Technical stories should only be used when the product is constrained to a single subsystem or component & there is no obvious external user/device/system  Read more: https://www.scrumalliance.org/community/articles/2011/august/5-common-mistakes-we-make-writing-user-stories
  • 9.
    What is avalid role? • Real stories go from outside the system boundary to inside the system, or vice versa. • If we see a story focused only on things happening inside the system, it's a sign that this is an implementation detail, not something the user regards as a system behavior. http://www.industriallogic.com/blog/as-a-developer-is-not-a-user-story/
  • 10.
    Can spikes beuser stories?  Definitions  “A Spike is a technical [or functional] investigation to produce an answer in regards to some acceptance criteria on a story prioritized in upcoming Sprints” http://agileatlas.org/articles/item/spikes-in-scrum-the-exception-not-the-rule  “"a story that cannot be estimated until a team runs a timeboxed investigation. The output of a spike story is an estimate for the original story.” http://underlap.blogspot.co.uk/2013/02/why-i-hate-spikes.html  Characteristics Does not fit INVEST or ‘user’ in ‘user story https/ ://davenicolette.wordpress.com/2014/09/25/is-a-spike-a-type-of-story  Team collaboration should happen *within* the user story container (as tasks) and spikes are exceptions to the rule because of the size/dependency of the task.  Spikes tend to be ‘specialist’ owned whereas Stories are cross-functional  Prototypes, Proof of Concepts (PoC), and Wireframes all fall into the classification of Spikes
  • 11.
    Can spikes beuser stories?(continued)  Estimates  Like tasks, spikes should be estimated in time & further framed with a timebox. XP has used the ‘Gold star card’ concept to ensure management of spikes  Team velocity is a metrics used to calculate value rather than effort http://guide.agilealliance.org/guide/velocity.html  Velocity is used as a predictive measurement and analytics tool shared with stakeholders, so they know when they are likely to receive working software. If effort is written into it, the metric loses reliability. http://johnharo.net/agile-should-you-estimate-spikes-with-story-p
  • 12.
    1.b. Defining thefeature “I want...”  Define the feature/series of events. How the role triggers the stimulus; usually verb+object  Englobes the set of criterion (WHAT vs. HOW)  Is unique to both the 'role' and the 'benefit'  Example: “I want to collect books in my shopping basket”
  • 13.
    1.c. Defining thebenefit “so that...”  This is the WHY?  Helps the PO prioritise. This section is sometimes fleshed out to include the business case, or recap on pain points/opportunities identified in Design Thinking  Helps guarantee value specific to the 'role'  Example: “so that I can purchase multiple books at once”
  • 14.
    2. Acceptance criteriain practice: specification by example  Define a scenario: acceptance criterion headline  Use the Triple A of Given/When/Then − Given=Arrange: Context, initial state of the system − When=Act: Execution of the feature/event − Then=Assert: Assertion of observable behaviour  Example: scenario: Books can be added to the shopping basket Given my shopping basket is empty When I add the book “Harry Potter” to my shopping basket Then my shopping basket should contain 1 copy of “Harry Potter”
  • 15.
    Advantages of specificationby example  Scenario gives quick ‘in’ into the aim(s) of the feature  Going through given/when/then helps drive reflection, detection of borderline cases, negative testing, which will uncover more work (ex: content/UX/design on error messages)  Language is simple and can be used by both business and systems (Cucumber/Java style of Behaviour Driven Development)
  • 16.
    Specification by exampleextended to deployment automation (CI)
  • 17.
    Specifications used todetect code regression across full project (not just latest feature)