Sie sind auf Seite 1von 34

User Stories

Randy Shepherd
NYU

Agenda
Review of our agile process
What is a User Story?
Why User Stories?
Creating User Stories in Pivotal Tracker.
User Story workshop.

What is a user story?


It describes functionality that will be
valuable to user of software.
Moreover, a feature request from a user's
point of view.
It is not a bug report or a functional
specification.
It is not a technical design document.

Role-Action-Context

As a <type of user> I <want/need/can>


<goal> so that <reason>

Examples
BigMoneyJobs.com
As a recruiter I can post new jobs so that
applicants can find those jobs via search
As a job seeker I can limit who sees my
resume so that I have privacy

The Three C's


Card
A written description of the story used for planning and
estimation.

The Three C's


Card
A written description of the story used for planning and
estimation.

Conversation

The Three C's


Card
A written description of the story used for planning and
estimation.

Conversation
A discussion about the story to flesh out details. Happens
'just in time'.

The Three C's


Card
A written description of the story used for planning and
estimation.

Conversation
A discussion about the story to flesh out details. Happens
'just in time'.

Confirmation

The Three C's


Card
A written description of the story used for planning and
estimation.

Conversation
A discussion about the story to flesh out details.
Happens 'just in time'.

Confirmation
Tests that confirms a story's completion.

Anti-stories
The software is written in C++
The database will have a connection pool
Why are these anti-stories?

Story Scope

"As a user I can search for jobs"

Story Scope
"As a user I can search and apply for jobs"
What values can they search on? State? Title?
Does the user have to logged in?

Story Scope
"As a user I can search and apply for jobs"
What values can they search on? State? Title?
Does the user have to logged in?
This is known as an 'epic'

Story Scope

"As a user I can view a job's salary range"

Story Scope
"As a user I can view a job's salary range"
Too granular.
A little underwhelming to from the user's
point of view

INVEST
Independent
Each User Story should represent a distinct and
independent set of business value such that, were it
released on its own, it would deliver incremental
value over the previous state.

INVEST
Negotiable
While the end-goal may be clearly described, the
methods by which that goal is achieved should be
negotiable - between the Product Owner and the
Development Team, the Product Owner and the
Customer, or any other involved stakeholders - so as
to prevent unrealistic constraints on the feature or
functionality.

INVEST
Valuable
The business value of any User Story should be
readily recognizable by reading the story, and each
story should represent some sort of value to a
specific user type.

INVEST
Estimable
We must have enough information that we can
properly size a story so that we may properly plan
and commit to our work. (But no more!)

INVEST
Small
User Stories should be small enough that they are
able to be completed within a sprint.

INVEST
Testable
All members of the team need a clear and precise
way to verify whether or not a User Story has been
completed.

Estimation & 'Story Points'


In waterfall, workload capacity is
determined in terms of time.
Very difficult to do.
After 13 years as a software engineer I am
totally unable to do this.
You don't know enough until you are done.

Estimation & 'Story Points'


A User Story is assigned 'Story Points'.
A measure of size and complexity *relative
to other stories in the backlog*
Takes some practice as a team

Estimation & 'Story Points'


In Sprint Planning meeting, team estimates effort
for the stories in the backlog.
Product Owner needs these estimates, so they
can prioritize the backlog.

Estimation & 'Story Points'


Common pointing schemes
T-shirt sizes (XS, S, M, L, XL, XXL, XXXL)
Fibonacci sequence (1, 2, 3, 5, 8, 13, 21, )
A story at 4 points is 2x a story at 2 points

Tasks & Acceptance Criteria


Tasks are the implementation steps
As a job seeker I can limit who sees my resume so
that I have privacy
Add new column in resumes table for the visibility
of a resume
Add a drop down to the UI that allows the user to
select the visibility
Add authorization check in search results

Tasks & Acceptance Criteria


Acceptance Criteria are the tests
As a job seeker I can limit who sees my resume so
that I have privacy
Search for a private resume yields no results
Search for a public resume shows the resume

Are these good User Stories?

As a system, I will use Log4J to log all error


messages so that the system can be debugged
easily.
As a user, I want to be prompted to save every 15
minutes while editing my resume so that I don't lose
any work.

As a user, I want to be able to message job seekers

As a visiting user I can search for jobs by location,


salary and title.

Why User Stories?


They emphasize regular communication
(not 'throw it over the fence' development)

Why User Stories?


They emphasize regular communication
(not 'throw it over the fence' development)
They are understandable to developers and
normies

Why User Stories?


They emphasize regular communication
(not 'throw it over the fence' development)
They are understandable to developers and
normies
They defer understanding until the last
moment. Therefore optimized for change.

Why User Stories?


They emphasize regular communication
(not 'throw it over the fence' development)
They are understandable to developers
and normies
They defer understanding until the last
moment. Therefore optimized for change.
They are the right style for iterative
development.

User Story Lifecycle


Usually backlog is populated during a Story
Writing Workshop
At Sprint Planning, the backlog is reviewed and
points are assigned.
During and after Sprint Planning 'tasks' and
'acceptance criteria' are created.
Stories are completed during Sprint and marked
as 'Resolved'.

Das könnte Ihnen auch gefallen