Vertical slice
Description
Truncate one dimension, preserve another. The structural pattern where instead of building a complete horizontal layer first (full breadth at one depth), you build a narrow vertical column (full depth at narrow breadth). Common in agile MVP development, in single-feature end-to-end demonstrations, and in any context where validating end-to-end shape matters more than completing one layer.
Triggers
User-initiated: User is wrestling with scope — either explicitly proposing a monolithic build vs phased approach, or implicitly when too-many-features-in-one-prototype force a scope-creep discussion. Trigger verbs polish and prototype are common; slice itself appears more often in responses than in user prompts. Vertical-slice is overwhelmingly a real-user-msg-triggered concept. Four recurring sub-shapes:
- Scope-creep diagnosis — a “polish prototype” turned into a slice; renaming the work to vertical-slice surfaces a phase-scoping decision that needs attention before it silently collapses a later phase’s scope.
- Middle-path strategic positioning — user is tempted to ship “the full production version” all at once or to spread it across many phases; vertical-slice is the third path that ships full vision at narrow scope (one user, one period, one entity) so the end-to-end shape gets validated cheaply.
- Downstream-of-structural-decision — the slice’s shape depends on an upstream structural-model choice; if the structural call is wrong, no scoping discipline saves the slice. The diagnostic is “is this a polish question or a structural-model question?” — and the latter must be answered first.
- MVP-grain choice on API/data — flatten one dimension for v1 while leaving a seam to widen it later (e.g., an API that returns a single primary record but exposes a count field that future versions can multiplex over).
Agent-initiated: Agent notices the user is reaching for “full production version” or “phase by phase” framing of a scope question and surfaces vertical-slice as the third option that validates end-to-end shape without committing to either.
Vocabulary cues: “vertical slice,” “polish prototype,” “MVP,” “narrow breadth full depth,” “one feature end-to-end,” “full vision limited scope,” “N=1 flow,” “single-entity UX,” “lossy MVP cut,” “leaves a seam for later,” “full production version vs phased.”
Situation-shape signals: Any scope-decision context where the choice appears binary (do-everything vs do-one-thing-completely) and a third option of “do one full end-to-end column at narrow breadth” is available. The concept is most useful when the right question is which dimension to truncate (the grain choice is load-bearing). The concept has well-documented purchase in software product planning; cross-domain generalizations to research methodology, writing, and learning warrant explicit prompt-time attention since the prototype-product-planner framing dominates most natural exposure.
Exclusions
- When horizontal-first is correct — building a complete data layer before any UI on it; some architectures have ordering constraints that vertical slicing fights.
- When the dimensions are inseparable — sometimes “narrow breadth, full depth” doesn’t decompose cleanly because the depth requires breadth to exist.
Structure
= container + grain. The container scopes what’s included in the slice (narrow at one dimension, full at another); the grain is the depth-vs-breadth choice — what resolution to preserve and what to truncate. The grain choice is load-bearing: the wrong dimension truncated produces a vertical slice that doesn’t validate the right thing.
Relationships
- graduation-promotion — a vertical slice often graduates into a horizontal layer once validated end-to-end. The slice is the scaffolding; the layer is the adult form.
Examples
Alistair Cockburn, “walking skeleton”
Domain: computer-science
Alistair Cockburn’s walking skeleton is a vertical slice taken to its thinnest: a tiny end-to-end implementation that exercises every architectural layer — UI, service, storage, deploy — for one trivial feature, before any single layer is fleshed out. The alternative, horizontal-first (finish the whole schema, then the whole API, then the whole UI), leaves nothing runnable until the end and hides integration risk until it is expensive to fix. The slice deliberately truncates breadth to preserve depth: one feature working through all the layers beats every layer half-built and none connected.
MVP / agile slice
Domain: computer-science
software development tradition: ship one feature end-to-end before expanding breadth.