I’ve been thinking a lot about the discussion Michelle started about tech debt time allocation, and something keeps nagging at me: are we solving the wrong problems?
Gartner predicts that by 2026, 80% of technical debt will be architectural—not the code-level issues that our linters and code review tools catch. We’ve built this whole ecosystem of tooling around code quality: Prettier, ESLint, SonarQube, automated code reviews. But if the real debt is in our system design decisions, are we just polishing the rails on the Titanic?
What Design Systems Taught Me About Structure
Working on design systems over the past few years taught me something crucial: structure matters way more than individual implementation quality.
You can have perfectly formatted, beautifully written component code. But if your component taxonomy is wrong—if you’ve created 14 different button variants because you never established clear patterns—the code quality doesn’t matter. The structural problem compounds with every new feature.
I see the same pattern in system architecture. Perfect microservice implementations don’t help if you drew the service boundaries in the wrong places. Clean code doesn’t fix tight coupling. Linters can’t detect over-abstraction or premature optimization.
The Real Debt Is Invisible
Here’s what scares me: architectural debt is invisible until it’s catastrophic.
Code debt shows up in your IDE—warnings, failed tests, slow builds. But architectural debt? It shows up when:
- A simple feature takes 6 months because it crosses 8 service boundaries
- You can’t scale because your data model doesn’t support sharding
- You can’t onboard new engineers because nobody understands the system boundaries
- You can’t migrate to the cloud because your monolith assumptions are baked in everywhere
By the time you notice, the cost to fix is enormous.
What Tools Actually Address This?
So here’s my question for the engineering leaders in this community:
What practices or tools actually help with architectural debt?
Code review catches syntax and logic issues. But who reviews architecture? How do you even measure architectural quality? What prevents architectural decay over time?
I’ve seen mentions of Architecture Decision Records (ADRs), periodic architecture reviews, modular diagrams. But I’m not sure what actually works in practice versus what sounds good in theory.
Have you found ways to make architectural health visible and measurable? Or are we just winging it on the most expensive type of technical debt?
This feels like a fundamental gap in our industry tooling and practices. We’ve solved code quality measurement, but architectural quality is still gut feel and hindsight.