User stories writing - Codemotion 2013
-
Upload
stefano-leli -
Category
Technology
-
view
790 -
download
0
description
Transcript of User stories writing - Codemotion 2013
![Page 2: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/2.jpg)
What were they thinking?
Product owner
Team
![Page 3: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/3.jpg)
What were they thinking?
• Chose a product owner for each team • Product owners may only communicate with the
team through imperatives (“it must have/do...”) or similes (“it’s like...”)
• Cannot use the name of the thing in a sentence (“it must pour tea” for a teapot is not allowed)
• Teams cannot ask questions • Teams have 2 minutes to draw the object seen
by the PO
![Page 4: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/4.jpg)
![Page 5: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/5.jpg)
![Page 6: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/6.jpg)
![Page 7: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/7.jpg)
![Page 8: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/8.jpg)
Star Trike
![Page 9: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/9.jpg)
Moto RV
![Page 10: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/10.jpg)
![Page 11: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/11.jpg)
User Story Writing Fabio Armani, Stefano Leli
What is a "User Story”
![Page 12: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/12.jpg)
User Story: is
• A User Story is a very high-level definition of a requirement, containing just enough information so that the developers can produce a reasonable estimate of the effort to implement it.
• A User Story is a proposed solution from a user’s perspective.
• User Stories have Acceptance Criteria (or Conditions of Satisfaction) and Validations.
![Page 13: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/13.jpg)
User Story
• The user story also serves as a metaphor for our entire, incremental-value-delivery approach, i.e.: – define a valuable user value story – implement and test it in a short iteration – demonstrate/and or deliver it to the user – capture feedback – validate it from a business perspective – learn – repeat forever!
![Page 14: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/14.jpg)
User Story
• The user story can describe: – Features – Non-Functional Requirements – Bug Fixes
• It is the primary development artifact in XP/Agile development methodology
• High level requirements document • Focuses on Who, What and Why of a feature
and not How
![Page 15: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/15.jpg)
What a "User Story" is not
![Page 16: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/16.jpg)
User Story: is not
• It is not a use case or a software requirement, i.e. a formal and long specification document
• One of the biggest misunderstandings with user stories is how they differ from traditional requirements specifications
![Page 17: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/17.jpg)
![Page 18: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/18.jpg)
![Page 19: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/19.jpg)
User Role: modeling • User Roles
– Various types of users
• Role Modeling – Brain storming – Organizing – Consolidating – Refining
• Personas – Imaginary representation of an User Role – Could use pictures too
• Extreme Characters
![Page 20: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/20.jpg)
User
UX
BA
SM PO
Dev
Tester
![Page 21: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/21.jpg)
User Stories: gathering • User Interviews
– Select right interviewees – Ask open-ended, context-free questions
• Questionaries – Best if there is a large user population – When you need answers to specific questions
• Observation – Best for In-House developments
• Story writing Workshops – Effective during the initial phase of the project / release
![Page 22: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/22.jpg)
Coin Sorting
How long will it take to sort this bag of coins?
![Page 23: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/23.jpg)
![Page 24: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/24.jpg)
3 C Card, conversation & confirmation
![Page 25: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/25.jpg)
![Page 26: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/26.jpg)
![Page 27: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/27.jpg)
user stories need to be short and
concise enough so that they can fit
on a single card
![Page 28: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/28.jpg)
![Page 29: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/29.jpg)
![Page 30: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/30.jpg)
the conversation is much much
more important than the story itself
![Page 31: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/31.jpg)
![Page 32: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/32.jpg)
![Page 33: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/33.jpg)
by definition, user stories must be
testable
![Page 34: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/34.jpg)
A User Story should cut throughout all the layers of the architecture
![Page 35: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/35.jpg)
Initial User Stories (informal)
![Page 36: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/36.jpg)
Example User Stories Students can purchase monthly parking passes online.
Parking passes can be paid via credit cards.
Parking passes can be paid via PayPal ™.
Professors can input student marks.
Students can obtain their current seminar schedule.
Students can order official transcripts.
Students can only enroll in seminars for which they have prerequisites.
Transcripts will be available online via a standard browser.
![Page 37: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/37.jpg)
Students can purchase monthly
parking passes online
#52
Priority: 8 Estimate: 4
![Page 38: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/38.jpg)
Initial User Stories (formal)
![Page 39: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/39.jpg)
User Story Title As a <user role> I want to <goal> so that I can achieve some <benefit>.
#
![Page 40: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/40.jpg)
Purchase Monthly Parking Pass As a student I want to purchase an online monthly parking pass so that I can drive to school.
#52
![Page 41: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/41.jpg)
Purchase Monthly Parking Pass As a student I want to purchase an online monthly parking pass so that I can drive to school.
Priority: Must Estimate: 5
#52
![Page 42: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/42.jpg)
Find Reviews Near Address
As a typical user I want to see unbiased
reviews of a restaurant near an address
so that I can decide where to go for
dinner.
#97
Priority: Must Estimate: 8
![Page 43: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/43.jpg)
Find Reviews Near Address
As a typical user I want to see unbiased
reviews of a restaurant near an address
so that I can decide where to go for
dinner.
#97
Priority: Should Estimate: 5
![Page 44: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/44.jpg)
![Page 45: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/45.jpg)
what makes a good story
Bill Wakefield is credited with this acronym
![Page 46: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/46.jpg)
INVEST in User Stories
• Independent – Avoid dependencies with other stories – Write stories to establish foundation – Combine stories if possible to deliver in a single iteration
• Negotiable – Stories are not a contract – Too much detail up front gives the impression that more discussion on
the story is not necessary – Not every story must be negotiable, constraints may exist that prevent
it
• Valuable – Each story should show value to the Users, Customers, and
Stakeholders
![Page 47: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/47.jpg)
INVEST in User Stories • Estimable
– Enough detail should be listed to allow the team to estimate – The team will encounter problems estimating if the story is too big, if
insufficient information is provided, or if there is a lack of domain knowledge
• Sized Appropriately – Each story should be small enough to be completed in a single iteration – Stories that may be worked on in the near future should be smaller and
more detailed – Larger stories are acceptable if planned further out (Epics)
• Testable – Acceptance criteria should be stated in customer terms – Tests should be automated whenever possible – All team members should demand clear acceptance criteria
![Page 48: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/48.jpg)
Independent
![Page 49: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/49.jpg)
Independent
![Page 50: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/50.jpg)
![Page 51: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/51.jpg)
(Hands-On)
![Page 52: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/52.jpg)
3DUWHFLSDQWL3DUWHFLSDQWL3DUWHFLSDQWL3DUWHFLSDQWL 5HJLVWUD]LRQH
6SHDNHU6SHDNHU6SHDNHU6SHDNHU %LRJUDILD
6HVVLRQL�3URSRVWH
2UJDQL]]DWRUL2UJDQL]]DWRUL2UJDQL]]DWRUL2UJDQL]]DWRUL 5HJLVWUD]LRQH6HUYL]L6HUYL]L6HUYL]L6HUYL]L3UHQRWD]LRQH%LJOLHWWL&RQIHUHQ]D
$FTXLVWR3DJDPHQWR
)DWWXUD]LRQH
&�3&�3&�3&�3$SHUWXUD
&KLXVXUD
L&RQIL&RQIL&RQIL&RQI
![Page 53: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/53.jpg)
Acceptance Criteria
• Acceptance criteria define the boundaries of a user story, and are used to confirm when a story is completed and working as intended.
![Page 54: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/54.jpg)
Acceptance Criteria
• AC represent high-level criteria from the perspective of the user or stakeholder.
• It’s important to consider Positive and Negative criteria.
• The PO should collaborate with testers to create good Acceptance Criteria (Conditions of Satisfactions).
![Page 55: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/55.jpg)
Upload Files AS A wiki user I WANT to upload a file to
the wiki SO THAT I can share it with my
colleagues
#73
![Page 56: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/56.jpg)
Conditions of Satisfactions
Verify with .txt and .doc files Verify with .jpg, .gif and .png files Verify with .mp4 files <= 1 GB Verify no DRM-restricted files
![Page 57: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/57.jpg)
View Attachments in Messages AS A user viewing messages that contain more than simple text
I WANT to be able to open them and see the contents
SO THAT I can view the additional information and understand the message fully
#85
![Page 58: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/58.jpg)
Acceptance Criteria
As a conference attendee, I want to be able to register online, so I can register quickly and cut down on
paperwork.
Acceptance Criteria: 1. A user cannot submit a form without completing all the mandatory
fields 2. Information from the form is stored in the registrations database 3. Protection against spam is working 4. Payment can be made via credit card 5. An acknowledgment email is sent to the user after submitting the
form.
![Page 59: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/59.jpg)
Acceptance Criteria
As a conference organizer, I want to send a ticket via email at the end of the online registration so that I can
speed up the check-in process. Acceptance Criteria: 1. The attendee must be inform that he will receive an email with an
electronic ticket 2. The email has been sent correctly 3. The electronic ticket must have a QR code 4. The QR code must be readable by a smartphone camera
![Page 60: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/60.jpg)
Give-When-Then
• Given-When-Then is a useful format for expressing testable acceptance criteria
• Created by Dan North
Given <context> When <action>
Then <expected result>
![Page 61: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/61.jpg)
Feature
A user can view attachments, links, images and stories contained within
messages
![Page 62: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/62.jpg)
View Attachments in Messages AS A user viewing messages that contain more than simple text
I WANT to be able to open them and see the contents
SO THAT I can view the additional information and understand the message fully
#39
![Page 63: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/63.jpg)
Acceptance Criteria
As a user I want to open the attachments contained in an email so that I can view the additional information and
fully understand the message.
Acceptance Criteria: 1. The user opens a message that contains a file attachment or story 2. The user opens a message that contains a link 3. The user opens a message that contains an image
![Page 64: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/64.jpg)
Acceptance Criteria
View Attachments in Messages
Acceptance Criteria: Scenario: The user opens a message that contains a file attachment or story GIVEN the message contains a file attachment or story WHEN I click the message link to open the message THEN the message opens and shows the attached file or story
![Page 65: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/65.jpg)
Acceptance Criteria
View Attachments in Messages
Acceptance Criteria: Scenario: The user opens a message that contains a link GIVEN the message contains a link WHEN I click the message link to open the message THEN the message opens and shows the link as an active hyperlink
![Page 66: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/66.jpg)
Acceptance Criteria
View Attachments in Messages
Acceptance Criteria: Scenario: The user opens a message that contains a file attachment or story GIVEN the message contains a file attachment or story WHEN I click the message link to open the message THEN the message opens and shows the attached file or story
![Page 67: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/67.jpg)
Acceptance Criteria
View Attachments in Messages
Acceptance Criteria: Scenario: The user opens a message that contains an image GIVEN the message contains an image attachment WHEN I click the message link to open the message AND hover my mouse of the image file posted in the message THEN the image can be viewed as a thumbnail
![Page 68: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/68.jpg)
Pros & Cons ü Short and Easy to modify as in when requirements
changes ü Allow projects to be broken into small increments ü Easier to estimate the development effort ü Completed User stories can go for development ü It drives the creation of Acceptance tests û Initial learning curve û They require close customer contact û Rely more on competent developers
![Page 69: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/69.jpg)
User Stories Applied
• Mike Cohn
![Page 70: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/70.jpg)
User Story Writing Fabio Armani, Stefano Leli [email protected] - [email protected]
@sleli
@fabioarmani
![Page 71: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/71.jpg)
![Page 72: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/72.jpg)
![Page 73: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/73.jpg)
Epics
• Epics are large user stories, typically ones which are too big to implement in a single iteration and therefore they need to be disaggregated into smaller user stories at some point.
![Page 74: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/74.jpg)
Preference Training Epic As a typical user I want to train the system on what
types of product and service reviews I prefer so it will
know what characteristics to use when filtering
reviews on my behalf
![Page 75: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/75.jpg)
![Page 76: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/76.jpg)
![Page 77: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/77.jpg)
![Page 78: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/78.jpg)
![Page 79: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/79.jpg)
Themes
• A theme is a collection of related user stories. • For example, for a university registration system
there might be themes around students, course management, transcript generation, grade administration, financial processing.
• Themes are often used to organize stories into releases or to organize them so that various sub-teams can work on them.
![Page 80: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/80.jpg)
Keywords Training Theme As a typical user I want to train the system on what
keywords to use when filtering reviews so I can filter
by words that are important to me
![Page 81: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/81.jpg)
From Features to Tasks
Epic
Feature
Story
![Page 82: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/82.jpg)
Managing Epics • Epics are too large to estimate and can be split into
multiple stories • Epics represents
– Complex functionality – Placeholders for low priority stories
• Types of Epics – Compound Stories – Complex Stories
• Different ways to split Epics – Various small actions in the Epic – Along the boundaries of Data – Depending on complexity
![Page 83: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/83.jpg)
Managing Tiny Stories • Tiny stories are too short • Its better to
– Combine multiple tiny stories – Group them into Themes
![Page 84: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/84.jpg)
Creating User Stories • Sequentially numbered • Customer Focused
– Written from a User's perspective – Better if written by the user – Avoid technical jargons
• Shouldn't be too short nor too long • Should be complete and testable • Should be able to implement by two people in a single
iteration • Avoid infrastructure, technology or service elements
![Page 85: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/85.jpg)
![Page 86: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/86.jpg)
Talking to Users
• Ask open ended questions – closed = “Yes or No” – open = “What would you be willing to trade for performance?”
• Give user options (“This one or that one?”)
![Page 87: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/87.jpg)
Story Writing
Story writing with your customer: • Low fidelity prototypes to get the main flows • Get breadth first • Use user roles / personas to help identify missing stories • Compare against competing products
![Page 88: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/88.jpg)
Decomposing Stories • Compound Stories
– a number of smaller stories / scenarios – split into meaningful chunks
• Complex Stories – if it’s largely unknown, consider a spike – try find ‘natural’ seams in the story
• Combining stories – stories should be about 2 days work – if too small combine e.g. bugs into one story
![Page 89: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/89.jpg)
Splitting Stories
![Page 90: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/90.jpg)
Splitting Stories • Patterns for splitting stories:
– Workflow steps – Business rule variations – Major / Minor effort – Simple / Complex – Variations in available data – Data entry methods – Defer performance – Operations (e.g. create / update / delete) – Spike
![Page 91: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/91.jpg)
(Hands-On)
![Page 92: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/92.jpg)
3DUWHFLSDQWL3DUWHFLSDQWL3DUWHFLSDQWL3DUWHFLSDQWL 5HJLVWUD]LRQH
6SHDNHU6SHDNHU6SHDNHU6SHDNHU 6HVVLRQL�3URSRVWH
%LRJUDILD
2UJDQL]]DWRUL2UJDQL]]DWRUL2UJDQL]]DWRUL2UJDQL]]DWRUL 5HJLVWUD]LRQH
6HUYL]L6HUYL]L6HUYL]L6HUYL]L
3UHQRWD]LRQH
%LJOLHWWL&RQIHUHQ]D
:RUNVKRS
&XPXODWLYR
6HUYL]L�$FFHVVRUL3UDQ]R
+RWHO
0DJOLHWWD�*DGJHW
$FTXLVWR
3DJDPHQWR
)DWWXUD]LRQH
6FRQWL
6WXGHQWH
*UXSSL
&RXSRQ
7ZLWWHU
3RVW�9HQGLWD6SHGL]LRQH�%LJOLHWWL
0RGLILFD�&DQFHOOD]LRQH
&�3&�3&�3&�3
$SHUWXUD
*HVWLRQH�3URSRVDO,QYLR��6SHDNHU�
&RQVXOWD]LRQH��2UJDQL]]DWRUL�
&KLXVXUD
L&RQIL&RQIL&RQIL&RQI
![Page 93: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/93.jpg)
Technical Stories
![Page 94: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/94.jpg)
Technical Stories • Adding CI, optimizing DB, upgrade to latest Oracle, etc.
– Consider trying to write a user story so that you are forced to define the business value
• No user facing functionality, e.g. Rating engine consumes some output – Consider writing as a user story with the engine as the user – e.g: As the rating engine, I want well formed CDR’s so that I can
minimize error logging
Don’t hurt yourself trying to force it; sometimes it’s OK not to use the format Be careful that these aren’t tasks that have been elevated to stories ...
![Page 95: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/95.jpg)
Story: smells
• Too small or too big • Estimates don’t converge • No scenarios / acceptance criteria • Interdependent • Gold-plating
![Page 96: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/96.jpg)
Story: more smells
• Too detailed • UI defined • Thinking too far ahead • Splitting too frequently • Trouble prioritising • Technical language
![Page 97: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/97.jpg)
Pros & Cons ü Short and Easy to modify as in when requirements
changes ü Allow projects to be broken into small increments ü Easier to estimate the development effort ü Completed User stories can go for development ü It drives the creation of Acceptance tests û Initial learning curve û They require close customer contact û Rely more on competent developers
![Page 98: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/98.jpg)
User Stories Applied
• Mike Cohn
![Page 99: User stories writing - Codemotion 2013](https://reader034.fdocuments.in/reader034/viewer/2022051513/54649daeaf795950608b4d7a/html5/thumbnails/99.jpg)
User Story Writing Fabio Armani, Stefano Leli [email protected] - [email protected]
@sleli
@fabioarmani