How to break down epics into sprint-ready stories
Agile team at a whiteboard breaking apart a large sticky note into several smaller ones, representing the process of splitting an epic into manageable user storiesWhat makes a story "sprint-ready"
- Small enough to complete in one sprint (ideally 1-5 story points)
- Independently deliverable, meaning it doesn't depend on other stories finishing first
- Vertically sliced, delivering a thin slice of end-to-end functionality, not just a backend piece or just a UI
- Estimable by your team in planning poker without a 15-minute debate
- Testable with a clear pass/fail condition
6 patterns for splitting epics
1. Split by workflow step
| Story | Description |
|---|---|
| Browse products | Customer can view a product catalog with filtering |
| Add to cart | Customer can add items to a shopping cart |
| Checkout | Customer can enter shipping and payment details |
| Order confirmation | Customer receives a confirmation email after purchase |
2. Split by business rule
- Free shipping for orders over $50
- Flat rate $5 for standard domestic shipping
- Real-time carrier rates for express shipping
- International shipping with customs estimation
3. Split by user type
- As an admin, I want to invite new members by email
- As an admin, I want to remove members from the team
- As a member, I want to view who's on my team
- As an owner, I want to transfer ownership to another admin
4. Split by happy path vs. edge cases
- Happy path: Upload a JPEG or PNG under 5MB and see it as my avatar
- Edge case: Show an error when the file is too large or wrong format
- Edge case: Crop and resize the image before saving
- Edge case: Delete or replace an existing photo
Developer looking at a whiteboard diagram showing a large box labeled epic being split into smaller connected boxes representing user stories, with arrows showing dependencies5. Split by data type or platform
- Export as CSV
- Export as PDF
- Export as Excel
- Email a scheduled export
6. Split by performance or scale
- Search within the current project (simple query)
- Search across all projects (requires indexing)
- Add filters (date range, assignee, status)
- Autocomplete suggestions as you type
A real example: breaking down "user notifications"
The vertical slice rule
Diagram showing the difference between horizontal splitting by technical layer and vertical splitting by user-facing functionality, with the vertical approach highlighted as the correct methodWhen stories are still too big
- The team estimates it at 13+ points
- It has more than 5 acceptance criteria
- The description uses the word "and" to connect two different behaviors
- Multiple team members would need to work on it simultaneously
Using tools to speed up the split
A quick checklist before sprint planning
Acceptance criteria are defined for each story