AI-based coding tools like Claude Code and its peers are changing the way we build software by making code dramatically cheaper to produce.
There is a massive caveat however: AI has not made it any cheaper to manage or alter state.
In this context, “state” emcompasses things like:
- Database Migrations: Modifying schemas and shifting data still takes the same careful planning and execution time.
- Infrastructure Changes: Provisioning and altering cloud resources haven’t inherently sped up.
- Code Deployment & Coordinated Releases: AI doesn’t magically accelerate a complex release involving multiple remote systems, backend services, and front-end clients.
Changes in API contract are therefore just as taxing to deploy as ever, as you need to mutate state in multiple distinct remote processes.
Where AI does shine is in clearing out stateless technical debt—whether that debt was left behind by a human or a previous AI run. AI agents absolutely excel at:
- Writing comprehensive test suites with reasonable coverage.
- Executing routine library updates.
- Handling external dependency vendoring.
Even massive, sweeping refactors across tens of thousands of lines of code can be successfully executed by an AI, provided you have a deterministic, reliable quality gate and rigorous regression tests in place.
The boundary is pretty clear: AI can ruthlessly optimise the stateless logic of your application, but it struggles to bail you out when things get sticky around persisted data and system boundaries. Why? Because state is hardware, the part of the world software can’t eat by design. Any vibeslop around state will eventually come back to haunt you.