How are you balancing tech debt vs. velocity with AI-assisted coding?
We're an AI-native startup shipping fast with augmented coding, but the debt it creates is different from anything I've seen before.
I remember in my old team we put aside around ~20% of engineering time to pay down debt that accumulated during feature releases.
We're deliberately using AI to go deeper, our test-coverage is through the roof but there are still things that slip through the cracks and they are hard to catch. At times parts of our codebase feel like a city where every building is fine on its own but nobody really planned the streets and too many windows are custom-built.
A few things we've landed on:
Set aside time each week to specifically work on paying down tech-debt and refactoring.
Leverage AI to go deeper when tech-debt surfaces. This starts usually with an audit for a specific topic and then branches into more thorough sub-plans.
Acceptance. I'm banking on the number of feature improvements to outweigh the problems a mountain of debt will create. I guess this is the closest to the honest trade-off great product and tech divisions have done for many years before the advent of coding agents.
Focus on reliability and observability. Not all tech-debt is equal but we are keeping a close eye on the most critical paths with additional infra to monitor for that.
What tradeoffs are you making, and what's working for you? Especially curious about teams that are heavily AI-assisted in their development workflow.
Replies
The speed is incredible, but AI-native tech debt hits differently. We've started forcing a 'no new features' rule for one day a week just to let our terminal agents refactor and clean up the spaghetti code.
As a non-technical founder building an agency, this resonates heavily. AI lets us ship customer-facing features incredibly fast, but if the 'streets' connecting everything aren't mapped out right, the product feels disjointed. Treating the team as strict architecture reviewers rather than just writers has been our saving grace.
memoiri
What I love about vibecoding or using AI in generall is to speed in everything. And because of that I don't hesitate to refactor a lot. Do you remmeber the times when you did't want to touch a feature because of technical debt? This, at least for me is something of the past. I Just rewrite it. Often it is faster to completly rewrite from scratch than to look for a bugfix