Vertical Slices

Product page through API through database to a visible product, instead of a week of database then a week of backend. A slice is independently testable; a skeleton proves the pieces connect.

Vertical Slices
▶ lab

Not the database in week one, the backend in week two and the frontend in week three — but one product, from page to API to database and back, visible on day one. A slice is one narrow feature through every layer, and it is the unit in which a system actually becomes real.

Q · What is the smallest unit of work that, when finished, means something works — and why is it a path through the layers rather than one layer?
The Horizontal Layers Trap

Building layer by layer feels safe because each layer is a real thing that gets finished. The trap is that a finished layer proves nothing about the product, and every question about the product is deferred to the last week, when they all arrive together.

Q · Why does building one layer at a time feel like progress, and what specifically does it hide until it is too late?
The Walking Skeleton
▶ lab

Browser → API → Database → Browser, doing almost nothing, working end to end, deployed. A walking skeleton is the thinnest possible slice built to prove the pieces connect — and it deliberately proves nothing else.

Q · Before any feature is built, what is the smallest thing that would prove every part of the system can talk to every other part?
The Smallest Executable Thing
▶ lab

Create Product → Store Product → Display Product: three steps that together are the smallest thing a store can do that is worth watching. Find it, build it, watch it run, then grow it — because every grown step is tested against something that already works.

Q · Among everything the system must eventually do, what is the smallest sequence you could execute today and learn something from — and how do you grow from there without losing the ability to run it?
A Slice Is Testable

Create Order through Frontend → API → Business Logic → Database → Response can be tested on its own, before any other slice exists. That is what makes a slice a unit of progress rather than a unit of work — and the test must say what it does not prove as clearly as what it does.

Q · What does it mean for a slice to be independently testable, what does a passing slice actually establish, and what does it leave unknown?