Engineering
5 guests 5 episodes 3,878 words

Things You Should Never Do, Part II: The Rewrite Question in the Age of AI

Should you ever throw away your codebase and start over, or is a rewrite always a doomed trap?

In 2000, Joel Spolsky called throwing away a working codebase "the single worst strategic mistake that any software company can make." A quarter century later, the answer turns out to depend on which crime scene you are standing in. Tanguy Crusson is standing in the wreckage of HipChat and Stride, the product Atlassian spent three years rewriting while Slack and Microsoft Teams lapped the field. Will Larson is standing next to a table of untouched sushi and champagne flutes, served at the Digg v4 launch party while the production site refused to come back up. Jay Baxter is inside the post-layoff X offices, where a forced audit of Community Notes discovered that deletion, not rebuilding, was the highest-leverage move the team had ever made. And Dhanji Prasanna, CTO at Block, is typing prompts to an AI agent, deleting the output, and calling this the new baseline.

Four rooms, four answers. What sounds like a simple engineering question — rewrite or evolve? — is really a debate about how much of your product's value is trapped in undocumented code, how fast competitors are moving, and whether the cost of rebuilding from scratch is still a universal constant or has just collapsed overnight.

You are staring at an aging system. It is hard to support, nobody wants to work on it, the business is asking for capabilities the architecture cannot gracefully absorb, and a competitor is moving faster. Do you take the engineers who want to go greenfield seriously and authorize a rewrite — or do you treat that impulse as the warning sign of a project that will eat your company? And in an AI-native world, does that calculus still hold?

HipChat / Stride

Atlassian's HipChat rewrite became Stride — by the time it shipped, Slack was miles ahead and Atlassian ultimately sold both to Slack

Tanguy Crusson lived through the failed rewrite that cost Atlassian the enterprise chat market; his advice now is absolutist: never do a rewrite

Digg

Digg v4 launch day: caterers, sushi, and champagne flutes around a table of engineers — because the site was not up. It took a month to come back

Will Larson lived through one of the most famous rewrite failures in startup history, driven by a genuine capability gap (social features) — and it still killed the company

Community Notes / X

After Twitter's layoffs, the Community Notes team audited the system and deleted parts whose maintenance cost exceeded their contribution — a partial, deletion-driven re-architecture that worked

Jay Baxter argues the right unit isn't 'the system' but the components that no longer pull their weight — small teams are forced into this discipline that large teams rarely do

Block

Dhanji Prasanna is pushing Block to live inside the assumption that every release should rm -rf the app and rebuild from scratch — using AI

His argument: the old anti-rewrite rule was downstream of human labor cost, and in an AI-native world specifications become the durable artifact while code becomes ephemeral

Rent the Runway / Two Sigma

Camille Fournier's diagnostic question that kills most rewrites: 'If I could leave this system alone for a long period without it harming my business, is it worth changing at all?'

Her argument is evolutionary: take pieces of the old system, uplift them, clean up tech debt in place — migration cost is almost always underestimated

The Synthesis

None of these five voices is actually arguing the simple question Spolsky posed. The real disagreement is about the right unit of change. Fournier says it is a subsystem. Crusson says it is your entire competitive position, and the answer is to not touch it. Larson says it is the engineering team's belief, which collapses within thirty days if the new thing does not work. Baxter says it is the individual component, and the move is deletion, not replacement. Prasanna says it is the release, and the code itself is the wrong thing to protect — the specification is.

01
The Unit of Change
What are you actually rewriting?
02
Fournier's Diagnostic
If you ignored this, would the business actually be harmed?
03
Stacked Hard Things
How many hard bets are you stacking on one decision?
04
Deletion as the Middle Path
Have you actually audited what's earning its keep?
05
The Coefficient Has Changed
Was the anti-rewrite rule protecting a cost that still exists?

Fournier says the unit is a subsystem. Baxter says it's a component (mostly deletion). Larson says it's team belief — which collapses within thirty days if the new thing doesn't work. Prasanna says it's the release and code itself is the wrong thing to protect. The real disagreement isn't rewrite-or-evolve; it's what the right unit of change even is.

Camille Fournier's question kills most rewrite impulses before they form. If the honest answer is no, the rewrite is an aesthetic project and you should stop. Most rewrites are disguised attempts to solve a non-technical problem with a technical solution — HipChat's real problem was Slack's PMF, not its platform.

Crusson's HipChat lesson isn't that rewrites are impossible — it's that a rewrite, a platformization, and a competitive war were each hard individually, and stacking all three at once was fatal. The rewrite was the one Atlassian had the most control over and should have refused. Ask which dependencies are real and which you chose.

Jay Baxter's post-layoff X audit found that deletion — not rebuilding — was the highest-leverage move. A/B-test wins are measured in one-month windows, but maintenance costs compound for years. The interesting move is rarely rewrite or evolve; it's honest component-level cruft removal that normal orgs never get around to without external pressure.

Prasanna's contrarian move: 'never rewrite' was never a law, it was a consequence of economics. Generation and re-derivation used to be expensive. If AI collapses that cost, the rule protects you from something that no longer exists. The test is whether specifications can reliably capture tacit knowledge — nobody has shipped this at scale yet.

Which Approach Fits You?

Answer 3 questions about your situation. We'll match you to the right approach.

Question 1

What is the honest answer to Fournier's diagnostic: if you left this system alone for a year, would your business actually suffer?

Question 2

What is the competitive context?

Question 3

How confident are you in your team's understanding of the old system?

Notable Absences

The Bottom Line

The insight underneath all of this: the rewrite question is really a question about trust. Fournier is protecting engineering managers from their own teams' ambition. Crusson is lending you his pattern-matching so you do not have to lose a product to get it. Larson is offering a specific image — sushi, champagne, a dark production site — to cache against a decision your team will otherwise rationalize into existence. Baxter is quietly admitting that most engineering orgs will not make these trade-offs without external pressure. The debate is not really about code. It is about which failure mode you find easier to recover from: the rewrite that never ships, or the legacy system that slowly becomes unshippable.

The newsletter archive suggests a quieter path most successful companies actually take. "How Miro builds product" documents a 60/20/20 split that treats tech debt reduction as a continuous line item, dynamically reweighted when legacy burden grows — so pressure for one giant catastrophic rewrite never builds up. "How Perplexity builds product" sharpens it: tech debt work is only prioritized when it unlocks a user-visible capability, which is exactly Fournier's staged-evolution alternative. "Introducing Core 4" offers the measurement discipline the anti-rewrite camp is implicitly demanding — tech debt repayment as a business metric rather than an engineering aesthetic, so teams can distinguish a healthy piecewise evolution from a vanity rewrite before committing the capital.

  1. Camille Fournier"The things engineers are desperate for PMs to understand | Camille Fournier (author of “The Manager’s Path,” ex-CTO at Rent the Runway)" — Lenny's Podcast, September 15, 2024
  2. Tanguy Crusson"Hard-won lessons building 0 to 1 inside Atlassian | Tanguy Crusson (Head of Jira Product Discovery)" — Lenny's Podcast, June 16, 2024
  3. Will Larson"The engineering mindset | Will Larson (Carta, Stripe, Uber, Calm, Digg)" — Lenny's Podcast, January 7, 2024
  4. Dhanji R. Prasanna"How Block is becoming the most AI-native enterprise in the world | Dhanji R. Prasanna" — Lenny's Podcast, October 26, 2025
esc
Loading…
navigate filter openesc close