I’ve been thinking about the collision of two trends that should worry all of us in technical leadership.
The Architectural Debt Crisis
Gartner now predicts that by 2026, 80% of all technical debt will be architectural. Not the kind you fix in a weekend refactor sprint. We’re talking fundamental system design decisions that compound over years—monoliths that should be services, databases that should be distributed, coupling that should be interfaces.
The recommended approach? Allocate 15-20% of each sprint to debt reduction. But here’s the reality: McKinsey reports technical debt already consumes up to 40% of engineering time at many companies. We’re not keeping up.
The AI Code Generation Wave
Meanwhile, AI coding tools are everywhere. My team uses them. They’re genuinely helpful for boilerplate, unit tests, routine implementations. The velocity gains are real—we’re shipping features faster than ever during our cloud migration.
But I’m starting to see a darker pattern. We’re generating code faster than we can review it architecturally. Developers feel productive (and they are, for certain tasks), but we’re creating a new category of debt: AI-generated code that works but doesn’t fit our system’s design principles.
Recent research from Anthropic showed developers using AI assistance scored 17% lower on comprehension tests. They’re delegating not just typing, but understanding. When those developers move to the next project, that AI-generated code becomes legacy code—fast.
The Compounding Effect
Here’s what worries me: these two trends compound each other.
Our architectural debt makes it harder to evaluate whether AI-generated code fits our system. Without clear architectural boundaries, every AI suggestion looks plausible. And because AI tools don’t understand our system’s long-term evolution, they optimize for “works now” not “maintains well.”
I’m seeing this play out in our 50-to-120 engineer scaling. New developers default to AI tools without learning our architectural patterns first. Code reviews catch syntax, but miss architectural drift. By the time we notice, we have entire features built on approaches we’re trying to phase out.
The Velocity vs. Sustainability Trap
The business case for AI tools focuses entirely on velocity: “Ship 20% faster!” “Reduce headcount needs!” But the ROI calculation is incomplete. It measures speed to first deployment, not total cost of ownership.
When AI helps you ship a feature in 3 days instead of 5, but that feature takes 10 days to refactor next quarter because it didn’t fit the architecture—did you actually gain 2 days? Or lose 3?
What I’m Trying
I don’t have answers, but here’s what we’re experimenting with:
-
Architectural review before AI generation: For any new feature, lead engineer drafts the architectural approach first. Then AI can help with implementation details within that structure.
-
AI-generated code gets extra review: We explicitly flag AI-heavy PRs for architectural review, not just functional review.
-
Debt budgets include AI debt: When measuring tech debt, we’re trying to identify and track AI-generated code that creates maintenance burden.
-
Teaching architecture alongside tools: New engineers learn our system’s design principles before they start using AI assistants heavily.
The Uncomfortable Question
Are we automating ourselves into a crisis? Or is this just the normal friction of adopting powerful tools?
I lean toward the former. Architectural debt is already at crisis levels for many companies. AI tools are productivity multipliers—but they multiply whatever process you have. If your process doesn’t maintain architectural coherence, AI will help you lose coherence faster.
The real question isn’t “Should we use AI coding tools?” It’s “How do we get the velocity benefits without compounding our architectural debt problem?”
I’d love to hear how others are thinking about this. Especially if you’re also scaling teams while managing legacy systems while adopting AI tools. Are you seeing similar patterns? Different approaches working?
Sources & Further Reading: