A3.4 · The roadmap layer
Thin but robust
A rung is a narrow vertical slice built to production quality — never a prototype to be redone. This is the line between thin and flimsy.
A backlog ordered into rungs still leaves one question: what does a single rung have to be before it counts as shipped? The wrong answer is “anything that demos”. A thin-but-robust slice is a vertical thread over the facade — contract-guarded, harnessed, gated, and leaving the system live. Strip any one and it is flimsy. Classify a candidate on the right.
Classify a candidate increment · pick one
Five tests, one line
A2 ordered a backlog into rungs; A3.3 read a rung line on the roadmap. Neither answered what a single rung has to be before it counts as shipped. A slice that demos but carries no test, no contract guard, and no path to staying live is flimsy — it ships debt, not value, and it has to be redone. A thin-but-robust slice passes five tests at once:
Vertical — it threads end to end through every layer, not one horizontal layer in
isolation. Over the facade — it calls only the Portal facade
and renders only the closed error set. Harnessed — it ships a fast automated test that
needs no live browser. Gated — verified routes, escaped interpolation, declared
component attributes, so a typo fails before it ships. Always live — after it lands the
node boots clean and serves. Miss any one and the slice is flimsy.
Thin is the size of the slice; robust is the bar it clears. The three dives separate the two: A3.4.1 establishes the shape (vertical, not shallow), A3.4.2 lists the seven properties that make a thin slice robust, and A3.4.3 isolates the strictest of them — always live.
A slice earns “robust” only when it is a vertical thread, contract-guarded, harnessed, gated, and leaving the system live — anything less is a flimsy prototype to be redone.
Every F6 rung holds the master invariant — the web layer calls only the
Portal facade and renders only the closed %Portal.Error{}
set — which is the bar that keeps each thin slice robust.
Thin is the size of a slice; robust is the bar it clears — and the master invariant is the bar.
The three dives
The dives run the arc thin: vertical, not shallow → what robust adds → always live: first the shape of a thin slice, then the seven production properties that make it robust, then the strictest property on its own. Read them in order — A3.4.1 starts.
Thin, not shallow
Thin is a vertical slice — one capability end to end — not a shallow horizontal layer. The line between thin and flimsy: shape versus quality.
What robust adds
The seven “thin but robust for the web” properties from the F6 roadmap — over the facade, harnessed, verified and safe, rendered in the system, honest real-time, supervised, always live.
Always live
The liveness criterion: every rung leaves the node booting clean and serving —
GET /health answers 200 and the route renders. The mainline
is never broken.
A3.4 sharpens the discipline at the centre of the method, grounded on the real F6 “thin but robust for the web” section. The next module, A3.5 · Milestones and iterations, groups robust rungs into shippable milestones. Return to the A3 chapter navigation to continue.
References
The production-discipline tradition this module draws on, and where it connects in the course.
Sources
- Humble & Farley — Continuous Delivery — each increment a thin, tested, releasable slice that keeps the pipeline green.
- Beck, K. — Extreme Programming Explained — small releases held to production quality, not prototypes to be redone.
- Hunt & Thomas — The Pragmatic Programmer — tracer bullets: a real thin feature, kept and grown, not a prototype discarded.
Related in this course
- A3.4.1 · Thin, not shallow
- A3.4.2 · What robust adds
- A3.4.3 · Always live
- A3.3 · Anatomy of a roadmap.md — the rung line a robust slice fulfils.
- A1.05 · Correct by definition — the harness that proves a slice.
- A1.02 · Contracts — the contract guard a robust slice carries.
- A3 · The roadmap layer — the chapter this module sits in.
- F6 · The Portal on the web (Phoenix) — where the framework implements the seven properties.