The document discusses common smells and anti-patterns related to user stories. It identifies 9 major issues: 1) forgetting about conversation, 2) thinking everything needs to be a user story, 3) thinking a user story needs to include everything, 4) skipping 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, and 9) skipping product backlog refinement. Examples are provided for each issue.
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
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]