5 min read • Guide 56 of 877
Breaking Down Epics into Manageable Tasks
Large epics are the enemy of flow. When work is too big, it's hard to estimate, track, and complete. Breaking epics into manageable tasks enables better planning, clearer progress visibility, and faster delivery. GitScrum's task hierarchy supports effective decomposition.
Why Break Down Epics
| Large Epics | Decomposed Tasks |
|---|---|
| Hard to estimate | Estimable in hours/days |
| No visible progress | Daily completions |
| Blocked by dependencies | Parallel work possible |
| All-or-nothing delivery | Incremental value |
| Overwhelming | Achievable |
Decomposition Techniques
Vertical Slicing
VERTICAL SLICE APPROACH
═══════════════════════
BAD (Horizontal/Layer):
───────────────────────
Epic: User Authentication
Task 1: Design database schema (2 weeks)
Task 2: Build backend API (2 weeks)
Task 3: Create frontend UI (2 weeks)
Task 4: Integration testing (1 week)
Problem: No value until week 7
GOOD (Vertical Slice):
──────────────────────
Epic: User Authentication
Slice 1: Email/password login (3 days)
└── DB + API + UI + Tests for basic login
Slice 2: Password reset (2 days)
└── DB + API + UI + Tests for reset flow
Slice 3: Remember me (1 day)
└── DB + API + UI + Tests for persistence
Slice 4: OAuth login (3 days)
└── DB + API + UI + Tests for Google/GitHub
Value: Login working after 3 days!
INVEST Criteria
INVEST CHECKLIST
════════════════
For each task, verify:
I - Independent
Can be worked on without blocking others
N - Negotiable
Details can be discussed, not rigid spec
V - Valuable
Delivers something useful when done
E - Estimable
Team can estimate the effort
S - Small
Completable in 1-3 days
T - Testable
Clear criteria for "done"
If any fail → Break down further
Story Mapping
STORY MAP STRUCTURE
═══════════════════
USER JOURNEY (left to right)
────────────────────────────
Visit → Sign Up → Setup → Use → Manage
Site Account Profile Features Account
PRIORITY (top to bottom)
────────────────────────
MVP: [Landing] [Register] [Basic] [Core] [Logout]
Page Email Name Feature
V1.1: [About] [OAuth] [Avatar] [Advanced] [Settings]
Page Login Feature
V1.2: [Blog] [Invite] [Prefs] [Premium] [Billing]
Team Feature
GitScrum Implementation
Task Hierarchy
TASK STRUCTURE IN GITSCRUM
══════════════════════════
EPIC (using label + parent task):
├── Label: epic:user-auth
├── Parent Task: "User Authentication System"
│
├── Story: "Email/Password Login"
│ ├── Task: Create users table migration
│ ├── Task: Build login API endpoint
│ ├── Task: Create login form component
│ ├── Task: Add form validation
│ ├── Task: Implement session management
│ └── Task: Write login tests
│
├── Story: "Password Reset"
│ ├── Task: Add reset token to schema
│ ├── Task: Build reset request endpoint
│ ├── Task: Create reset email template
│ ├── Task: Build reset form
│ └── Task: Write reset flow tests
│
└── Story: "OAuth Login"
├── Task: Configure OAuth providers
├── Task: Build OAuth callback handler
├── Task: Create OAuth button components
└── Task: Write OAuth tests
Progress Tracking
EPIC PROGRESS VIEW
══════════════════
User Authentication System
──────────────────────────
Progress: ████████░░ 75%
Stories:
├── Email/Password Login ████████████ 100% ✓
├── Password Reset ████████░░░░ 67%
├── OAuth Login ████░░░░░░░░ 33%
└── Two-Factor Auth ░░░░░░░░░░░░ 0%
Completed: 15/20 tasks
This Sprint: 5 tasks remaining
Decomposition Workshop
Team Exercise
EPIC BREAKDOWN SESSION
══════════════════════
DURATION: 30-60 minutes
1. UNDERSTAND (10 min)
├── What is the epic?
├── Who is the user?
└── What's the goal?
2. MAP (15 min)
├── Draw user journey
├── Identify major steps
└── Group by functionality
3. SLICE (20 min)
├── Identify MVP slice
├── Break into stories
├── Further break into tasks
└── Apply INVEST criteria
4. ESTIMATE (10 min)
├── Quick sizing (S/M/L)
├── Identify unknowns
└── Flag risks
OUTPUT:
├── Prioritized story list
├── Tasks per story
└── First sprint scope
Common Patterns
By Technical Area
DECOMPOSITION PATTERNS
══════════════════════
CRUD OPERATIONS:
├── Create functionality
├── Read/List functionality
├── Update functionality
├── Delete functionality
└── Validation & error handling
USER FLOWS:
├── Happy path
├── Error states
├── Edge cases
├── Loading states
└── Empty states
INTEGRATION:
├── API contract definition
├── Implementation
├── Error handling
├── Retry logic
└── Monitoring/logging
Best Practices
For Effective Breakdown
- Slice vertically — Full functionality, not layers
- Keep tasks 1-3 days — Smaller is usually better
- Include testing — Not a separate phase
- Define done clearly — Testable acceptance criteria
- Allow refinement — Details emerge during development
Anti-Patterns
AVOID THESE:
✗ Tasks that take weeks
✗ Horizontal slices (all DB, then all API)
✗ Testing as separate epic
✗ No acceptance criteria
✗ Breaking down too early (waste if priorities change)
✗ One person owns entire epic