GitScrum / Docs
All Best Practices

Story Splitting Techniques | Smaller Deliverables

Break large stories into deliverable increments. GitScrum tracks split stories with parent-child relationships and progress rollups for visibility.

9 min read

Large stories create risk and delay feedback. GitScrum helps teams track split stories with parent-child relationships and progress rollups.

Why Split Stories

The Problem with Large Stories

LARGE STORY PROBLEMS:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ LARGE STORY (13 points):                                   β”‚
β”‚ "As a user, I can manage my account settings"             β”‚
β”‚                                                             β”‚
β”‚ WHAT HAPPENS:                                               β”‚
β”‚                                                             β”‚
β”‚ Day 1: "Working on it"                                     β”‚
β”‚ Day 2: "Still working on it"                               β”‚
β”‚ Day 3: "Making progress"                                   β”‚
β”‚ Day 4: "Almost done"                                       β”‚
β”‚ Day 5: "90% done"                                          β”‚
β”‚ Day 6: "Just finishing up"                                 β”‚
β”‚ Day 7: "Found an issue"                                    β”‚
β”‚ Day 8: "Actually 50% done"                                 β”‚
β”‚ Day 9-15: More of the same...                              β”‚
β”‚                                                             β”‚
β”‚ PROBLEMS:                                                   β”‚
β”‚                                                             β”‚
β”‚ ❌ No feedback until done                                 β”‚
β”‚ ❌ "90% done" for days                                    β”‚
β”‚ ❌ Hard to estimate accurately                            β”‚
β”‚ ❌ Risk hidden until too late                              β”‚
β”‚ ❌ Blocks other work                                      β”‚
β”‚ ❌ Can't ship partial value                               β”‚
β”‚ ❌ Sprint commitment unclear                              β”‚
β”‚                                                             β”‚
β”‚ THE ALTERNATIVE:                                            β”‚
β”‚                                                             β”‚
β”‚ Split into 5 stories (2-3 points each)                    β”‚
β”‚ Ship 1-2 per day                                          β”‚
β”‚ Get feedback continuously                                  β”‚
β”‚ Adapt based on learning                                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Benefits of Small Stories

SMALL STORY BENEFITS:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ PREDICTABLE FLOW:                                           β”‚
β”‚ β€’ Stories complete daily                                   β”‚
β”‚ β€’ Burndown is smooth                                       β”‚
β”‚ β€’ Progress visible                                         β”‚
β”‚                                                             β”‚
β”‚ BETTER ESTIMATES:                                           β”‚
β”‚ β€’ Less unknown in smaller scope                            β”‚
β”‚ β€’ Easier to compare                                        β”‚
β”‚ β€’ More accurate velocity                                   β”‚
β”‚                                                             β”‚
β”‚ FASTER FEEDBACK:                                            β”‚
β”‚ β€’ Ship to users sooner                                     β”‚
β”‚ β€’ Catch issues early                                       β”‚
β”‚ β€’ Course correct quickly                                   β”‚
β”‚                                                             β”‚
β”‚ LOWER RISK:                                                 β”‚
β”‚ β€’ Less rework if wrong                                     β”‚
β”‚ β€’ Easier to pivot                                          β”‚
β”‚ β€’ Fewer integration issues                                 β”‚
β”‚                                                             β”‚
β”‚ TEAM BENEFITS:                                              β”‚
β”‚ β€’ More satisfying (completion!)                            β”‚
β”‚ β€’ Easier collaboration                                     β”‚
β”‚ β€’ Less context to share                                    β”‚
β”‚                                                             β”‚
β”‚ IDEAL SIZE:                                                 β”‚
β”‚ β€’ 1-3 days of work                                         β”‚
β”‚ β€’ 1-5 story points                                         β”‚
β”‚ β€’ Fits in a sprint easily                                  β”‚
β”‚ β€’ Delivers something usable                                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Splitting Techniques

By Workflow Steps

SPLIT BY WORKFLOW:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ ORIGINAL STORY:                                             β”‚
β”‚ "As a user, I can manage my profile"                      β”‚
β”‚ (Too big - 13 points)                                      β”‚
β”‚                                                             β”‚
β”‚ IDENTIFY WORKFLOW STEPS:                                    β”‚
β”‚ View β†’ Edit β†’ Save β†’ Validate β†’ Notify                    β”‚
β”‚                                                             β”‚
β”‚ SPLIT STORIES:                                              β”‚
β”‚                                                             β”‚
β”‚ 1. "As a user, I can view my current profile"             β”‚
β”‚    (2 points) - Display only                              β”‚
β”‚                                                             β”‚
β”‚ 2. "As a user, I can edit my name and email"              β”‚
β”‚    (3 points) - Basic editing                             β”‚
β”‚                                                             β”‚
β”‚ 3. "As a user, I can upload a profile photo"              β”‚
β”‚    (3 points) - Photo handling                            β”‚
β”‚                                                             β”‚
β”‚ 4. "As a user, I can change my password"                  β”‚
β”‚    (3 points) - Security sensitive                        β”‚
β”‚                                                             β”‚
β”‚ 5. "As a user, I receive email when profile changes"      β”‚
β”‚    (2 points) - Notification                              β”‚
β”‚                                                             β”‚
β”‚ EACH STORY:                                                 β”‚
β”‚ βœ“ Delivers value independently                            β”‚
β”‚ βœ“ Can be tested independently                              β”‚
β”‚ βœ“ Can ship independently                                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

By Data Variations

SPLIT BY DATA/INPUT TYPE:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ ORIGINAL STORY:                                             β”‚
β”‚ "As a user, I can pay for my order"                       β”‚
β”‚ (Too big - 13 points)                                      β”‚
β”‚                                                             β”‚
β”‚ IDENTIFY VARIATIONS:                                        β”‚
β”‚ Credit card, PayPal, Apple Pay, Bank transfer             β”‚
β”‚                                                             β”‚
β”‚ SPLIT STORIES:                                              β”‚
β”‚                                                             β”‚
β”‚ 1. "As a user, I can pay with credit card"                β”‚
β”‚    (5 points) - Start with most common                    β”‚
β”‚                                                             β”‚
β”‚ 2. "As a user, I can pay with PayPal"                     β”‚
β”‚    (3 points) - Second option                             β”‚
β”‚                                                             β”‚
β”‚ 3. "As a user, I can pay with Apple Pay"                  β”‚
β”‚    (3 points) - Third option                              β”‚
β”‚                                                             β”‚
β”‚ 4. "As a user, I can pay via bank transfer"               β”‚
β”‚    (3 points) - Fourth option                             β”‚
β”‚                                                             β”‚
β”‚ BENEFITS:                                                   β”‚
β”‚ β€’ Ship credit card first (most value)                     β”‚
β”‚ β€’ Learn from each payment type                            β”‚
β”‚ β€’ Can defer less common types                             β”‚
β”‚                                                             β”‚
β”‚ OTHER DATA SPLITS:                                          β”‚
β”‚ β€’ By user type (admin, regular, guest)                    β”‚
β”‚ β€’ By file type (PDF, CSV, Excel)                          β”‚
β”‚ β€’ By region (US, EU, Asia)                                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

By Operations

SPLIT BY CRUD OPERATIONS:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ ORIGINAL STORY:                                             β”‚
β”‚ "As an admin, I can manage products"                      β”‚
β”‚ (Too big - too vague)                                      β”‚
β”‚                                                             β”‚
β”‚ CRUD BREAKDOWN:                                             β”‚
β”‚                                                             β”‚
β”‚ CREATE:                                                     β”‚
β”‚ "As an admin, I can add a new product"                    β”‚
β”‚ (3 points)                                                 β”‚
β”‚                                                             β”‚
β”‚ READ:                                                       β”‚
β”‚ "As an admin, I can view all products"                    β”‚
β”‚ (2 points)                                                 β”‚
β”‚                                                             β”‚
β”‚ UPDATE:                                                     β”‚
β”‚ "As an admin, I can edit product details"                 β”‚
β”‚ (3 points)                                                 β”‚
β”‚                                                             β”‚
β”‚ DELETE:                                                     β”‚
β”‚ "As an admin, I can remove a product"                     β”‚
β”‚ (2 points)                                                 β”‚
β”‚                                                             β”‚
β”‚ FURTHER SPLITS IF NEEDED:                                   β”‚
β”‚                                                             β”‚
β”‚ "Add product" might become:                               β”‚
β”‚ β€’ Add product with basic info                             β”‚
β”‚ β€’ Add product photos                                       β”‚
β”‚ β€’ Add product pricing                                      β”‚
β”‚ β€’ Add product variants                                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

By Interface

SPLIT BY INTERFACE/PLATFORM:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ ORIGINAL STORY:                                             β”‚
β”‚ "As a user, I can view my dashboard"                      β”‚
β”‚ (13 points - includes web and mobile)                     β”‚
β”‚                                                             β”‚
β”‚ SPLIT BY PLATFORM:                                          β”‚
β”‚                                                             β”‚
β”‚ 1. "As a web user, I can view my dashboard"               β”‚
β”‚    (5 points) - Web version first                         β”‚
β”‚                                                             β”‚
β”‚ 2. "As a mobile user, I can view my dashboard"            β”‚
β”‚    (5 points) - Mobile adaptation                         β”‚
β”‚                                                             β”‚
β”‚ SPLIT BY COMPONENT:                                         β”‚
β”‚                                                             β”‚
β”‚ Dashboard might become:                                    β”‚
β”‚ 1. "...I can see my activity summary"                     β”‚
β”‚ 2. "...I can see recent transactions"                     β”‚
β”‚ 3. "...I can see quick actions"                           β”‚
β”‚ 4. "...I can see notifications"                           β”‚
β”‚                                                             β”‚
β”‚ SPLIT BY QUALITY:                                           β”‚
β”‚                                                             β”‚
β”‚ 1. Basic dashboard (text only)                            β”‚
β”‚ 2. Dashboard with charts                                  β”‚
β”‚ 3. Dashboard with real-time updates                       β”‚
β”‚ 4. Dashboard with customization                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

By Complexity

SPLIT BY HAPPY PATH / EDGE CASES:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ ORIGINAL STORY:                                             β”‚
β”‚ "As a user, I can checkout my order"                      β”‚
β”‚ (Too big - includes all edge cases)                       β”‚
β”‚                                                             β”‚
β”‚ SPLIT APPROACH:                                             β”‚
β”‚                                                             β”‚
β”‚ HAPPY PATH FIRST:                                           β”‚
β”‚ 1. "...I can checkout with valid payment"                 β”‚
β”‚    (5 points) - Assumes everything works                  β”‚
β”‚                                                             β”‚
β”‚ ERROR HANDLING:                                             β”‚
β”‚ 2. "...I see clear error if payment fails"               β”‚
β”‚    (2 points) - Declined cards                            β”‚
β”‚                                                             β”‚
β”‚ EDGE CASES:                                                 β”‚
β”‚ 3. "...I can retry if payment times out"                  β”‚
β”‚    (2 points) - Network issues                            β”‚
β”‚                                                             β”‚
β”‚ 4. "...I'm protected from duplicate orders"              β”‚
β”‚    (3 points) - Double-click protection                   β”‚
β”‚                                                             β”‚
β”‚ VALIDATION:                                                 β”‚
β”‚ 5. "...I'm told if card is expired"                       β”‚
β”‚    (1 point) - Validation rule                            β”‚
β”‚                                                             β”‚
β”‚ BENEFITS:                                                   β”‚
β”‚ β€’ Ship happy path first                                   β”‚
β”‚ β€’ Add robustness incrementally                            β”‚
β”‚ β€’ Can defer rare edge cases                               β”‚
β”‚ β€’ Users get value earlier                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Tracking Split Stories

GitScrum Structure

ORGANIZING SPLIT STORIES:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ EPIC: Account Management                                   β”‚
β”‚                                                             β”‚
β”‚ └── STORY: Profile management (original - closed)         β”‚
β”‚     β”‚                                                      β”‚
β”‚     └── CHILD STORIES:                                     β”‚
β”‚         β”œβ”€β”€ View profile (3 pts) βœ… Done                  β”‚
β”‚         β”œβ”€β”€ Edit basic info (3 pts) βœ… Done               β”‚
β”‚         β”œβ”€β”€ Upload photo (3 pts) πŸ”„ In Progress           β”‚
β”‚         β”œβ”€β”€ Change password (3 pts) ⬜ To Do              β”‚
β”‚         └── Email notifications (2 pts) ⬜ To Do          β”‚
β”‚                                                             β”‚
β”‚ GITSCRUM VIEW:                                              β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚ β”‚ Profile Management                                      β”‚β”‚
β”‚ β”‚ Progress: β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘ 43% (6/14 points)                 β”‚β”‚
β”‚ β”‚                                                         β”‚β”‚
β”‚ β”‚ β˜‘ View profile (3 pts)                                 β”‚β”‚
β”‚ β”‚ β˜‘ Edit basic info (3 pts)                              β”‚β”‚
β”‚ β”‚ πŸ”„ Upload photo (3 pts)                                β”‚β”‚
β”‚ β”‚ ☐ Change password (3 pts)                              β”‚β”‚
β”‚ β”‚ ☐ Email notifications (2 pts)                          β”‚β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                                                             β”‚
β”‚ ROLLUP:                                                     β”‚
β”‚ Parent story tracks total progress                        β”‚
β”‚ Each child is independent and deliverable                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

When Not to Split

SPLITTING LIMITS:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ DON'T SPLIT IF:                                            β”‚
β”‚                                                             β”‚
β”‚ PIECES HAVE NO VALUE:                                       β”‚
β”‚ ❌ "Create database table"                                β”‚
β”‚ ❌ "Write API endpoint"                                   β”‚
β”‚ ❌ "Build UI form"                                        β”‚
β”‚ β†’ These are tasks, not stories                            β”‚
β”‚ β†’ Group into one valuable story                           β”‚
β”‚                                                             β”‚
β”‚ TOO SMALL ALREADY:                                          β”‚
β”‚ ❌ 1-point stories split further                          β”‚
β”‚ β†’ Overhead exceeds value                                  β”‚
β”‚ β†’ Just do it                                              β”‚
β”‚                                                             β”‚
β”‚ ARTIFICIALLY SPLIT:                                         β”‚
β”‚ ❌ "Part 1", "Part 2", "Part 3"                           β”‚
β”‚ β†’ Not independently valuable                              β”‚
β”‚ β†’ Find natural split points                               β”‚
β”‚                                                             β”‚
β”‚ BETTER APPROACH:                                            β”‚
β”‚                                                             β”‚
β”‚ Ask: "Can a user do something useful with just this?"     β”‚
β”‚                                                             β”‚
β”‚ Yes β†’ Good split                                           β”‚
β”‚ No β†’ Keep together or find different split                β”‚
β”‚                                                             β”‚
β”‚ "VIEW + EDIT" is better than "BACKEND + FRONTEND"         β”‚
β”‚ Horizontal slices > Vertical slices                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Related Solutions