User Story Splitting Techniques | Sized Deliverables
Split large user stories into manageable pieces that fit in a sprint. GitScrum's parent tasks and labels track story fragments connected to the original epic.
8 min read
Large stories are risky and hard to estimate. GitScrum helps teams track split stories while maintaining connection to the original epic.
Why Split Stories
Benefits of Small Stories
SMALL STORY BENEFITS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β LARGE STORY RISKS: β
β ββββββββββββββββββ β
β β Hard to estimate accurately β
β β May not fit in sprint β
β β Long feedback cycles β
β β High risk of rework β
β β Blocked progress β
β β "90% done" syndrome β
β β
β SMALL STORY BENEFITS: β
β βββββββββββββββββββββ β
β β
Easier to estimate β
β β
Fits in sprint β
β β
Fast feedback β
β β
Lower risk β
β β
Visible progress β
β β
Done is done β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β SIZE GUIDELINE: β
β β
β TOO BIG (13+ points): β
β β’ More than half the sprint β
β β’ Split required β
β β
β BORDERLINE (8 points): β
β β’ Consider splitting β
β β’ Depends on complexity β
β β
β GOOD SIZE (1-5 points): β
β β’ Can complete in 1-3 days β
β β’ Fits well in sprint β
β β
β TOO SMALL (1 point): β
β β’ Overhead of tracking costs more than work β
β β’ Combine with related work β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Splitting Patterns
By Workflow Steps
SPLITTING BY WORKFLOW:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β PATTERN: CRUD Operations β
β β
β ORIGINAL (21 points): β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β As an admin, I want to manage users so that ββ
β β I can control access to the system. ββ
β β ββ
β β This includes: ββ
β β β’ Create users ββ
β β β’ List users ββ
β β β’ Edit users ββ
β β β’ Delete users ββ
β β β’ Assign roles ββ
β β β’ Search/filter ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β SPLIT: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β 1. View user list (3 pts) ββ
β β Basic list with name, email, status ββ
β β ββ
β β 2. Create new user (5 pts) ββ
β β Form with validation, email notification ββ
β β ββ
β β 3. Edit user details (3 pts) ββ
β β Update name, email, status ββ
β β ββ
β β 4. Delete/deactivate user (3 pts) ββ
β β Soft delete with confirmation ββ
β β ββ
β β 5. Assign roles to user (5 pts) ββ
β β Role picker, permission display ββ
β β ββ
β β 6. Search and filter users (3 pts) ββ
β β By name, email, role, status ββ
β β ββ
β β Total: 22 pts (in 6 smaller stories) ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β Each story delivers value independently β
β Can ship after story 1-2 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
By User Type
SPLITTING BY PERSONA:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β PATTERN: Different Users, Different Needs β
β β
β ORIGINAL (13 points): β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β As a user, I want a dashboard so that I can ββ
β β see relevant metrics and actions. ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β PROBLEM: "User" is too generic β
β Different users need different things β
β β
β SPLIT: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β 1. Admin dashboard (5 pts) ββ
β β As an admin, I want to see system health, ββ
β β user activity, and pending approvals. ββ
β β ββ
β β 2. Manager dashboard (5 pts) ββ
β β As a manager, I want to see team metrics, ββ
β β sprint progress, and capacity. ββ
β β ββ
β β 3. Developer dashboard (3 pts) ββ
β β As a developer, I want to see my assigned ββ
β β tasks, recent activity, and blockers. ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β BENEFIT: Each persona gets exactly what they need β
β Can prioritize by user importance β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
By Happy Path + Edge Cases
SPLITTING BY SCENARIO:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β PATTERN: Start Simple, Add Complexity β
β β
β ORIGINAL (13 points): β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β As a customer, I want to purchase items so that ββ
β β I can receive products. ββ
β β ββ
β β Includes: ββ
β β β’ Add to cart ββ
β β β’ Multiple payment methods ββ
β β β’ Discount codes ββ
β β β’ Failed payment handling ββ
β β β’ Partial refunds ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β SPLIT: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β HAPPY PATH (ship first): ββ
β β 1. Basic checkout with credit card (5 pts) ββ
β β Single item, one payment method, success path ββ
β β ββ
β β ENHANCEMENTS: ββ
β β 2. Add discount codes (3 pts) ββ
β β Validate and apply discount ββ
β β ββ
β β 3. Multiple payment methods (3 pts) ββ
β β Add PayPal, bank transfer ββ
β β ββ
β β EDGE CASES: ββ
β β 4. Handle payment failures (3 pts) ββ
β β Retry logic, error messaging ββ
β β ββ
β β 5. Process refunds (3 pts) ββ
β β Full and partial refunds ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β Can ship after story 1 - basic checkout works β
β Each additional story adds capability β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
By Data Variations
SPLITTING BY DATA TYPE:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β PATTERN: Different Data, Same Feature β
β β
β ORIGINAL (13 points): β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β As a user, I want to export my data so that ββ
β β I can analyze it in other tools. ββ
β β ββ
β β Formats: CSV, Excel, PDF, JSON ββ
β β Data: Orders, Users, Products, Analytics ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β SPLIT BY FORMAT: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β 1. Export to CSV (3 pts) ββ
β β 2. Export to Excel (3 pts) ββ
β β 3. Export to PDF (5 pts) - more complex ββ
β β 4. Export to JSON (2 pts) ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β OR SPLIT BY DATA TYPE: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β 1. Export orders (3 pts) ββ
β β 2. Export users (2 pts) ββ
β β 3. Export products (2 pts) ββ
β β 4. Export analytics (5 pts) - more complex ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β START WITH: β
β Most valuable data + most common format β
β "Export orders to CSV" β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Maintaining Value
INVEST Criteria
ENSURING SPLIT STORIES ARE GOOD:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β EACH SPLIT MUST STILL MEET INVEST: β
β β
β I - INDEPENDENT β
β Can be developed without other stories β
β (some dependency OK, but not blocking) β
β β
β N - NEGOTIABLE β
β Details can be discussed with team β
β Not over-specified β
β β
β V - VALUABLE β
β Delivers something useful to user β
β Not just technical work β
β β
β E - ESTIMABLE β
β Team can size it β
β Not too vague β
β β
β S - SMALL β
β Fits in a sprint β
β Ideally 1-5 points β
β β
β T - TESTABLE β
β Clear acceptance criteria β
β Can verify it works β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β AVOID: β
β β Technical tasks ("Set up database") β
β β Horizontal slices ("Build API layer") β
β β Layers ("Frontend for feature X") β
β β
β PREFER: β
β β
Vertical slices that work end-to-end β
β β
User-facing value in each story β
β β
Could ship after any story β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ