Home/Solution Desk/Choosing between options
Choosing between options

Should we rebuild our software or rescue what we have?

The situation

Your engineers want to rebuild. Delivery has slowed, the codebase is unpleasant, and you cannot tell whether this is a genuine architectural dead end or the normal condition of software that has been shipping for years.

Short answer

Rescue is right more often than teams expect. Rebuild only when the data model is fundamentally wrong for the business you now are, when the stack blocks hiring, or when security or compliance cannot be retrofitted. Slow feature delivery and code your current team dislikes are not rebuild criteria — they are usually process or familiarity problems. A rebuild restarts the clock on every bug you have already fixed, and the second system reliably takes longer than the estimate that justified it.

A useful forcing question: can you ship one meaningful change to the existing system in under two weeks? If yes, the system is not the constraint and a rebuild will not fix what is. If no, find out precisely what blocks it — test coverage, environment setup, one unowned module — because that is usually a bounded piece of work rather than a rewrite. Strangler-pattern replacement, where new functionality is built alongside and traffic moves gradually, carries far less risk than a cutover.

Rebuild vs rescue: which the evidence supports
Signal Rescue Rebuild
Data model Workable, extends to new cases Fundamentally wrong for the business you now are
Hiring Stack is unfashionable but hireable Stack actively blocks hiring
Security and compliance Can be retrofitted Cannot be retrofitted at any sensible cost
Delivery speed Slow — usually process or test coverage Slow because architecture forbids change
Team sentiment Not a criterion on its own Not a criterion on its own
Typical cost Bounded — weeks of targeted work Restarts the clock on every bug already fixed

Forcing question: can you ship one meaningful change in under two weeks? If yes, the system is not the constraint. Strangler-pattern replacement carries far less risk than a cutover.

What makes a rebuild look tempting

  • Engineers are optimistic about greenfield. A rebuild estimate rarely includes the undocumented edge cases the current system quietly handles.
  • Unfamiliarity reads as bad code. A codebase whose authors have left feels far worse than it is. That is a documentation problem with a much cheaper fix.
  • Slow delivery is often process. No test coverage, no CI, manual deploys and unclear ownership slow teams down independently of code quality.

How to decide between rebuilding and repairing

  1. 01
    Instrument before deciding. How long does a one-line change take from commit to production? If the answer is days, fix the pipeline before judging the code.
  2. 02
    Ask whether the data model matches the business you are now. Wrong data model is the strongest genuine rebuild signal.
  3. 03
    Test the hiring argument honestly. 'Nobody wants to work on this stack' is real if you have failed to hire; it is not real if you have not tried.
  4. 04
    Consider strangling instead. Replacing one bounded area at a time keeps you shipping and de-risks the estimate.
  5. 05
    Get an independent read. Your team is not neutral about their own codebase — nobody is.
Where it gets hard

The honest answer usually disappoints someone. Recommending rescue frustrates engineers who want a clean start; recommending rebuild alarms a board that just funded the current system. That is why we run this as a fixed-scope technical audit with the findings delivered regardless of what they say — including when the recommendation is to keep the system and the team you already have, which is a conclusion a firm selling rebuilds cannot reach.

More on rebuild-versus-repair

Yes, and it is a large share of our work. We start with a fixed-scope audit rather than a blind quote, so you get an honest read on what exists before committing to a direction.

It sits in the Diagnose layer at $7,500-$20,000 depending on system size. You keep the findings whatever you decide, including if you decide not to work with us.

Rescue typically shows measurable improvement in four to eight weeks because you are removing specific blockers. A rebuild is usually three to nine months before parity — during which you are maintaining two systems.

Still not sure this is your problem?

A 20-minute fit check. We will tell you if it is something you can fix without us — that happens often enough that we lead with it.

Book a Strategy Session

Browse every answer.

The full Solution Desk — specific questions, straight answers, no gate.

Open the Solution Desk
Book a Strategy Session