AI coding tools reliably produce about 80% of a working solution. The remaining 20% — debugging edge cases, integrating with real infrastructure, handling the weird constraints of production — is where experienced engineers always earned their keep. Jonathan Beard’s recent essay names this the “80% problem” and argues it’s the central tension of AI-assisted development.
The core worry isn’t that AI writes bad code. It’s that the last 20% requires exactly the skills that atrophy when you stop doing the first 80% by hand:
- Debugging intuition — knowing where a bug likely lives comes from having written (and broken) similar code yourself
- System-level reasoning — understanding how pieces interact across a codebase, not just within a single function
- Taste for trade-offs — choosing between “works now” and “works at scale” requires context AI doesn’t carry
Beard’s point isn’t anti-AI. It’s that the 80% AI handles was never the hard part — it was the training ground for the hard part. Junior developers who skip that training ground may never build the judgment needed to finish the job. The essay frames this as a compounding problem: the more teams rely on AI for the routine work, the fewer people develop the skills to handle what AI can’t.
This maps to a pattern showing up across AI coding discussions. Vibe coding works for prototypes and internal tools. Production systems with real users, real data, and real failure modes still need someone who understands what’s actually happening under the generated code.
NOTE
Beard’s framing echoes a recurring theme in HN discussions: AI tools are excellent accelerators for experienced developers but potentially decelerators for skill development in newer ones.
The practical question for teams isn’t whether to use AI coding tools — it’s how to keep engineers sharp on the 20% that still requires a human. Beard doesn’t offer a tidy answer, and that’s the honest part.