Tracer Bullets / Vertical Slices¶
Old software-engineering heuristic (Andy Hunt & Dave Thomas, The Pragmatic Programmer) that matt-pocock resurrects as the single most important shape-of-work rule for agentic coding.
"AI loves to code horizontally. So it loves to code layer by layer. … You don't get feedback on your work until you've really started or completed phase three. … Instead you need to think about vertical layers … thin slices of functionality that cross all of the layers that you need to." — Pocock, 42:51–43:47
Origin¶
In WW2 anti-aircraft gunnery, every ~sixth round was a tracer — phosphorescent so the gunner could see where the stream was actually landing and correct aim in near-real time. Hunt & Thomas's software translation: build thin end-to-end slices that exercise every layer of the system, so each slice produces a visible, testable signal that tells you whether the aim is right.
Why it matters double for agents¶
- Without tracers, the agent completes phase 1 (schema), phase 2 (API), phase 3 (UI) in sequence and only finds integration bugs at the very end — deep in the dumb zone and far from the original context.
- With tracers, each issue ends in a runnable, QA-able demo — the agent (and the human) gets near-instant feedback on the entire flow. Pocock's
PRD→issuesskill explicitly prompts: "break a PRD into independently grabbable issues using vertical slices / tracer bullets written as local markdown files." (43:59–44:18) - Pairs structurally with Ousterhout deep modules: a thin vertical slice is easiest to cut when each horizontal layer is itself a single deep module with a small interface, not a maze of shallow modules. This is what makes the codebase agent-legible.
Related¶
- prd-as-destination — the upstream artifact the slices are cut from
- tdd-feedback-loop — the per-slice verification mechanism
- afk-implementation — parallel execution across slices
- harness-engineering · feedback-subagent · agent-legible-software