Post on 02-Apr-2015
transcript
As an agilist, I want to write great user stories so that...Ryan Dorrell
@ryan_dorrell
08.27.2013
Tampa Bay Agile Meetup
• 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
Bio
User Stories
A promise for a future
conversation
Think about requirements
differently
Specifying in writing
doesn’t work well
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 Conversation Confirmation
As a <role>, I want to <action>, so that
<value>
As a <role>, I want to <action>, so that
<value>
1. Item
2. 2ITe
3. Item
4. Item
5. Item
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
ESTIMABLE SMALL
VALUABLE
TESTABLE
User story anti-patterns
Too large Too technical
UI-focused Not user-focused
Actually just a task
Describes implementatio
n
Decomposition strategies
By OperationBy User Interface
Model
By Data Entry Method By Persona
By Workflow Steps
Split out spikes
Examples
As a user, I want to view my
dashboard page
As a product owner, I want the password to have
complexity requirements
As a customer svc
rep, I want to
manage a
customer’s account
As a developer, I
want to refactor
the database
connection code
Acceptance Criteria
PO expectations on what will be
delivered
Can include:
Functionality, look/feel, non-
functional expectations
Given…
When….
Then…
Automation tool
support exists
Acceptance Criteria Examples
Ref Field Rules1 Promo Code The promo code, itself cannot be
altered during the time between the Promo Start Date and Promo End Date.
2 Promo Code 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)
3 Promo Code All promo codes can only be used once and cannot be reused for another promotion.
4 Promo Code The Total Limit of a promo code for a particular promotion can be modified if the Current Date <End Date.
Given an Existing Promo Code,When it saved,Then the following rules are applied:
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 timeWhen they have never accepted the EULA beforeThen prompt to read the EULA and click Accept or Decline If user clicks Decline Then logout the user and return to login pageIf 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
As a mobile app user I want to view my current medications so that I can be informed of duplicate therapy conflicts.
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. 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>DuplicateDrug 1
Parting words
Groom often and with vigor.
Don’t get hung up on making a story absolutely perfect.
Focus on the conversation.
Work to split stories to the smallest
consumable portion.
Think Asteroids.
Thank you!