AI can code, but it can't build software

Can AI “build software” or just code?

  • Many agree LLMs are very good at producing code snippets, small utilities, CRUD APIs, wrappers, and test scaffolding.
  • Several argue that “building software” entails product discovery, tradeoffs, architecture, evolution over time, and non‑functional “ilities” (reliability, maintainability, security, scalability) — areas where current LLMs are weak.
  • Some note this critique also applies to humans: many can code but can’t engineer robust systems.

Experiences with coding agents and vibe coding

  • People report impressive successes: scientific simulations with full test suites, permission systems refactors, cloud infrastructure templates, and near‑production MVPs built largely by agents.
  • Others describe painful failures: duplicated logic, spaghetti React/JS, misused libraries, invented API methods, broken logging setups, and subtle framework mistakes.
  • “Pure vibe coding” (not reading the diff, letting agents run wild) is widely described as unpleasant and fragile; best results come when humans stay in the loop.

Architecture, maintainability, and technical debt

  • Common theme: LLMs default to copy‑paste, avoid abstraction, and don’t “decide to refactor” proactively. They optimize for local fixes, not coherent design.
  • Some use tests, strict linters, AST tools, and language‑specific analyzers (e.g. Roslyn, import‑linter) to enforce architecture and shape LLM output.
  • There’s concern that vibe‑coded MVPs are harder to harden than systems designed well from the start, echoing earlier low‑code/no‑code disappointments.
  • A minority speculate about a future where disposable, single‑use software makes traditional notions of technical debt less relevant for some apps.

Roles, skills, and organization

  • Many see LLMs as “super interns”: great at typing and boilerplate, poor at deep debugging and novel design.
  • Strong consensus that domain experts and engineers with deep system knowledge become more valuable, not less.
  • Worry about the junior→senior pipeline: if juniors mostly prompt or aren’t hired, who gains the hard‑won experience needed later?

Limits of current models and future trajectories

  • Constraints cited: small effective context, “context rot,” lack of training data on real messy internal code, weak long‑chain reasoning, and poor high‑level decision‑making.
  • Optimists expect continuous tooling and model improvements (agents with monitoring, analytics, autonomous iteration) to approach “effective engineer” status for narrow products; skeptics think truly replacing software engineers is decades away, if ever.