Decision guide

Should you fix existing software or rebuild it?

Weigh fixing, partial renewal and rebuilding existing software by cost, business value and migration risk, and keep a record of the decision.

Short answer

Incremental fixing is usually less risky and delivers value faster than rebuilding; working business rules and data are very valuable. A rebuild should come into question only when the data model or dependencies limit the current structure beyond repair and the migration risk is acceptable.

When fixing has value

If business logic works, setup is reproducible and problems are concentrated in specific modules, incremental improvement can preserve value. Start by improving tests and observability around critical workflows.

The precondition for fixing is making change safe: automated tests for critical flows, error monitoring and a repeatable setup. If that foundation is missing, building it first strengthens both the fix and the rebuild decision.

When replacement may be needed

Unsupported dependencies, an unsuitable data model or lasting operational constraints may justify broader changes. Account for migrating existing data and business rules into the replacement.

Even when renewal is needed, it can often be done in slices rather than all at once: build a new part next to the old one and move flows over one by one. That approach reduces the risk of one big cut-over day.

Record the decision

Use the same goals for fixes, partial replacement and a full rebuild. Document cost, transition risk, disruption and time to first value. A wish to adopt new technology is not sufficient justification.

Record the decision for all three options against the same criteria: time to first value, migration risk, business interruption and later maintenance cost. A team's excitement about new technology or discomfort with the old is not a reason; a measurable difference is.

A small trial before deciding

Pick a critical flow and try it as a small slice both by fixing and by rebuilding. Record how long it took, what surprises appeared and how testable the result is. This trial gives a much more reliable basis for the decision than estimates.

Compare before deciding

The table below is a starting framework. Fill in each row for your own system; where you have no evidence for a row, plan a small measurement that produces it before deciding.

Compare before deciding
CriterionFavours repairFavours replacement
Business rulesExisting behaviour is valuable and recoverableRequired model cannot fit the current structure
DeliverySmall fixes can ship independentlyAn independent replacement slice can run
Migration riskExisting data and workflow stay in placeData conversion and parallel operation are needed
Decision evidenceMeasure repair effort on one critical workflowBuild a replacement slice of that same workflow

Frequently asked questions

The questions we hear most often in the fix-or-rebuild decision.

Is being written in old technology a reason to rebuild by itself?

No. Old does not mean wrong. If concrete consequences such as unsupported dependencies, security risk or being unable to find people who know the technology cause problems, those are the reasons.

How risky is a rebuild?

Capturing the old system's implicit business rules, migrating the data and running old and new in parallel for a while usually takes more effort than expected. To reduce the risk, proceed in slices with measurable acceptance criteria.

What is partial renewal?

It means separating out a problematic module or layer and rebuilding it while keeping the rest. It is a good middle path if the shared data model and interfaces are clearly defined.

Should I get an outside opinion for the decision?

Opinions within a team often carry loyalty to one option. An independent assessment makes the evidence comparable; our software project recovery service covers decisions like this.

Related service

Software Project Recovery and Handover ↗

For unfinished or undelivered software projects, we assess the current state, risks and options, and prepare a handover and completion plan.

Your next step

Discuss your software project

Tell us your goal, current tools and the problem you want to solve. We can identify a practical starting point together.