Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
User Story
Smells & Anti-patterns
By Fadi Stephan
@FADISTEPHAN @EXCELLACO
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
Which Line is Most Important?
As we wait for the session
to start, meet your
neighbors and discuss
which part of the user story
is most important?
– Who?
– What?
– Why?
– Acceptance Criteria?
As a [role/who],
I want [feature/what]
so that [value/why]
User Story Smells & Anti-patterns
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
• Software Development Practice
Lead at Excella Consulting
• Certified Scrum Trainer and Agile
Coach
• Founder of the DC Software
Craftsmanship User Group
• Organizer of the DC Scrum User
Group
@FadiStephan
Fadi Stephan
User Story Smells & Anti-patterns
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
Simple, clear, short description of
customer valued functionality.
3 C’s: Card, Conversation, Confirmation.
Represents customer requirements.
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
As a [type of user], I can [goal] so that
[value]
Title:
Notes:
Assumptions:
Estimate:
Constraints:
Priority:
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
As a book shopper, I want to checkout using
my credit card so that I can purchase a
selected book.
Checkout Using Credit Card
Notes: Support mc, visa, amex
25
Constraint: Must use Chase payment service
13 pts
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
I can use mc, visa, amex
I cannot use expired cards
I can only use cards with valid cvv
I can only use cards with valid zip code
Checkout Using Credit Card
User Story Smells & Anti-patterns
Verbal Communication
User Story Smells & Anti-patterns
Right Size
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
Understandable
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
Iterative Development
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
Smells and Anti-patterns
@fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns
1. Forgetting about the
Conversation
@fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns
As a [type of user], I can [goal] so that
[reason]
Title:
Notes:
Assumptions:
Estimate:
Constraints:
Priority:
@fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns
As a [type of user], I can
[goal] so that [reason]
Title:
Notes:
Assumptions:
Estimate:Constraints:
Priority:
“Get smaller cards”
@fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns
As a [type of user], I can [goal] so
that [reason]
Title:
Notes:
Assumptions:
Estimate:Constraints:
Priority:
“Get smaller cards”
How do I
describe
what I want?
How do I
validate
that this
work is
done?
How do I
break this up
and sequence
my work?
What are the
details of
what I need
to code?
http://www.flickr.com/photos/improveit/1470706210/in/photostream
User Story Smells & Anti-patterns
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
2. Thinking that Everything has to
be a User Story
As a developer, I want to install Jenkins so
that I can enable continuous integration.
Upgrade Dev Environment
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
2. Thinking that Everything has to
be a User Story
As a team member, I need to go to
the restroom so that …
Take a Bio Break
Bugs
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
2. Thinking that Everything has to
be a user story
As a Product Owner, I want bug 1342 fixed
so that users can correctly edit their user
information without getting stuck
Fix bug 1342
User Role Modeling
http://www.flickr.com/photos/12426416@N00/163959411
@fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns
3. Thinking that a User Story has to
be Everything
• Excel spreadsheet with
business rules
• Wireframe
• Workflow diagram
• Design document
• Use cases
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
4. Skipping the Acceptance
Criteria
Checkout Using Credit Card
I can use mc, visa, amex
I cannot use expired cards
I can only use cards with valid cvv
I can only use cards with valid zip code
@fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns
5. Not Having A Definition of
Done
All Code
Checked-in
Unit Tests
Passing
Help Text
Updated
Acceptance
Criteria
Passing
Integration
Test Passing
Performance
Test Passing
With a Sprint
With a Release
Security
Audit
Passing
Regression
Test Passing
ContinuousImprovement
With a PBI
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
6. Taking on Stories that are
Too Big or Risky
http://www.flickr.com/photos/87857621@N00/191311751
@fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns
Too Big or Risky
http://www.flickr.com/photos/87857621@N00/191311751
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
7. Splitting Stories Incorrectly
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
S
l
i
c
e
s
V
e
r
t
i
c
a
l
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
Data Boundaries
http://www.flickr.com/photos/7762644@N04/2533281806
Operational Boundaries
Cross Cutting Concerns
http://www.flickr.com/photos/53611153@N00/303892944
Performance
http://www.flickr.com/photos/32165728
Compound
http://www.flickr.com/photos/41317431@N00/2579139642/
Priority
http://www.flickr.com/photos/15639842@N00/4182148160
Priority
@fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns
Great Resource By Richard Lawrence
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
8. Not Having a Definition of Ready
@fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns
9. Skipping Product Backlog Refinement
PBI
PBI
PBI
PBI
Add
Split
Reorder
Remove
High priority
to
next Sprint
Granularity
Fine
Coarse
Reorder
@fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns
Progressive Elaboration
Title
As A User…
UI Sketch
Detailed AC
Meets DoR
EPIC
Story
Story
Ready
Story
Ready
Story
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
Recap
1. Forgetting about the conversation
2. Thinking that everything is a user story
3. Thinking that a user story is everything
4. Skipping the Acceptance Criteria
5. Not having a Definition of Done
6. Taking on stories that are too big or risky
7. Splitting stories incorrectly
8. Not having a Definition of Ready
9. Skipping Product Backlog Refinement
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
Which Line is Most Important?
As we wait for the session
to start, meet your
neighbors and discuss
which part of the user story
is most important?
– Who?
– What?
– Why?
– Acceptance Criteria?
As a [role/who],
I want [feature/what]
so that [value/why]
@fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns
Questions?
User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
@fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns
References
• Agile Estimating and Planning, Mike Cohn
• User Stories Applied, Mike Cohn
• Mountain Goat Software:
http://www.mountaingoatsoftware.com
• Agile Product Design:
http://www.agileproductdesign.com
• http://agileforall.com/resources/how-to-
split-a-user-story/

More Related Content

User Story Smells & Anti-patterns

  • 1. User Story Smells & Anti-patterns By Fadi Stephan @FADISTEPHAN @EXCELLACO
  • 2. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com Which Line is Most Important? As we wait for the session to start, meet your neighbors and discuss which part of the user story is most important? – Who? – What? – Why? – Acceptance Criteria? As a [role/who], I want [feature/what] so that [value/why]
  • 4. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com • Software Development Practice Lead at Excella Consulting • Certified Scrum Trainer and Agile Coach • Founder of the DC Software Craftsmanship User Group • Organizer of the DC Scrum User Group @FadiStephan Fadi Stephan
  • 6. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com Simple, clear, short description of customer valued functionality. 3 C’s: Card, Conversation, Confirmation. Represents customer requirements.
  • 7. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com As a [type of user], I can [goal] so that [value] Title: Notes: Assumptions: Estimate: Constraints: Priority:
  • 8. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com As a book shopper, I want to checkout using my credit card so that I can purchase a selected book. Checkout Using Credit Card Notes: Support mc, visa, amex 25 Constraint: Must use Chase payment service 13 pts
  • 9. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com I can use mc, visa, amex I cannot use expired cards I can only use cards with valid cvv I can only use cards with valid zip code Checkout Using Credit Card
  • 14. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com Understandable
  • 15. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com Iterative Development
  • 16. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com Smells and Anti-patterns
  • 17. @fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns 1. Forgetting about the Conversation
  • 18. @fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns As a [type of user], I can [goal] so that [reason] Title: Notes: Assumptions: Estimate: Constraints: Priority:
  • 19. @fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns As a [type of user], I can [goal] so that [reason] Title: Notes: Assumptions: Estimate:Constraints: Priority: “Get smaller cards”
  • 20. @fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns As a [type of user], I can [goal] so that [reason] Title: Notes: Assumptions: Estimate:Constraints: Priority: “Get smaller cards”
  • 21. How do I describe what I want? How do I validate that this work is done? How do I break this up and sequence my work? What are the details of what I need to code? http://www.flickr.com/photos/improveit/1470706210/in/photostream
  • 23. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com 2. Thinking that Everything has to be a User Story As a developer, I want to install Jenkins so that I can enable continuous integration. Upgrade Dev Environment
  • 24. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com 2. Thinking that Everything has to be a User Story As a team member, I need to go to the restroom so that … Take a Bio Break
  • 25. Bugs
  • 26. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com 2. Thinking that Everything has to be a user story As a Product Owner, I want bug 1342 fixed so that users can correctly edit their user information without getting stuck Fix bug 1342
  • 28. @fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns 3. Thinking that a User Story has to be Everything • Excel spreadsheet with business rules • Wireframe • Workflow diagram • Design document • Use cases
  • 29. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com 4. Skipping the Acceptance Criteria Checkout Using Credit Card I can use mc, visa, amex I cannot use expired cards I can only use cards with valid cvv I can only use cards with valid zip code
  • 30. @fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns 5. Not Having A Definition of Done All Code Checked-in Unit Tests Passing Help Text Updated Acceptance Criteria Passing Integration Test Passing Performance Test Passing With a Sprint With a Release Security Audit Passing Regression Test Passing ContinuousImprovement With a PBI
  • 31. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com 6. Taking on Stories that are Too Big or Risky http://www.flickr.com/photos/87857621@N00/191311751
  • 32. @fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns Too Big or Risky http://www.flickr.com/photos/87857621@N00/191311751
  • 33. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com 7. Splitting Stories Incorrectly
  • 34. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com S l i c e s V e r t i c a l
  • 35. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com Data Boundaries http://www.flickr.com/photos/7762644@N04/2533281806
  • 41. @fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns Great Resource By Richard Lawrence
  • 42. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com 8. Not Having a Definition of Ready
  • 43. @fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns 9. Skipping Product Backlog Refinement PBI PBI PBI PBI Add Split Reorder Remove High priority to next Sprint Granularity Fine Coarse Reorder
  • 44. @fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns Progressive Elaboration Title As A User… UI Sketch Detailed AC Meets DoR EPIC Story Story Ready Story Ready Story
  • 45. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com Recap 1. Forgetting about the conversation 2. Thinking that everything is a user story 3. Thinking that a user story is everything 4. Skipping the Acceptance Criteria 5. Not having a Definition of Done 6. Taking on stories that are too big or risky 7. Splitting stories incorrectly 8. Not having a Definition of Ready 9. Skipping Product Backlog Refinement
  • 46. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com Which Line is Most Important? As we wait for the session to start, meet your neighbors and discuss which part of the user story is most important? – Who? – What? – Why? – Acceptance Criteria? As a [role/who], I want [feature/what] so that [value/why]
  • 47. @fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns Questions?
  • 48. User Story – Smells and Anti-patterns @fadistephan | @excellaco | excella.com
  • 49. @fadistephan | @excellaco | excella.comUser Story – Smells and Anti-patterns References • Agile Estimating and Planning, Mike Cohn • User Stories Applied, Mike Cohn • Mountain Goat Software: http://www.mountaingoatsoftware.com • Agile Product Design: http://www.agileproductdesign.com • http://agileforall.com/resources/how-to- split-a-user-story/