How do you split a story that is too big to fit in a Sprint?
Split vertically, so each slice goes end to end and delivers something demonstrable, using patterns such as workflow steps, business-rule variations, happy path first, and data or interface variants. Splitting by layer or by half a Sprint is not splitting - it produces work that cannot be reviewed or shipped.
What the interviewer is scoring
- Whether the candidate distinguishes a vertical slice from a layer-by-layer breakdown and can say what the layered version costs you
- Does the answer produce named splitting patterns rather than "make it smaller"
- That each proposed slice is checked for being independently demonstrable, not merely smaller
- Whether the candidate recognises that splitting must not remove work from the Definition of Done
- Does the candidate have an answer for the story that genuinely resists splitting
Answer
Why the size matters at all
A story that spans a Sprint gives you no feedback until it is finished, and no early warning if it is going wrong. It also destroys forecasting, because throughput measured in items only means something when items are roughly comparable in size and finish regularly. So the goal of splitting is not tidiness. It is to get a reviewable, potentially shippable result inside days rather than weeks, and to move the risk of being wrong to the front.
That gives you the test for any proposed split: could this slice be demonstrated to the Product Owner on its own, and could it in principle be released? If the answer is no for a slice, you have decomposed the work into tasks, which is a different and lesser thing.
Patterns, in rough order of usefulness
Workflow steps. Take the end-to-end journey and ship one stage properly. "Submit an expense claim" splits into submit, approve, reimburse — each with a real user and a real outcome.
Business-rule variations. One rule now, the rest later. Flat-rate tax first, then the regional rules, then the exemptions. This is often the largest reduction available because the rules are usually where the volume of work hides.
Happy path first. Build the case where everything works, then add the error handling, retries and edge cases as separate items. This is the pattern most likely to be misused, so be explicit that it means deferring rare paths, not deferring validation on the common one.
Data or entity variants. Support one file format, one currency, one document type, one integration partner.
Interface variants. Ship the API and a plain form; the polished component, the keyboard shortcuts and the empty states are later items. Do not use this to defer accessibility if accessibility is in your Definition of Done.
Effort variants. Do it manually or with a configuration file now, automate it later. A monthly report that an operator triggers by hand is worth shipping while the scheduler is still a story on the backlog.
Concretely, one epic split two ways:
| Bad split, layered | Better split, vertical |
|---|---|
| Database schema for bookings | Book one room type, single night, no payment |
| Booking API endpoints | Multi-night stays with pricing rules |
| Booking UI | Cancellation within the free window |
| Payment integration | Card payment on booking |
| Testing and hardening | Group bookings |
The left column cannot be reviewed until the last row is done, and every row is a guess about what the next row needs. The right column is releasable at row one and every row after it teaches you something about the next.
Splits that are not splits
Two failures are common enough to be worth naming. The first is "part 1 and part 2", where the split is drawn at the Sprint boundary rather than at a boundary in the work — the team simply agrees that whatever is unfinished on Friday becomes part 2. That is carryover with better branding, and it removes the honest signal that the Sprint missed something.
The second is carving off the testing, the code review, or the deployment as their own backlog item. Anything in the Definition of Done travels with every slice; if it can be split off, it was never really in the Definition of Done. A team under pressure will do this precisely because it makes the first item finishable, which is exactly why an interviewer watches for it.
When it genuinely will not split
Occasionally the size comes from an unknown rather than from scope — a protocol nobody has used, an integration with no documentation. Splitting scope does not help, because you cannot slice what you cannot yet describe. Take a time-boxed spike with a stated question and a deliverable, and note that the spike's output is a decision, not working software, so its value is in what it lets you split afterwards.
The other hard case is a genuinely atomic technical change, such as a migration that cannot be half-applied. Here the useful move is a thin end-to-end path with values hardcoded or a feature flag holding it dark, so the plumbing is proven early and the behaviour arrives incrementally behind the flag. If neither works, say so and plan the large item explicitly rather than pretending a fake split makes it safe.
Likely follow-ups
- A story is large because of an unknown, not because of scope. What do you do differently?
- How small is too small, and what does over-splitting cost?
- The team says "we cannot demo half a feature, the users would be confused". How do you respond?
- Would you ever split so that testing is a separate item? Why not?
Related questions
- What does a business analyst do on an agile team, and how does requirements work survive without a signed-off specification?mediumAlso on story-splitting6 min
- The business says this story cannot be delivered in parts. How do you split it anyway?mediumAlso on story-splitting4 min
- What is the Definition of Done, who owns it, and what do you do with an item that misses it at the end of a Sprint?mediumSame kind of round: concept3 min
- Walk me through a claim from first notification to closure, and tell me what the reserve is doing at each stage.mediumSame kind of round: concept5 min
- A test that has passed for a year starts failing after a refactor that was supposed to change nothing. Is it a bug or a bad test?mediumSame kind of round: concept4 min
- How do you tell that a model is overfitting, and what do you do about it?mediumSame kind of round: concept4 min
- This form marks invalid fields with red text and a red border. What has to change?mediumSame kind of round: concept4 min
- What makes testing a mobile app different from testing a web application?mediumSame kind of round: concept6 min