-
Why use them?
- Making Tacit Knowledge more explicit
- Ubiquitous Language
- Rapid feedback cycles through verbal, "face-to-face" interaction
- Encourage deferring details until really needed
- Units of planning and delivery
-
3C Properties
- Card
- Conversation
- Confirmation
-
Acceptance Criteria
- Happy path
- What other circumstances?
- Which other assumptions?
- What can go wrong?
-
INVEST in good stories
- Independent
- Negotiable
- Valuable
- Estimatable
- Small
- Testable
-
Not to be mistaken with
- Contract
- Specification
- Use Case
- Technical tasks
-
Splitting Stories
- Along CRUD operations
- Along data boundaries
- Along operational boundaries
- Along cross-cutting concerns
-
One vs. Many
- 1 item, many items
- Single user, multi-user
- One level, Multiple levels
- Main flow vs. Alternate flows
- Functional vs. Non-Functional aspects
- Manual vs. Automated
- Spike + implementation
-
Smells
- Stories that mandate implementation
-
Stories with weak Goals
- Self-referencing Goal
- System Goals rather than user goals
- "Temporarily Untestable" stories
- Books & Resources
-
Guidelines for good stories
- Start with Goal Stories
- Slice the cake
- Write Closed stories
- Identify general constraints separately
- Size the story to the horizon
- Keep the UI out as long as possible