User Stories<br />Agile Software Development<br />
Topics<br />Objectives<br />Brief History – Motivation<br />Process Overview<br />A User Story<br />Writing Stories<br />M...
Objectives<br />Discuss agile software development practices, with 30% focus on user stories<br />
Brief History - Motivation<br />
Brief History - Motivation<br />g * Software<br />Number of Feature<br />m*t<br /> where <br />t   is proportional to  n*R...
Process Overview<br />Daily Standup<br />Customer + Dev Team<br />Story Workshop, Conversations, etc<br />Customer Team<br...
A User Story<br />3 parts<br />Planning placeholder & reminder<br />Notes from conversations<br />Tests<br />Not system’s ...
User Story – Planning Placeholder & Reminder<br />Taskboard & Release/Sprint Planning<br />(VersionOne*)<br />Card Walls &...
Notes from conversations<br />E.g.<br />	Customer Service can search for orders so that they can quickly access the custom...
Tests<br />Conveys to developers additional information <br />Developers get an idea if they are done<br />Treat as specif...
Tests – Specification/Test Collaboration Framework<br />
Questions<br />What are the 3 parts of a user story?<br />
Writing Stories<br />Form and function<br />Attributes INVEST<br />Trawling<br />Stories Smell<br />
Writing User Stories - Form and function<br />The role, goal and motivation.<br />&lt;role’s&gt; wants to do &lt;goal&gt; ...
Writing User Stories - INVEST<br />E.g. of non-independent story :<br />Customer can pay for basket items using iPay88 pay...
Writing User Stories – INVEST <br />Too much detail such that the extra details is associated to extra precision – always ...
Writing User Stories - INVEST<br />Estimatable<br />3 reasons for wrong estimation<br />Story is too big<br />Developers l...
Split to
Experiment within a specific time with the objectives of estimation - Spikes
Story to do the actual work</li></li></ul><li>Writing User Stories - INVEST<br />
Writing User Stories - INVEST<br />
Writing User Stories - Responsibilities<br />Customer Team : Responsible for writing stories, keeping in mind INVEST<br />...
Writing User Stories - Trawling for Requirements<br />User stories workshop, interviews ( open ended and context free ques...
Writing User Stories - Trawling for Requirements<br />Higher Fidelity Prototype<br />Low Fidelity Prototype<br />Returns/E...
Story Smell Catalogues<br />Stories are too small<br />Interdependent Stories<br />Goldplating<br />Too many details<br />...
Questions<br />What does INVEST stands for?<br />Who constitute the Customer team?<br />What are the tools available for t...
Managing<br />
Managing - Planning<br />Too many variables, too far ahead and replanning with better information not planned for <br /> 7...
Managing – Planning.Estimating<br />Establish definition of story points<br />Velocity = (Story Points Completed)/Sprint<b...
Managing – Planning.Estimating<br />
Managing – Cost.Resource<br />Developers are not Codys<br />
Managing – Planning.Release<br />Two areas<br />Features/Stories<br />Prioritization : MoSCow<br />Time <br />Iteration Le...
Managing – Planning.Sprint<br />Discuss a stories<br />For each stories disaggregate into tasks<br />Small enough to be ac...
Managing - Controls<br />Release<br />Burndown charts – sprint (x-axis)<br />Sprint<br />Daily burndown charts – day (x-ax...
Managing - Rules of the Game<br />No changes to during a sprint<br />Customer stay involves all the time<br />
User Stories<br />Not<br />IEEE 830 <br />Use cases – sized to deliver business value, “level of detail”<br />Why<br />Emp...
Team Practices<br />Start off with simple design, but expect changes <br />Refactoring ( and consequently test ) is import...
Questions<br />What are the tools used in estimation?<br />What is done in Release Planning?<br />What are the tools used ...
The Journey<br />
The Journey - Build<br />
The Journey - Communication<br />
Summary<br />	You can’t do agile you just have to be agile<br />
Upcoming SlideShare
Loading in...5
×

Agile User Stories

4,775

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,775
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
202
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • Human’s capability to design without feedback is poor. Typically large upfront requirements and design will typically changeKey is to find that right balance – finding that balance differ from person to personIdea is start coding at the right time, so requirements can be
  • Customer team : Product Management, user ( if possible actual user ), testerCustomer PrioritiesDesirability from a broad base usersDesirability of the feature to a small number of important usersCohesiveness Developer PrioritiesTechnical riskCohesivenessStandupMeeting – think about a maximum of 3 things the team like to know about your work
  • Epic – very large stories with a large value for estimatesUser stories emphasize verbal rather than written communicationComprehensible by both you and the developersRight size for planningUser stories defer details until you have the best understanding about what you really need-> Stories can contain stories, just describe a large story and rip it up later splitting it to multiple stories
  • How much details is enough? The notes on the card is not important, it’s just to be a reminder, if you can remember don’t put it in.There are details that developers already think they know, it’s important that developer don’t assume – have the conversation and jot things down, don’t get too much detail, start coding first and get the feedback
  • Who:Customer teamWhen : During conversations between customer + developer and want to capture explicit detailsDedicated effort at the start of an iterationAfter programming of the storyWhat :-What else do the programmers need to know about this story-What am I assuming aout how this story will be implemented-What are the circumstances when this story may behave differently-What can go wrong during this storyFunctional in nature but possible to include ui flow, usability testing, performance testing, stress testingHow Needs to be automated – see fitnesseTesting for bugs not coverageAdd a test for each bug
  • Stories may not be independent initially, if
  • Issues, since there will be multiple gateway, the developer spend an upfront design and development for the base components and then provide the specific implementation and testing for each of the gateway
  • Epics fall into two types : Compound-split but retain cohesivenessComplex – pull research away from functionalityEg. complex algorithm, complex business process
  • Needs to be testable
  • Tools : Role ModelingCustomer Team
  • Constantly adjust plan to reflect the knowledge we gain from each iteration
  • Can be the 3 hours of solid work half dayCan be the ideal 8 hour work day, etc.Can be the 3 hours of solid work half day of two developers
  • Not every developer are the same – different backgroundsEstimating as a team levels outEveryone tries to complete as a team – prefers completing stories over starting new ones, Organization Development
  • Time Select iteration length Time to completePrioritizationBroadbase usersImportant usersCohesivenessCustomer Team Prioritizes with the help of the team
  • Personally I think upfront design is essential to be efficient, finding out the right balance is important – it should be allocated and the amount of time spend should be short – the longer the more complicated
  • Scenarios too much upfront details
  • What does test needs
  • Agile User Stories

    1. 1. User Stories<br />Agile Software Development<br />
    2. 2. Topics<br />Objectives<br />Brief History – Motivation<br />Process Overview<br />A User Story<br />Writing Stories<br />Managing<br />Development Practices<br />The Journey<br />Summary<br />
    3. 3. Objectives<br />Discuss agile software development practices, with 30% focus on user stories<br />
    4. 4. Brief History - Motivation<br />
    5. 5. Brief History - Motivation<br />g * Software<br />Number of Feature<br />m*t<br /> where <br />t is proportional to n*RequirementComplexity + b*DesignComplexity + Code + y*Feedback<br /><ul><li>– number of iteration</li></ul>t- iteration size<br />g – Measure of usefulness, goodness<br />
    6. 6. Process Overview<br />Daily Standup<br />Customer + Dev Team<br />Story Workshop, Conversations, etc<br />Customer Team<br />I-Meet<br />Customer + Dev Team<br />Prioritize stories, estimate velocity<br />R-Meet<br />Customer + Dev Team<br />Prioritize stories, estimate<br />
    7. 7. A User Story<br />3 parts<br />Planning placeholder & reminder<br />Notes from conversations<br />Tests<br />Not system’s point of view<br />
    8. 8. User Story – Planning Placeholder & Reminder<br />Taskboard & Release/Sprint Planning<br />(VersionOne*)<br />Card Walls & Release/Sprint Planning<br />(Mingle*)<br />*Mingle is a trademark of Thoughtworks<br />*VersionOne is a trademark of VersionOne<br />
    9. 9. Notes from conversations<br />E.g.<br /> Customer Service can search for orders so that they can quickly access the customer’s order when customer calls in to make changes to the delivery address<br />Notes : Zie says always show customer name, order reference number, order date. <br />
    10. 10. Tests<br />Conveys to developers additional information <br />Developers get an idea if they are done<br />Treat as specification<br />
    11. 11. Tests – Specification/Test Collaboration Framework<br />
    12. 12. Questions<br />What are the 3 parts of a user story?<br />
    13. 13. Writing Stories<br />Form and function<br />Attributes INVEST<br />Trawling<br />Stories Smell<br />
    14. 14. Writing User Stories - Form and function<br />The role, goal and motivation.<br />&lt;role’s&gt; wants to do &lt;goal&gt; because &lt;motivation&gt;<br />Example : As an account holder, I want to transfer funds between two of my accounts so that I can maximize the performance of my savings and avoid any fees associated with overdrafts and minimum balance rules.<br />
    15. 15. Writing User Stories - INVEST<br />E.g. of non-independent story :<br />Customer can pay for basket items using iPay88 payment gateway<br />Customer can pay for basket items using WorldPay payment gateway<br />Possible Solutions:<br />Combine both<br />If combining both is too large – split out the base work: <br />Customer can pay with one type of payment gateway<br />Customer can pay with two additional types of payment gateway<br />
    16. 16. Writing User Stories – INVEST <br />Too much detail such that the extra details is associated to extra precision – always negotiable<br />Valuable to Users<br />User easily understands : Test with Credit Card, Debit Card and Cheque<br />User cannot understand : Test that Payment table contains the authorization id for credit card<br />Acceptable to indicate non-functional requirements like : This feature is expected to be used by 200 users concurrently and at any one time 200 payment records can be shown quickly, may be in 2s.<br />
    17. 17. Writing User Stories - INVEST<br />Estimatable<br />3 reasons for wrong estimation<br />Story is too big<br />Developers lack domain knowledge<br />Developers lack technical knowledge<br /><ul><li>Large stories/epic simply a large value if not the focus other break it
    18. 18. Split to
    19. 19. Experiment within a specific time with the objectives of estimation - Spikes
    20. 20. Story to do the actual work</li></li></ul><li>Writing User Stories - INVEST<br />
    21. 21. Writing User Stories - INVEST<br />
    22. 22. Writing User Stories - Responsibilities<br />Customer Team : Responsible for writing stories, keeping in mind INVEST<br />Developer : Help customer write stories which lack details, do not assume and always have conversation but have it at the point when supporting information is available<br />
    23. 23. Writing User Stories - Trawling for Requirements<br />User stories workshop, interviews ( open ended and context free questions ) , observation & questionnaire<br />Role Modeling, Personas , Extreme characters<br />
    24. 24. Writing User Stories - Trawling for Requirements<br />Higher Fidelity Prototype<br />Low Fidelity Prototype<br />Returns/Exchange<br />Status<br />Delivery Input<br />Return Details<br />Refund Details<br />(Based on Payment)<br />
    25. 25. Story Smell Catalogues<br />Stories are too small<br />Interdependent Stories<br />Goldplating<br />Too many details<br />Including user interface details too soon<br />Thinking too far ahead<br />Splitting too many stories<br />Customer has trouble prioritizing<br />Customer won’t write and prioritize stories<br />
    26. 26. Questions<br />What does INVEST stands for?<br />Who constitute the Customer team?<br />What are the tools available for trawling for requirements?<br />
    27. 27. Managing<br />
    28. 28. Managing - Planning<br />Too many variables, too far ahead and replanning with better information not planned for <br /> 75% of all US IT projects are considered to be failures by those responsible for initiating them. <br />Half of the projects exceeded budget by 200%<br />31% of projects were cancelled outright <br />53% of the all projects was so worrying that they were challenged.<br />
    29. 29. Managing – Planning.Estimating<br />Establish definition of story points<br />Velocity = (Story Points Completed)/Sprint<br />Previous velocity can be used to estimate<br />Tools : <br />Estimating : Tasks, Triangulating with Card Wall, Planning Poker<br />
    30. 30. Managing – Planning.Estimating<br />
    31. 31. Managing – Cost.Resource<br />Developers are not Codys<br />
    32. 32. Managing – Planning.Release<br />Two areas<br />Features/Stories<br />Prioritization : MoSCow<br />Time <br />Iteration Length<br />Time to complete - Product Roadmap<br />Move from story points to expected duration<br />Product will be ready for release in approximately 5-7 iteration<br />
    33. 33. Managing – Planning.Sprint<br />Discuss a stories<br />For each stories disaggregate into tasks<br />Small enough to be accurate<br />Developer accepts responsibility for each task<br />Individually ensures estimate<br />What! No task for upfront design?<br />
    34. 34. Managing - Controls<br />Release<br />Burndown charts – sprint (x-axis)<br />Sprint<br />Daily burndown charts – day (x-axis)<br />Daily<br />NotStarted,InProgress,Completed - Cardwalls<br />Standup<br />
    35. 35. Managing - Rules of the Game<br />No changes to during a sprint<br />Customer stay involves all the time<br />
    36. 36. User Stories<br />Not<br />IEEE 830 <br />Use cases – sized to deliver business value, “level of detail”<br />Why<br />Emphasize of quick chat<br />Comprehensible by everyone<br />Right size for planning<br />Works for iterative development<br />Defer details to a right point in time<br />Support opportunistic design<br />Encourages participatory design<br />Build up tacit knowledge<br />Stories may not be good<br />ISO 9001 companies – Will have an issue with tear up stories <br />
    37. 37. Team Practices<br />Start off with simple design, but expect changes <br />Refactoring ( and consequently test ) is important<br />Test Automation is crucial<br />Architecture, UML, use cases and agile software development<br />Middle out<br />
    38. 38. Questions<br />What are the tools used in estimation?<br />What is done in Release Planning?<br />What are the tools used in Release Planning?<br />Completion vs Number of Stories Points – which is preferred?<br />Name the Team Practices.<br />How do you deal with unplanned tasks?<br />
    39. 39. The Journey<br />
    40. 40. The Journey - Build<br />
    41. 41. The Journey - Communication<br />
    42. 42. Summary<br /> You can’t do agile you just have to be agile<br />
    43. 43. Q&A<br />
    44. 44. Reference<br />User Stories Applied for Agile Software Development – Mike Cohn – Addison Wesley<br />http://www.thoughtworks.com/what-we-say/presentations/AgileMadeUsBetter.pdf<br />Behavior Driven Development - Scott Belware - http://www.code-magazine.com/articleprint.aspx?quickid=0805061&printmode=true<br />
    1. ¿Le ha llamado la atención una diapositiva en particular?

      Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.

    ×