User Stories
Deep Dive
User Stories
Focused on what
(not how)
What you expect
(avoid being vague)
Manage scope
(lightweight)
Don’t include many
details(Details will come later)
It can be estimated
(otherwise is too big)
It should fit in a card
(or sticky note)
It’s not a contract
(it will change)
Placeholder for
conversation
Where do User
Stories live?
User Story Map
R1
R2
User
Activities
User Tasks
User Stories
User Stories
Kanban
Backlog Analysis Coding QA Deploy
Writing user stories
Format I
As a [ROLE]

I want to [ACTION]

So I can [GOAL]
Who
What
Why
Format II
In order to [GOAL] 

As a [ROLE]

I want to [ACTION]

Who
What
Why
INVEST guideline
Independent
Negotiable
Valuable
Estimable
Small
Testable
Non Functional
Requirements
Make it part of a
story
(if possible)
Write a test
Even a manual test
Make sure there’s
some kind of card
on the board
No matter the format
What about the
details?
When is the right
time to add details?
When can more
stories be
discovered?
Any time!
Anywhere!
Examples
Movie Library App
Donald likes to watch movies and tell his
friends about it. He uses a site that helps him
to find movies (old, new, etc), rate them and
share with others.
He also enjoys the previews and loves to hear
when his “favourites” movies are playing in
theatres.
Right or Wrong?
As a Developer

I want use a NoSQL db to store movies

So I can list them faster
Right or Wrong?
As a Developer 

I want to use Twitter Bootstrap for the
UI

So I can use all the cool buttons and
layout
Right or Wrong?
As a User

I want my app to be easy to use

So I can get the top ten UIX award
Right or Wrong?
As a User 

I want to get statistics about movies

So I can decide which users could be
willing to buy a movie ticket ahead of
time
Right or Wrong?
As a User 

I want to login to the site 

So I can use the site
Right or Wrong?
As a User 

I want to login to the site but if I forget
my password I want a password recovery
email or maybe use Google instead

So I can review movies
English Master
EnglishMaster is an application to let users
read lessons to learn and improve english.
The lessons are provided in an alphabetical
index that the user can filter by choosing a
letter of the alphabet or searching for a word.
Medical Studies
The application needs to process XML files contains
medical studies that come with patient information
and study results.
The studies are uploaded in a Zip file to our FTP
server. Each new file needs to be processed and
added to the database (unless it has been
processed).
It is important to be robust and handle errors to
avoid duplication.
Sizing stories
Identify Complexity
Task Breakdown
Throwing a dice
ShakingTwo
Months
User Story Points
Using Fibonacci (1, 2, 3, 5, 8, 13 …)
Planning poker
Benefits &
Drawbacks
Relative complexity
Tend to average
How often do we
estimate?
Can we avoid
estimation?
It will take what it
takes?
Let’s make each
story…
Around the same
size
The path to…
NO ESTIMATES!
Acceptance Criteria
When are we done?
Writing Scenarios
Input
Output
Step 1
Step 2
…
Step N
Multiple Scenarios
Gherkin DSL
Business readable DSL
Flush out requirements
Automated testing
Used by Cucumber, SpecFlow,
jBehave
Features
Feature: Listing movies

As a User

I want to list movies 

So I can see the contents of the library
Scenarios
Scenario: List all movies

Given I'm logged in 

And I have (some data loaded)

When I (do some action)

Then I (should see expected results)
Writing reviews
Scenario: Write a review for a movie
Given I'm logged in as a Critic
When I write a review for a movie
Then I should see the new review
in the reviews section
for the movie
Example II
Scenario: See most recent movies first
Given I'm logged in as a User
When I order the list by release date
Then I should see the movies with the
release date most recent first
Guidelines to
write
scenarios
??????
Scenario: Perfect world
Given the application is setup
When I want to use some projects
Then I should be able to load data
And have a great user experience
but no bugs should appear
?????
Scenario: Redirect user
Given a User "dave" with pwd "secret"
And I am not logged in
When I navigate to the home page
And I fill in "Username" with "dave"
And I fill in "Password" with "secret"
And I press “Login"
Then I am redirected to the login form
Just right
Scenario: List all projects
Given I'm logged in
And I have some projects stored
When I list the projects
Then I should see all of them
Estimating
using scenarios
More Functionality
When is the right time to write scenarios?
During Inception?
During Analysis?
During Development?
During QA?
Order Matters Not!
Can every feature be independent?
Size Matters not!
Can every story be of the same size?
Complexity ∝ amount
How many scenarios per feature?
Complexity ∝ amount
The more scenarios we find the more
complex the story is
Complexity ∝ amount
If scenarios are unclear, then is time to
rethink the feature
Complexity ∝ amount
Scenarios
0
1
2
4
5
6
7
Complexity
Simple Medium Complex WTF?
Complexity ∝ Clarity
Too many steps
Complexity ∝ Clarity
Takes more than 10 minutes to write
Complexity ∝ Clarity
You read it the next day and
have no clue what it means
Recipe
Make every story around the same size
Recipe
One or two scenarios most
Recipe
Make sure you can implement it in XX
amount of time
(1 or 2 days)
Recipe
Find the simplest scenario
that provides value
THANK YOU!
The Smartest tool
for agile project
management
http://smartview.io
amir@barylko.com
@abarylko
http://bit.ly/abarylkoslides
http://orthocoders.com
http://westerndevs.com

User stories deep dive