Dec 23, 2025
Chad Fowlers take on principles for how the craft of software changes in the AI era:
The metaphor I keep returning to is the phoenix: systems designed to burn and be reborn, continuously, without losing their identity.
A regenerative system has a few defining traits:
- Clear, durable boundaries that outlive any implementation
- Tests and evaluations that define correctness independently of code
- Automation that assumes replacement is normal, not exceptional
- Explicit acceptance that code will rot, drift, or become incomprehensible
- Cultural comfort with deletion, rewriting, and starting over
In such systems, failure is localized, recovery is fast, and improvement emerges through iteration rather than preservation.
The goal is not immortality of code. The goal is immortality of intent.
Which seems hard to disagree with. The only thing I would argue is that I think this has always been the case. One thing we consistently get wrong as a profession is estimating the expected life of a codebase, and history is littered with many examples of failed rewrites. Maybe this time is different. A blog to watch!
Regenerative Software