← BACK TO HOME — Simon Willison — 进阶
行业观点 · ANALYSIS · IMPACT 8/10

AI is removing the middle class of software engineering

Florian Herrengt argues that while AI coding tools boost output speed, they cause system complexity to spiral out of control, leaving teams trapped in "cognitive debt" where no one truly understands the code.

KEY POINTS
  • AI-assisted coding accelerates development but leads to overly complex and hard-to-maintain systems
  • Teams gradually lose code ownership and comprehension, falling into a "cognitive debt" trap
  • Debugging becomes a guessing game with AI, lacking real engineering control
  • This trend is devaluing mid-level engineers and reshaping the talent structure of software engineering
ANALYSIS

Triggered by a debugging nightmare, this reflection from engineer Florian Herrengt has struck a chord across the tech community. His team hit a stubborn bug for the fourth time, and even advanced AI coding assistants like Fable failed to resolve it. When asked about the data flow behind a feature, the original developer replied, "I don't know, let me ask Claude." This moment captures a hidden crisis: while AI accelerates code production, it quietly erodes our grasp of the systems we build.

The core issue is what we might call cognitive debt. AI promises efficiency, but it introduces a stealth cost: the complexity of the codebase grows faster than the team's ability to understand it. AI can instantly generate dozens of lines that look flawless, but they often carry implicit dependencies, unhandled edge cases, and legacy integrations. Developers stop writing code and start curating or stitching it together. As layers accumulate, the system becomes a labyrinth no one can fully trace. Debugging turns into feeding error logs into an AI and hoping its confident-sounding explanations are accurate. You think AI is your copilot, but it's slowly shifting you into blind-driving mode.

This reveals a deeper industry shift: AI is flattening the value curve of software engineers. Historically, mid-level engineers were the backbone of teams, translating business needs into maintainable code and untangling complex bugs. Now, AI handles much of that middle layer. Junior developers, armed with AI, can produce code that once required mid-level experience, while senior engineers focus on architecture and prompt engineering. The result is a structural squeeze on the mid-tier. The "middle class" of software engineering isn't just shrinking in headcount; its role is being fundamentally redefined. This isn't about fewer jobs, but a migration of where real engineering value lives.

So how do you avoid being undermined by the very tools meant to help you? The answer lies in shifting from code generator to system interpreter. Keep using AI for speed, but anchor your workflow with verification practices: require AI to output call-chain explanations alongside code, retain handwritten implementations for core modules, and conduct peer code reviews instead of relying on AI self-checks. For engineering leaders, redefine what "done" means. It shouldn't be feature deployment; it should be "at least two team members can independently explain how this works." Lightweight architecture decision records and dependency maps will outlast the temptation to chase raw AI generation speed.

Here's the counterintuitive takeaway: AI hasn't lowered the barrier to programming; it has raised the barrier to understanding. Anyone can prompt an AI to write code, but few can quickly spot architectural flaws, detect hidden coupling, or assess technical debt in AI-generated output. The real competitive advantage going forward won't be how well you use AI, but how fast you can recognize its confidence illusions and maintain sharp engineering intuition in increasingly opaque systems.

Analysis by BitByAI · Read original

Originally from Simon Willison · Analyzed by BitByAI