Presentation on theme: "As an agilist, I want to write great user stories so that... Ryan 08.27.2013 Tampa Bay Agile Meetup."— Presentation 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
Are user stories enough? Card ConversationConfirmation As a, I want to, so that 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 INDEPENDENTNEGOTIABLE ESTIMABLESMALL VALUABLE TESTABLE
User story anti-patterns Too largeToo technical UI-focused Not user- focused Actually just a task Describes implementation
Decomposition strategies By Operation By 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 RefFieldRules 1Promo Code The promo code, itself cannot be altered during the time between the Promo Start Date and Promo End Date. 2Promo Code Allow the start date of the promo to be modified if the current date is
"name": "Acceptance Criteria Examples RefFieldRules 1Promo Code The promo code, itself cannot be altered during the time between the Promo Start Date and Promo End Date.",
"description": "2Promo Code Allow the start date of the promo to be modified if the current date is
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 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 Filled as: Drug1a Duplicate Drug 2 Filled as: Drug2a Drug 4 Filled as: Drug4a Drug 2 Filled as: Drug2a Duplicate Drug 1 Drug 4 Duplicate Drug 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.