Posted in Scrum Add-ons

User Stories

Stories express something that will be valuable to a user (2)

Benefits of User Stories

  • They act as a placeholder to remind us to have conversations rather than follow written requirements contracts
  • They encourage interaction through the conversations
  • They are comprehensible by all, from devs and throughout the business, and have no technical jargon
  • They are the right size to be able to plan and estimate
  • When working iteratively we don’t have to write all stories upfront and can refine as we go along the project

Splitting Stories

Vertical Slicing

  • Always slice stories from the point of view of our customer
  • All stories must have value, which can be to our customer directly or indirectly
  • The technical layers that make up the value are to be kept together (like the layers of a birthday cake) as one layer on its own does not provide value
  • Splitting stories into the technical layers can lead to defining the solution and restricting abilities to creatively iterate

Using Scenarios to Split Stories

  • See BDD and Three Amigos for writing stories with scenarios
  • Use these scenarios to break the story down into smaller pieces of value

Cake Metaphor (3)

Cupcake_parts
Cake Metaphor Doodle
  • To split the story down you could break it down horizontally and take each ingredient in turn
  • But if you slice horizontally you will just get egg and not know if the cake ingredients all work together to provide value (it could taste awful all together!)
  • Instead, bake a cupcake!
  • You get all the ingredients but a smaller size to check the recipe works
Cupcake
A Cupcake Doodle!

User Story Construction

The Three C’s

CARD
  • Description that defers the details
As a [user type]
I want [functionality]
So that [benefit]
CONVERSATION
  • Verbal conversations are best
  • Highlights that we don’t know all the detail
  • Reminder of conversations we have had, work that has been done, any wider context
Confirmation
  • Acceptance Criteria
  • Must be matched for a story to be considered done
  • User point of view only
  • No design specifications unless the user wants them

Good User Story Guidance

INVEST Criteria

INDEPENDENT
  • Stories shouldn’t have to be completed in a specific order and should not rely on another story to be started
  • This is not always achievable
  • Common examples are when you need something to exist before you can build upon it or when one story reduces the complexity of another making it seem logical to do them in a specific order
  • How do we respond to this?
    • Don’t put dependent stories in the same sprint to keep the flow
    • Join together dependent stories
NEGOTIABLE
  • Stories are not contracts – they are short descriptions of functionality
  • Open to discussion with the team
  • Simplify, alter, add to in whatever way is best for the goal and the product
VALUABLE
  • Valued to user/ customer
  • Technology assumptions have no value to the customer!
ESTIMABLE
  • Good size
  • Just enough information, but not too much to become confusing
  • If an investigation is needed before estimation, use a spike
SMALL
  • Lower Limit is coffee break size, i.e. big enough that you deserve a coffee break for finishing
  • Scrum team will highlight size issues in refinement
TESTABLE
  • Language is important
  • It must be specific, unlike “A user never has to wait for it to load”
  • “It takes two seconds max to load in 95% of cases” is much better

Acceptance Test Writing Guidance (2)

  • Always add tests as long as they add value
  • Capture assumptions
  • Provide basic criteria for when story is Done
  • Questions to ask
    • What else do devs want to know?
    • What am I assuming?
    • What can go wrong?
    • Circumstances where story might behave differently
    • Usability
    • Stress
    • Performance

Stories should be closed, not open ended

  • Use language to ensure that the stories have a definite closure
  • Continuous jobs are bad (e.g. managing an ad)
    • Instead use closed actions like “review responses” and “edit response”

User Story Card Example (3)

Story_Card
User Story Card Doodle
  1. Story reference number
  2. Author of the story
  3. Value/ importance
  4. Status/ release
  5. Size/ estimate
  6. Date created
  7. Dependencies
  8. Metrics (if relevant)
  9. Description
  10. Story title (this is the only mandatory field)

User Story Smells

Too Small

EVIDENCE: Frequent need to revise estimates depending on order

FIX: Combine the stories together

Not Independent

EVIDENCE: Difficulty in planning the iteration and lots of swapping stories in and out

FIX: Re-split the stories

Gold Plating

EVIDENCE: Extra wow factor being added that isn’t in the story

FIX: Increase the visibility in the Daily Scrum

Too Much Detail

EVIDENCE: Too long discussing the story

FIX: Strip the story back to its basics and focus on the user point of view

Trouble Prioritising

EVIDENCE: Stories cannot be prioritised logically

FIX: Stories may need to be broken down smaller or re-written from a value point of view


References

  1. The Scrum Guide
  2. User Stories Applied by Mike Cohn
  3. User Story Mapping by Jeff Patton

One thought on “User Stories

  1. Pingback: Product Backlog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s