9.
MOVIE LIBRARY SITE
Post-It
&
Sharpie!
• Context:
• 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
“favorites” movies are playing in theaters.
• Write
a list of interesting things the site could
have to provide value for someone like Donald.
User Stories
MavenThought Inc.

10.
WHY USER STORIES?
• Focused
• Based
on what you expect
• Manage
• Don’t
• They
User Stories
on what not how
scope (light weight)
include many details
can be estimated
MavenThought Inc.

11.
WHAT’S THE DIFFERENCE?
• Capture
• Don’t
• Only
• It
user stories (features) to ﬁll our backlog
include any details
a vague idea of what it should do
should ﬁt in a card
• It’s
User Stories
not a contract
MavenThought Inc.

12.
PLACEHOLDER FOR
CONVERSATION
• Documents
are not a great tool for common
understanding, so we tell stories
• They
• The
spark a conversation (that’s the key)
story records/reminds of that conversation
• They
should be created with the stakeholder/
owner
User Stories
MavenThought Inc.

14.
FORMAT
• As
a [ROLE], I want to [ACTION], so I can [GOAL]
Who
What
Why
As a User
I want to register the movies I’ve seen
So I can show them to my friends
User Stories
MavenThought Inc.

15.
FORMAT II
• In
order to [GOAL], as a [ROLE], I want to [ACTION]
Why
Who
What
In order to show the movies I’ve seen to others
As a User
I want to register them into the catalog
User Stories
MavenThought Inc.

17.
INVEST - INDEPENDENT
•
One user story should be independent of another (as much as
possible). Dependencies between stories make planning,
prioritization, and estimation much more difﬁcult.
• As
a User, I want to see a dashboard with new
movies, my favorites and my friends movies
• As
a User, I want to see new movies
• As a User, I want to see my favorites
• As a User, I want to see my friend’s movies
User Stories
MavenThought Inc.

18.
INVEST - NEGOTIABLE
•
The "Card" of the story is just a short description of the story
which do not include details. The details are worked out during
the "Conversation" phase.
• As
a User, I want to rate movies comparing director,
actors, popularity, social aspect, etc
• As
a User, I want to rate movies
• As a User, I want to include actors and directors in
the reviews
User Stories
MavenThought Inc.

19.
INVEST - VALUABLE
•
Each story has to be of value to the customer (either the user or
the purchaser). One very good way of making stories valuable is
to get the customer to write them.
• As
a Developer, I want use a NoSQL db to store
movies
• As a developer I want to use Twitter Bootstrap for
the UI
• As
User Stories
a User, I want to register movies
MavenThought Inc.

20.
INVEST - ESTIMABLE
•
The developers need to be able to (relative) estimate (at a
ballpark even) a user story to allow prioritization and planning of
the story.
• As
a User, I want to have the most secure site
• As
a Reviews, I want to be the only one that sees my
private reviews
User Stories
MavenThought Inc.

21.
INVEST - SMALL
•
The stories should be implemented in a “small” amount of time,
otherwise they are too big and should be broken down.
• As
a User I want to get statistics about movies
• As
a User, I want to see the top 5 searched movies
User Stories
MavenThought Inc.

22.
INVEST - TESTABLE
•
Each story should include the acceptance criteria that indicates the
story is implemented as expected. The owner should participate
and deﬁne this criteria.
• The
movie site should be easy to use
• Given
I am in the home page
• When I start typing in the search box
• Then
User Stories
the auto complete should help me
MavenThought Inc.

23.
NON FUNCTIONAL
• How
do we write them?
• Write
tests
• Create
• If
User Stories
a checklist (should be a test)
possible, write it as story
MavenThought Inc.

24.
DETAILS
• When’s
the right time to add details?
• Avoid
adding too many details until the story is
prioritized to be next
• When
doing Analysis, then the story gets deﬁned
• Acceptance
• If
tests should be included at that point
its too big, should be split up
User Stories
MavenThought Inc.

25.
MOVIE LIBRARY SITE II
Post-It
&
Sharpie!
• Rewrite
your statements as user stories using
format I or II
• As
a [ROLE], I want to [ACTION], so I can [GOAL]
• In
order to [GOAL], as a [ROLE], I want to [ACTION]
• Compare
• General
User Stories
with your team
Discussion
MavenThought Inc.

30.
SCENARIOS
Scenario: List all movies
Given I'm logged in
Step 1
And
I have (some data loaded)
Step 2
When
I (do some action)
Step 3
Then
I (should see expected results)
Step 4
Scenarios & Estimation
MavenThought Inc.

31.
EXAMPLE
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
Scenarios & Estimation
MavenThought Inc.

32.
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
Scenarios & Estimation
MavenThought Inc.

35.
?????
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
Amir Barylko
MavenThought Inc.

36.
?????
Scenario:
Given a
And
I
When I
Then I
When I
And
I
And
I
Amir Barylko
Redirect user to originally requested page
User "dave" exists with password "secret"
am not logged in
navigate to the home page
am redirected to the login form
fill in "Username" with "dave"
fill in "Password" with "secret"
press "Login"
MavenThought Inc.

37.
DESCRIPTIVE STYLE
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
Amir Barylko
MavenThought Inc.

38.
DISCOVER COMPLEXITY
• How
many scenarios per feature?
• The
more scenarios the more complex
• The
more steps the more complex
• If
scenarios are unclear, then is time to rethink the feature
Amir Barylko
MavenThought Inc.

39.
DISCOVER FUNCTIONALITY
• When
is the right time to write scenarios?
• During
Inception?
• During
Analysis?
• During
Development?
• During
QA?
Amir Barylko
MavenThought Inc.

40.
SCENARIO ORDER
• What
• How
• Can
happens with dependencies?
do I use data if I haven’t implemented that feature?
devs work independently in different scenarios?
Amir Barylko
MavenThought Inc.

62.
ACCEPTANCE CRITERIA
• Write
the expected criteria before the
implementation starts
• Developers
will implement the feature until the
criteria is satisﬁed
• QA
Amir Barylko
will validate against the same criteria
MavenThought Inc.

78.
WHAT’S NEXT
• Take
one idea/technique that you think could be beneﬁcial
• Use
the next four weeks to implement it
• Register
• Share
Amir Barylko
challenges, issues and results
with your peers (and with me if possible)
MavenThought Inc.