Strategic vs Tactical Programming
Strategic vs Tactical Programming
John Ousterhout's distinction (A Philosophy of Software Design): tactical programming gets the current feature working as fast as possible; strategic programming invests in the long-term design of the system so it stays easy to change. Tactical wins today and accrues complexity; strategic costs a little now and compounds.
The AI-era reading (Matt Pocock)
"AI has largely eaten tactical programming in my view, and it's up to us to handle the strategic." — AI Skills with Matt Pocock (The Pragmatic Engineer)
- Agents are tactical by nature — "unable to think strategically, just focused on what they're doing right now" — so they generate tech debt fast, even in tiny codebases.
- The human role becomes the strategic layer: alignment (Grill Me), interface design (Deep Modules — design the interface, delegate the implementation), shared vocabulary (Ubiquitous Language), and gardening the codebase as the agent's environment.
- Mirrors his education pivot: knowledge (what) is now cheap; wisdom (why) has gotten no easier to learn — and is what's worth paying for.
Why strategic skill is hard to learn — the mixing-desk metaphor
Strategic programming is a mixing desk full of sliders (e.g. number of deployable units: up = microservices, down = monolith) — "you're mixing music but can't hear what's wrong until 9 months later." The feedback loop is so long that people who change jobs every 6 months never meet their strategic mistakes. Pre-AI, that's why senior took 5+ years and staff 10+: you needed the battle scars.
AI shortens that loop. Agents produce so much code that strategic mistakes come back faster — a potential accelerator of experience. Orosz's counterpoint: mistakes are also cheaper to fix, so the lessons may bite less and stick less (you learn idempotency properly after an outage that lost money).
Enterprise implications
- Talent: if tactical work "has gone below minimum wage" and strategic knowledge is where the leverage is, the case for hiring people without it weakens — the sharpest statement in the vault of the Deskilling Trap (Juniors) dilemma. Uncle Bob's fix (treat a junior as an agent for a while) is, per Pocock, "an enormous waste of money." Unresolved.
- Measurement: strategic investment has always been hard to justify to non-engineering stakeholders (same argument as paying down tech debt). Agent observability — per-repo success/failure rates — gives a metric humans never could. See Software Factory.
- Role design: "we are our agents' platform team"; "the only thing your team needs are gardeners."
Cross-links
- Higher-Order Thinking — lower-order (write the code) vs higher-order (design the system) is the same split in learning-science terms
- Code Is Free — implementation free → strategic design more valuable, not less
- Verification Tax · Software Fundamentals Matter More Than Ever (Matt Pocock, AI Engineer) · Day Shift Night Shift (Agents)
Sources
- AI Skills with Matt Pocock (The Pragmatic Engineer) — canonical for the "AI ate tactical" claim, mixing-desk metaphor, and juniors question
- Software Fundamentals Matter More Than Ever (Matt Pocock, AI Engineer) — "AI as tactical sergeant, you as strategic level"