Every software product is a maintenance burden. Industry benchmarks put software maintenance at 50–80% of a product's total lifetime cost of ownership. As the code production velocity increases the burden of maintenance will only increase unless we make changes in how we design our software. Enterprise softwares usually age poorly because of the accumulation of this burden over time — McKinsey reports that nearly 70% of software in Fortune 500 companies is over two decades old — and they dont upgrade their stack frequently and because of that they dont take advantages of the new advances in technology. Most enterprise dont upgrade their stack frequently and as a result they end up having a outdated stack. End-of-life, security updates, feature updates, bug fixes, performance improvements - these things usually dont happen in most of the enterprise software until unless there is a major push from the leadership or a crisis happens - primarily because they dont have the bandwidth to handle these things or the cost of upgrades is too high. Per Gartner, maintaining legacy applications can consume up to 80% of IT budgets — when most of the money is already going to keep what exists running, there is little budget left for what comes next. The cost of upgrades is not just the engineering time but also the risk associated with the upgrade.
Technical Debt
The accumulated cost of every engineering shortcut a company has taken — unupgraded dependencies, workarounds instead of proper fixes, skipped tests, knowledge that lives in a wiki instead of in the code — compounded across teams and decades. The “debt” isn't figurative: generally comes back in slower delivery, security exposure, integration friction, and eventually, rewrites that cost many times the original shortcut.
If you have been in software industry for a long time, you must have seen or heard that there are is always some old system sitting somewhere in the company that most of the people dont want to touch. Because if they touch it, it will most likely break.
Coming to the new world: The speed at which we are producing code using AI agents, eventually, in the near future, these agents will be responsible for maintaining these systems as well. And the high-velocity engineering teams and individuals I'm watching are already using these patterns to design enterprise software with the assumption (and mindset) that AI agents will maintain it or at least will be a major part of future maintenance.
This is not just about convenience or faster maintenance cycles. It's a strategic pivot in how we engineer software.
The old model: Software locked to its team
For the last 3 decades, the working assumption was: complexity scales with headcount and domain expertise. Senior architect and engineers carry why we did X in long and usually outdated documentation. Architectural decisions live in discussion threads, team chats, wikis, and sometimes outdated ADRs. Tribal knowledge is an essential ingredient in software.
This makes systems people-oriented. They degrade when people leave. New hires take months to be productive because the knowledge isn't in the code — it's documented somewhere else.
Then technology changes compounds the problem. A modern production stack touches a frontend framework, a backend language or two, a SQL database, message queues, CI/CD, observability, auth, infrastructure-as-code, and now a layer of model APIs. Each new technology multiplied the maintenance burden faster than human bandwidth could absorb. Upgrades became risk events — a framework version bump meant weeks of rewrite, often by engineers who hadn't touched that part of the stack in months.
That model worked when there was no alternative. There's an alternative now.
Designing for the AI maintainer
The teams I'm watching are starting to design code, infrastructure, and observability with a specific reader in mind: The next human hire will be well aware of AI and AI agents are starting to be the preferred choice for most of the tasks for the enterprise teams in the future.
The bet on AI maintainers is partly a bet on an asymmetry. A modern production stack spans multiple languages, frameworks, and platforms at once, and humans are naturally weak at cross-stack work — fluency degrades on whichever piece you haven't touched in a month, and even if you are an expert in multiple languages and frameworks, it takes time for context switching. AI agents don't pay that tax. They carry every language and framework with equal load: your agent can build a mobile app in a modern framework one hour and convert your legacy .NET codebase into TypeScript the next, while doing the security audit on it in parallel. The thing that's hardest for humans — cross-stack knowledge at depth, simultaneously — is what frontier models are specifically designed to do. Provided your codebase gives them what they need.
This sounds counterintuitive. Designing for an AI reader doesn't degrade quality — it forces a cleanliness most teams have never enforced for themselves. The agent doesn't have a Slack history to back-channel through. It can't ask the original architect why is this here? It has only what's in the repository. Which means:
- Clear naming, not naming-tied-to-team-culture.
- Explicit architectural intent in the code, not in someone's head.
- Modular boundaries with real contracts, not everyone here knows what this returns.
- Determinism over magic — agents struggle with implicit behavior.
CIO Magazine framed this earlier this year as “engineers as orchestrators, not creators.” Databricks calls it “a new development paradigm for intelligence applications.” Different labels for the same observation — the engineering work is moving up the stack, and the code that's getting written is increasingly meant to be read by something other than the team that wrote it.
Core design principles
What does “designed for AI maintainers” actually look like in practice?
- Clear intent in the code itself. Function names that name what they do, not what the team's slang calls them. Comments that explain why, not what (the agent can read the what). Types that are explicit about contracts.
- Modular boundaries with hard contracts. Small surfaces, well-defined interfaces. The agent shouldn't need to read 800 files to understand a change. The boundary makes the unit comprehensible in isolation.
- Deterministic patterns over clever ones. A boring repeating pattern is easier for an agent to extend than an elegant one with implicit conventions. Predictable beats elegant when the maintainer doesn't have your context.
- Infrastructure as code with zero tribal knowledge. Every resource defined declaratively. No “yeah, we SSH in and tweak that one variable in prod.” The repo is the source of truth, full stop.
- Observability baked in from day one. Structured logging, traces, and metrics around every boundary so the agent can diagnose rather than guess. An agent maintaining a system needs to see what's happening, not infer it from forum posts.
- Boundary-scoped documentation. Agentic tools generate documentation constantly — markdown files, HTML reports, draft ADRs as a byproduct of every task. Sheer volume becomes noise that confuses future agents as much as it would a new hire. But when service boundaries are well-defined, that auto-generated documentation turns into something useful: an incremental snapshot of decisions and direction, scoped to a single comprehensible unit. The boundary is what turns documentation from clutter into an asset.
- Agent instruction files at the repo root. The major coding agents — Claude Code, OpenAI Codex CLI, Cursor — now read top-level instruction files (
AGENTS.md,CLAUDE.md) at session start: the project's conventions, build commands, common gotchas, and constraints in agent-readable form. This is tribal knowledge made explicit — the answer to “what does the agent need to know about this codebase that isn't obvious from reading it?” Without it, the agent will infer the wrong patterns from the first file it reads.
These aren't new principles. The shift is that we used to call them “best practices most teams skip.” Now they're load-bearing — the system literally can't be maintained by an agent without them.
The ecosystem is converging on the same move
This isn't just happening inside your codebase — it's happening at the platform layer too. Anthropic's Skills became widely adopted in 2026; modular packages of instructions, scripts, and resources that an agent loads on-demand. The MCP Registry now has thousands of servers and it has kept growing, with broader roadmap.
Both are the same move at the platform layer: codifying essential work as well-defined documents that agents can ingest. What used to live in a senior engineer's head as “I know how we do deploys” becomes a Skill. What used to be a brittle integration with an internal admin tool becomes an MCP server. Tribal knowledge gets democratized into capability artifacts any agent — yours, your customer's, your future hire's — can load.
When you design code for AI maintainers, you're not betting against an empty platform. The substrate is being built for you, in the same shape — and enterprise software for the rest of this decade is going to be built on top of it.
Foundational shifts at the big tech
This isn't a private pattern or happening in a bubble. The CEOs of the largest software organizations have publicly committed to it, with specific numbers and specific tools.
- Sundar Pichai, Google. At Google Cloud Next in April 2026, Pichai said 75% of new code at Google is AI-generated.
- Tobi Lütke, Shopify. His April 2025 memo, now public: “Reflexive AI usage is now a baseline expectation at Shopify.” Employees must prove AI can't do the job before requesting headcount.
- Aaron Levie, Box. “Each engineer is 2X or 5X more capable” with AI, per Levie's May 2026 statement. Box is hiring more engineers, not fewer.
- Jack Dorsey, Block. Block built its own agentic engineering tool, codename goose, open-sourced it in February 2025, and uses it internally for engineering productivity. Building your own agent stack is a public position from a public-company CEO.
Different ratios, different mechanisms, same direction. AI is no longer auxiliary tooling — it is structurally embedded in how the largest engineering organizations ship. The teams you compete with for hiring, for customers, and for revenue have all crossed this line publicly.
The economics of maintenance
Software designed for AI maintainers stops degrading when people leave. Better yet: it improves as the agents and underlying models improve. Every model or coding agent upgrade is automatically a maintenance capability upgrade for your codebase.
The maintenance budget shifts shape. It used to be headcount × tenure × institutional memory. It's becoming good API calls × good engineering principles enforced up front. Your software's lifespan is no longer a function of how long your senior engineers stay.
Future of software development
Anthropic's Dario Amodei predicted in March 2025 that AI would be writing 90% of code within three to six months. The timeline is subjective but it still hold true. By April 2026, Sundar Pichai confirmed at Google Cloud Next that 75% of new code at Google is now AI-generated. Amodei's expectations were not far off. The transition to AI-first engineering is real.
- Context. Claude Opus 4.8 (released May 28, 2026) reads your entire codebase in a single request, with Claude Code rate-limit bumps for high-effort sessions.
- Capability ceiling. Anthropic released Fable 5 and Mythos 5 on June 9, 2026. Four days later, the US government compelled Anthropic to disable both for foreign access. The frontier crossed a line visible from inside government compliance offices.
- Time horizon. Cursor's long-running agents preview runs for weeks. Devin's pitch is “your fleet of agents.” Single-prompt → single-response is not the unit of work anymore.
- Validation loop. Browser automation — Playwright MCP, Claude in Chrome — closes the verification step. The agent that wrote the code can drive the browser, run the tests, and prove the change. The verification path no longer needs a human in it.
What the high-velocity teams are betting, when they choose to design for AI maintainers, is this: in 18 more months, the agent reading our codebase will be more reliable at extending it than whoever's hired next. They're designing for that future, not for their present team.
It might be wrong. But the teams making it are also the teams shipping fastest right now — which suggests they're not just speculating; they're optimizing for the cost structure they actually expect.
What's in it for you
The old engineering mantra: code is read more than it's written. That hasn't changed. What's changed is who's doing the reading.
You're not building software anymore. You're building handoff documentation that compiles.