Work Decomposition
Breaking down work to enable small batch delivery, faster feedback, and predictable outcomes through story slicing and clear acceptance criteria
Reducing batch size is one of the most impactful improvements teams can make. Small, well-defined work items lead to faster delivery, higher quality, and better team predictability.
Why Work Decomposition Matters
Large stories and epics hide complexity, dependencies, and risk. When we break work into smaller increments, we:
- Reduce assumptions - Defining testable acceptance criteria exposes questions early
- Limit hope creep - We know within a day if we bit off too much
- Enable pivoting - Less sunk cost means easier course correction when requirements change
- Improve predictability - Consistent delivery of small items builds trust with stakeholders
- Reset expectations - What we thought was “small” is often massive once we see what small really is
- Increase quality - Smaller changes are easier to review, test, and validate
- Reduce risk - Less code in flight means less to go wrong
The Cost of Large Batches
Working in large batches creates significant problems:
- Long cycle times - Weeks or months instead of days
- Late discovery - Problems found after significant investment
- Estimation difficulty - Can’t accurately predict completion
- Wasted effort - When priorities change, large batches must be abandoned
- Context switching - Waiting on others while work is incomplete
- Integration conflicts - More changes mean more merge conflicts
- Delayed feedback - Can’t validate assumptions until work is complete
Target: Stories Delivered in < 2 Days
All completed work should go from “In Progress” to “In Production” in less than two days. This forces:
- Clear, testable acceptance criteria
- Reduced scope per story
- Better decomposition techniques
- Faster feedback loops from production
Work Decomposition Practices
The following playbooks help teams deliver smaller batches:
Getting Started
Start here if you’re new to work decomposition:
- Definition of Ready - Establish when work is ready to start
- Behavior-Driven Development - Create testable acceptance criteria
- Story Slicing - Break large stories into smaller deliveries
Advanced Techniques
Once you’ve mastered the basics:
- Task Decomposition - Break stories into smallest deployable changes
- Contract-Driven Development - Enable parallel development with API contracts
- Spikes - Handle uncertainty through time-boxed research
Planning & Alignment
For product and program-level work:
- Defining Product Goals - Align team efforts to measurable objectives
- From Roadmap to User Story - Break down multi-team initiatives
- Work Breakdown - Overall decomposition strategy
Common Problems with Work Breakdown
Teams often struggle with:
- Stories without testable acceptance criteria - Can’t verify when done
- Stories too large - 5-10 days of work or more
- No Definition of Ready - Work starts before it’s truly ready
- Work refined too far in advance - Requirements age like milk, not wine
- Dependencies on other teams - Creates waiting and coordination overhead
- Horizontal slicing - Database story, API story, UI story (all must deploy together)
- Technical stories - “Update framework version” with no user value
See CD Roadblocks: Work Breakdown for detailed solutions.
Best Practices
Do:
- Break stories vertically (fully functional slice across all layers)
- Include acceptance criteria before starting work
- Deliver stories independently without coordinating with other stories
- Use concrete examples to clarify requirements
- Get feedback early and often
Don’t:
- Create separate frontend/backend/database stories
- Start work before acceptance criteria are clear
- Batch stories for “efficiency”
- Use story points on defects or spikes
- Adjust points after work is complete
Success Metrics
Track these to measure improvement:
- Average story size (should trend toward 1-2 days)
- Stories completed per week (throughput)
- Percentage of stories meeting Definition of Ready
- Number of stories requiring rework after starting
- Development cycle time (start to production)
Further Reading
Team-agreed criteria that defines when work is ready to begin, helping manage uncertainty and set clear expectations
A guide to aligning priorities and breaking down work across multi-team products
A guide to effectively breaking down work into manageable, deliverable units
Collaborative process for defining feature behaviors through declarative, testable acceptance criteria that serve as Definition of Done
Techniques for splitting large stories into smaller, vertically-sliced deliveries that provide value independently and reduce batch size
Time-boxed explorations (1-3 days) for work items with high uncertainty that cannot be estimated, used sparingly to reduce risk
Define contracts between dependencies during design to enable asynchronous development using mocks and fakes for parallel work
Transform product vision into measurable objectives with clear timeframes and success criteria to align team efforts
Breaking stories into smallest independently deployable changes that implement acceptance criteria and maintain flow