A former Meta engineer reports that while AI tools can generate the vast majority of a codebase, they often produce 'brittle' code that fails to account for long-term scalability and high availability. This shift toward AI-driven development is increasingly becoming a corporate expectation, yet it may be creating a cycle of 'enshittification' where software is optimized for machine logic rather than human users or maintainability.

Mechanisms of Codebase Fragility

AI models tend to solve problems that fit within their immediate context window, often ignoring long-term architectural implications. This results in four primary types of fragility: shallow testing, over-complexity, diminished human understanding, and a high velocity of code that outpaces human review capabilities.

For example, AI agents may write numerous tests for simple get/set methods while failing to cover complex end-to-end scenarios. This creates a false sense of security because line-level coverage metrics remain high even though critical user paths remain untested.

“AI tends to solve the problems that can fit within its context window very well, but it's totally oblivious to the long term issues that can't be understood in that relatively small frame.”

— AI usage generates a fragile codebase

Impact on Maintenance and Incident Response

A codebase heavily reliant on AI can experience a rise in production incidents over time. Because the human developers on the team may have a shallower understanding of the underlying algorithms and data structures, identifying the root cause of a failure becomes more difficult.

When a production issue occurs, developers must navigate a complex, poorly tested territory. This lack of familiarity extends the time required to mitigate incidents, potentially leading to greater financial and operational losses for SaaS providers.

The Human Touch vs. Machine Logic

The author argues that software made by AI for AI lacks the 'human touch' necessary for high-quality products. While AI can produce functional code, it may fail to tailor the experience to how human users actually interact with a product or how human developers need to maintain it.

The trade-off involves a choice between the speed of AI generation and the resilience of human-designed architecture. For high-quality software, the author suggests that a human perspective remains essential to ensure the product is charming, enjoyable, and structurally sound.

What Hacker News readers are saying

  • Experience: One commenter who managed a 500,000-line mobile app codebase over seven months argued that the fragility of AI-generated code was inconsequential in practice and that maintenance actually became easier with model advances. comment ↗
  • Experience: Another user shared that their experience was the opposite of the article's claims, noting that LLM-generated code's verbosity and rigidity acted as a forcing function for specificity that reduced production bugs. comment ↗
  • Skeptical: Several commenters suggested that the concerns about AI-generated fragility might be overstated, noting that large human-written codebases also inevitably decay into 'spaghetti code' regardless of the tools used. comment ↗
  • Alternative: One commenter suggested that using statically typed languages and functional programming can ensure code strength by limiting tests to only those things that the type system cannot already verify. comment ↗

Summarized opinions from the Hacker News thread, not verified facts. Read the full discussion ↗