here - ryan_dorrell

advertisement
As an agilist, I
want to write great
user stories so
that...
Ryan Dorrell
@ryan_dorrell
08.27.2013
Tampa Bay Agile Meetup
Bio
•
CTO, co-founder, AgileThought (since 2004)
•
Started professional career developing using 16-bit VB4 on Win 3.1 at
Arthur Andersen in Sarasota, FL
•
Since then:
 OnSphere in Raleigh, NC (VB6, .NET, Java)
 PricewaterhouseCoopers in Tampa, FL (Java)
 Co-founded AgileThought in 2004 with David Romine, John Wagner
•
At AgileThought:
 Development, technical leadership, plus helping teams and organizations adopt
agile and ALM practices and processes
•
@ryan_dorrell
•
@agilethought
User Stories
A promise for
a future
conversation
Specifying in
writing
doesn’t work
well
Think about
requirements
differently
http://www.cakewrecks.com/
http://www.cakewrecks.com/
User Stories
A promise for
a future
conversation
Think about
requirements
differently
Specifying in
writing
doesn’t work
well
Shared
documents
aren’t shared
understanding
User Story Cadence
As a <role>, I want to <action>, so that <value>
Are user stories enough?
Card
As a <role>, I want to <action>, so
that <value>
Conversation
Confirmation
As a <role>, I want to <action>, so
that <value>
What about use cases?
A user story is
to a use
case…
…is as a
gazelle is to a
gazebo.
Live by INVEST
INDEPENDENT
NEGOTIABLE
VALUABLE
ESTIMABLE
SMALL
TESTABLE
User story anti-patterns
Too large
Too technical
Actually just
a task
UI-focused
Not userfocused
Describes
implementation
Decomposition strategies
By Operation
By User
Interface
Model
By Workflow
Steps
By Data
Entry Method
By Persona
Split out
spikes
Examples
As a user, I want to
view my dashboard
page
As a customer svc
rep, I want to
manage a
customer’s account
As a product owner,
I want the password
to have complexity
requirements
As a developer, I
want to refactor the
database connection
code
Acceptance Criteria
Can include:
PO expectations on
what will be
delivered
Functionality,
look/feel, nonfunctional
expectations
Given…
When….
Then…
Automation tool
support exists
Acceptance Criteria Examples
Given an Existing Promo Code,
When it saved,
Then the following rules are applied:
Ref
1
Field
Promo Code
2
Promo Code
3
Promo Code
4
Promo Code
Rules
The promo code, itself cannot be altered during
the time between the Promo Start Date and
Promo End Date.
Allow the start date of the promo to be modified
if the current date is <the start date (i.e. if the
promo code is not yet active, the start date can be
changed)
All promo codes can only be used once and
cannot be reused for another promotion.
The Total Limit of a promo code for a particular
promotion can be modified if the Current Date
<End Date.
Acceptance Criteria Examples
As a mobile app user I want to accept the EULA just
once when I log into the mobile app so that I’m legally
in agreement with the company.
Given when a user logins for the first time
When they have never accepted the EULA before
Then prompt to read the EULA and click Accept or Decline
If user clicks Decline Then logout the user and return to login page
If user clicks Accept continue on
Also check for the version # of the EULA - if later, get text for latest
version and display with accept/decline
Since more than 1 user can use a device, track if the EULA has been
seen by each user on each device
Acceptance Criteria Examples
Group by individual drugs. Sort the ones
with problems to the top, then alphabetical
order by the "written as" field. Display the
"filled as" field also below the "written as"
field. Tapping the drug name should take
them to the prescription details
screen. Select/tap to drop-down the
different sections.
As a mobile app user I want to view my current
medications so that I can be informed of duplicate
therapy conflicts.
Lo-fi mockup:
[Text block at top indicating what to do]
<!> Drug1 <downarrow>
Filled as: Drug1a
Duplicate
Drug 2
Filled as: Drug2a
Drug 4
Filled as: Drug4a
<!> Drug 2 <downarrow>
Filled as: Drug2a
Duplicate
Drug 1
<!> Drug 4 <downarrow>
Duplicate
Drug 1
Parting words
Work to split stories
to the smallest
consumable portion.
Think Asteroids.
Groom often and
with vigor.
Don’t get hung up
on making a story
absolutely perfect.
Focus on the
conversation.
Thank you!
Download