Skip to content
Wade Womersley

wade.one

wade womersley – york based software engineer

  • Home
  • 2026
  • March
  • 28
  • When I Recommend a Rewrite, and When I Absolutely Don’t

When I Recommend a Rewrite, and When I Absolutely Don’t

Posted on March 28, 2026June 8, 2026 By Wade
Programming, Software Engineer

I do recommend rewrites sometimes. Just not nearly as often as people hope I will.

Most rewrite discussions start from pain, not clarity. The system is annoying, the code is messy, delivery is slow, and everybody wants the emotional relief of starting again. I understand that impulse. But in consulting work, “I am tired of this codebase” is not the same thing as “a rewrite is the best decision.”

When I absolutely do not recommend a rewrite

I do not recommend a rewrite when the real problems are things a rewrite will not solve.

That usually means:

  • poor product decisions
  • weak ownership
  • slow review and release processes
  • missing tests and observability
  • confused business rules
  • a team that has not really understood the current system yet

If those are the issues, then rebuilding the software usually just recreates the same mess in a newer stack.

I also do not recommend a rewrite when the business cannot tolerate a long, risky period of duplicated effort. If the team needs continuous delivery, predictable change, and stable operations, then a big-bang rebuild is often the wrong shape of work.

And I definitely do not recommend a rewrite just because the code looks old. Old is not the same thing as broken.

When I do recommend a rewrite

I recommend a rewrite when the current platform is genuinely boxed in and the team can explain why incremental replacement is not enough.

That usually involves some combination of:

  • unsupported or unpatchable runtime dependencies
  • architecture that makes safe change nearly impossible
  • deployment or security posture that is no longer acceptable
  • infrastructure constraints that block the business from moving
  • cost of incremental change that is consistently worse than replacement

Even then, I still want a serious plan.

If a team wants me to back a rewrite, I want to know:

  • what problem this solves in business terms
  • which parts must be rebuilt and which do not
  • how critical behaviour will be preserved
  • how migration risk will be controlled
  • how the team avoids building a second messy system with better branding

If those answers are vague, I assume the rewrite case is weak.

What I usually push for instead

Most of the time, the right answer is controlled replacement rather than a full reset.

That might mean:

  • replacing one bounded subsystem first
  • wrapping unstable internals behind cleaner APIs
  • separating the highest-risk workflows before anything else
  • improving deployment, testing, and observability before touching architecture
  • removing the worst operational pain before chasing elegance

That work is less exciting than announcing a rewrite. It is also usually more responsible.

My view

I recommend rewrites when the current system is genuinely beyond safe or sensible improvement.

I absolutely do not recommend them when the team is really trying to escape frustration, poor discipline, or years of unclear decisions.

That distinction matters.

Because a rewrite can be the right call.

But most of the time, disciplined change beats a dramatic restart.

Share:

  • Share on Facebook (Opens in new window) Facebook
  • Share on X (Opens in new window) X
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Pinterest (Opens in new window) Pinterest
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Share on Reddit (Opens in new window) Reddit

Related

Comments

comments

Tags: consulting legacy-systems rewrites software-architecture

Post navigation

❮ Previous Post: What Makes a Legacy System Dangerous
Next Post: Why Senior Engineers Are Really Paid for Judgment ❯

You may also like

AI
AI Coding Agents Are Becoming Normal Developer Infrastructure
April 24, 2026
Programming
Regex-fu #PHPUK2010
February 26, 2010
Programming
Standardising logging and parallelisation in multiple languages
February 7, 2015
News
Link Checker – Free Tool Launched on Site
October 22, 2009
  • AI
  • artificial intelligence
  • Ego-centric
  • Events
  • Films
  • Food
  • Gaming
  • Gym
  • Hardware
  • Holidays
  • News
  • PHP
  • Programming
  • Random Stuff
  • Reviews
  • Science
  • SEO
  • Software
  • Software Engineer
  • Support
  • Uncategorized
  • Work

Copyright © 2026 wade.one.

Theme: Oceanly News Dark by ScriptsTown