Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

User Stories

6 848 vues

Publié le

This presentation provides the who, what, why, how, and when for user stories. It shows you examples of good and bad stories, how to get them in the first place, and how they define done on agile projects.

Publié dans : Technologie

User Stories

  1. 1. User Stories <ul><li>Robert Dempsey </li></ul>
  2. 2. Robert Dempsey <ul><li>CEO of Atlantic Dominion Solutions </li></ul><ul><li>Certified ScrumMaster </li></ul><ul><li>Developer </li></ul><ul><li>Student </li></ul><ul><li>Husband and Father </li></ul>
  3. 3. User Stories: A First Glance
  4. 4. “ represent customer requirements rather than document them.” - Rachel Davies “reminders to have a conversation rather than fully detailed requirements” - Mike Cohn
  5. 5. What’s in a story? <ul><li>Written description of the story </li></ul><ul><li>Conversations that provide details </li></ul><ul><li>Tests that define “done” </li></ul>
  6. 6. A Good Example <ul><li>A user can add his picture to his profile. </li></ul>
  7. 7. A Bad Example <ul><li>The application will be built using Java. </li></ul>
  8. 8. Where’s the beef? <ul><li>Write more user stories </li></ul><ul><li>1/2 day to 2 weeks coding/testing for 1-2 developers </li></ul><ul><li>Stay away from epics </li></ul>
  9. 9. Our Social Network <ul><li>A user can manage his profile </li></ul><ul><li>A user can connect with other users </li></ul>
  10. 10. “ ...connect with other users” <ul><li>A user can create a group </li></ul><ul><li>A user can friend other users </li></ul><ul><li>A user can start discussions </li></ul>
  11. 11. Break em’ down, but... <ul><li>Don’t get too detailed </li></ul><ul><li>A user can create a group </li></ul><ul><ul><li>A group can have a name </li></ul></ul><ul><ul><li>A group can have a description </li></ul></ul><ul><ul><li>A group can have members </li></ul></ul>
  12. 12. Who say’s I’m done? <ul><li>Acceptance criteria </li></ul><ul><ul><li>Test with a blank name </li></ul></ul><ul><ul><li>Test with names of varying lengths </li></ul></ul><ul><ul><li>Test with adding a picture </li></ul></ul>
  13. 13. Where do they come from? <ul><li>The customer writes the user stories </li></ul><ul><li>Story writing workshops </li></ul><ul><li>Written at any time during the project </li></ul>
  14. 14. Where do they go? <ul><li>Releases </li></ul><ul><ul><li>Iterations </li></ul></ul><ul><ul><ul><li>User Stories </li></ul></ul></ul>
  15. 15. And why do I want these? <ul><li>Emphasize verbal communication </li></ul><ul><li>Understood by suits and techies </li></ul><ul><li>Defers decisions and details </li></ul><ul><li>Work with iterative development </li></ul>
  16. 16. Spinning Tales
  17. 17. INVEST in your stories <ul><li>Independent </li></ul><ul><li>Negotiable </li></ul><ul><li>Valuable to users or customers </li></ul><ul><li>Estimatable </li></ul><ul><li>Small </li></ul><ul><li>Testable </li></ul>* Extreme programming and Refactoring workbook , BILL WAKE (2003)
  18. 18. Independent <ul><li>Avoid dependencies </li></ul><ul><ul><li>Combine stories </li></ul></ul><ul><ul><li>Split the stories differently </li></ul></ul>
  19. 19. Negotiable <ul><li>Stories are not written contracts </li></ul><ul><li>Just the right amount of detail </li></ul><ul><li>Pick up the conversation where it left off </li></ul><ul><li>Details become tests </li></ul>
  20. 20. Valuable <ul><li>Users vs. Purchasers </li></ul><ul><li>Avoid stories that </li></ul><ul><ul><li>Only developers value </li></ul></ul><ul><ul><li>Focus on technologies </li></ul></ul><ul><ul><li>Contain UI assumptions </li></ul></ul><ul><li>Customers write user stories </li></ul>
  21. 21. Estimatable <ul><li>Roadblocks </li></ul><ul><ul><li>Lack of domain knowledge </li></ul></ul><ul><ul><li>Lack of technical knowledge </li></ul></ul><ul><ul><li>Epics </li></ul></ul><ul><li>Spike </li></ul><ul><ul><li>Time-boxed story for researching </li></ul></ul>
  22. 22. Small <ul><li>“ Story size does matter.” </li></ul><ul><li>Split the biggies (epics) </li></ul><ul><ul><li>Compound vs. Complex </li></ul></ul><ul><ul><li>Put the spike to a separate iteration </li></ul></ul><ul><li>Combine the smallies </li></ul>
  23. 23. Testable <ul><li>Tests define done </li></ul><ul><li>Nonfunctional requirements lead to untestable stories </li></ul><ul><li>Automate your tests </li></ul><ul><li>Not all tests can be automated </li></ul>
  24. 24. Modeling (User Roles)
  25. 25. Who wants some? <ul><li>User role </li></ul><ul><ul><li>“ Collection of defining attributes that characterize a population of users and their intended interactions with the system.” </li></ul></ul>
  26. 26. Examples <ul><li>Software developer </li></ul><ul><li>Designer </li></ul><ul><li>Marketer </li></ul><ul><li>Recruiter </li></ul>
  27. 27. Modeling Process <ul><li>Brainstorm </li></ul><ul><li>Organize </li></ul><ul><li>Consolidate </li></ul><ul><li>Refine </li></ul>
  28. 28. Organize Undergrad Senior developer Junior developer UI designer DB Admin Monitor Marketer Recruiter Networker Admin
  29. 29. Consolidate Member External Recruiter Recruiter Internal Recruiter Admin Senior developer Junior developer UI designer DB Admin
  30. 30. Refine User Role: Recruiter Not very tech-saavy but highly adept at using the Web for research. Will mainly use the site to search for potential job candidates.
  31. 31. Hunt and Gather
  32. 32. Gathering Techniques <ul><li>User interviews* </li></ul><ul><li>Questionnaires </li></ul><ul><li>Observation </li></ul><ul><li>Story-writing workshops </li></ul>
  33. 33. Prototype Home Page Latest Activity Members Forum Sign up Signup fields User Login Account info Search Members Search fields Forums List forums Search Results List of matching members Post Events Event fields
  34. 34. User Stories <ul><li>A Recruiter can search for members </li></ul><ul><li>A Recruiter can view results of a member search </li></ul><ul><li>A Member can post to the forums </li></ul><ul><li>A Member can create an event </li></ul>
  35. 35. User Proxies
  36. 36. User Proxies <ul><li>The users’ manager </li></ul><ul><li>A development manager </li></ul><ul><li>Salespersons </li></ul><ul><li>Domain experts </li></ul><ul><li>The marketing group </li></ul><ul><li>Former users </li></ul><ul><li>Customers </li></ul><ul><li>Trainers and tech support </li></ul><ul><li>Business/Systems analysts </li></ul>
  37. 37. Acceptance Tests
  38. 38. Acceptance Testing <ul><li>Details = tests </li></ul><ul><li>Write tests before coding </li></ul><ul><li>Have the customer write the tests </li></ul><ul><li>Tests should add value and clarification </li></ul><ul><li>Automate, automate, automate </li></ul><ul><li>UI, usability, performance, stress </li></ul>
  39. 39. Guidelines
  40. 40. Guidelines <ul><li>Start with goal stories </li></ul><ul><li>Slice the cake </li></ul><ul><li>Write closed stories </li></ul><ul><li>Put constraints on cards </li></ul><ul><li>Size the story to the horizon </li></ul><ul><li>Keep the UI out as long as possible </li></ul><ul><li>Some things aren’t stories </li></ul>*User stories applied for agile software development , MIKE COHN (2004)
  41. 41. Guidelines <ul><li>Include user roles in the stories </li></ul><ul><li>Write for one user </li></ul><ul><li>Write in active voice </li></ul><ul><li>Customer writes </li></ul><ul><li>Don’t number story cards </li></ul><ul><li>Don’t forget the purpose </li></ul>*User stories applied for agile software development , MIKE COHN (2004)
  42. 42. Resources
  43. 43. Resources <ul><li>Story Writing Workshop: agiledevelopmentwithscrum.com </li></ul>
  44. 44. Contact Rob <ul><li>http://adsdevshop.com </li></ul><ul><li>http://blog.adsdevshop.com </li></ul><ul><li>http://twitter.com/rdempsey </li></ul><ul><li>http://linkedin.com/in/robertwdempsey </li></ul><ul><li>http://agiledevelopmentwithscrum.com </li></ul>
  45. 45. Thank you