[ In short ]
Is your software project failing? How to rescue it: the rewrite vs refactor decision, the strangler fig approach and six checks before you start over.
When a software project is failing, the instinct is to throw everything away and start over. Sometimes that is right. Most of the time it is the most expensive option on the table, and it rarely fixes the reason the project failed in the first place.
This guide covers how software project rescue works in practice: how to read the warning signs, how to decide between a rewrite and a refactor, and the six checks we run before recommending either.
01Why software projects fail
Failed software projects rarely fail because of one bad decision. They drift. Shortcuts pile up as technical debt, the original developer leaves, nobody writes things down, and every release becomes a gamble. Common patterns:
- Scope keeps growing while the foundations never get fixed.
- Only one person understands the code, or nobody does.
- There are no automated tests, so every change is risky.
- Dependencies are years out of date and blocking upgrades.
- The vendor relationship broke down before the product shipped.
02Rewrite vs refactor: the core decision
A refactor improves the existing code step by step without changing what the product does. A rewrite rebuilds the product from scratch on a new codebase. The question is not which one is better in general, but which one is cheaper and safer for your product today.
| Refactor | Rewrite | |
|---|---|---|
| Best when | The core works and the data model is sound | The architecture blocks every change |
| Product during the work | Stays live and keeps shipping | Old product frozen or maintained in parallel |
| Main risk | Moving slowly without clear priorities | Cost, delay, and losing hidden business rules |
| Value delivered | Continuously, release by release | Mostly at the end |
Why full rewrites so often disappoint
In a well-known essay from 2000, Joel Spolsky called rewriting code from scratch one of the worst strategic mistakes a software company can make. The reasoning still holds: an old codebase contains years of fixes for edge cases nobody remembers. A rewrite has to rediscover all of them, while the old system still needs to run and the business still needs new features.
The middle path: the strangler fig approach
Martin Fowler described the "strangler fig" pattern: build new parts around the old system and route traffic to them one piece at a time, until the old system can be switched off. It gives you most of the benefits of a rewrite with the risk profile of a refactor. It is often what a good rescue looks like.
03Six checks before you decide
- Can the project be built from scratch? If nobody can build it on a fresh machine, start with documentation and configuration, not a rewrite.
- What actually works in production? Features customers use and pay for carry value, even if the code is ugly.
- Is the data model sound? A healthy database lets you rebuild around it. A broken one must be fixed first either way.
- How old are the dependencies? Outdated frameworks explain many "nothing ships anymore" situations and can be upgraded in stages.
- Is security under control? Exposed secrets, shared admin accounts and missing patches come before any new feature.
- What does each option cost? Price repair, refactor and rewrite side by side. Without numbers, the decision is a feeling.
04Why adding developers rarely saves a late project
The usual reaction to a late project is to add people. Fred Brooks warned about this back in 1975: adding manpower to a late software project makes it later. New developers need time to understand undocumented code, and the people who know it spend their days onboarding them. A rescue starts by making the project workable, not by making the team bigger.
05Signs you need a rescue, not more features
- Every estimate is wrong, and always in the same direction.
- Releases are scheduled late at night because nobody trusts them.
- Customers find bugs before your team does.
- Security updates are "on the list" for months.
- Your roadmap is mostly fixes to last quarter's features.
06How we prioritize after the audit
| Priority | Examples | When |
|---|---|---|
| Critical | Security holes, no backups, production outages | Immediately |
| High | Blocking bugs, unreliable releases, critical dependencies | During stabilization |
| Structural | Fragile modules to modernize, targeted debt | In stages, on the roadmap |
| Nice to have | Readability, secondary optimizations | Once the rest is stable |
07Questions to ask a software project rescue company
- Do you audit before you quote, and is the audit a fixed price?
- Will the product stay online during the work?
- Who exactly will work on our code, and how senior are they?
- Will every account and the full repository be in our name?
- How do you decide between keeping, refactoring and rewriting a module?
08What a software project rescue looks like
- Audit: code, data, hosting, access and contracts, with a written diagnosis.
- Secure: recover access, back up data, close security holes.
- Stabilize: fix blocking bugs and make releases reliable again.
- Move forward: a clear roadmap, then new features and launch.
09Choosing a software project rescue company
Look for a team that audits before it quotes, keeps your product online during the work, puts every account and the code in your name, and is willing to tell you when something is worth keeping. That is how we run the Lunarion audit: a fixed price, a written diagnosis and a costed plan before you commit.
10Frequently asked questions
What is software project rescue?
Taking over a stuck or failing software project, auditing it, securing and stabilizing it, then getting it moving again without starting from scratch.
Should I rewrite or refactor my app?
Refactor when the core works and the data model is sound. Consider a rewrite only when the architecture blocks every change, and even then prefer a gradual replacement.
Will my product go offline during a rescue?
It should not. Work happens on a copy and changes are released only after testing.
How much does a rescue cost?
It depends on the state of the project. A fixed-price audit costs out each option before you commit.
[ Lunarion audit ]
Need an outside view?
The Lunarion audit takes stock of your project: a written diagnosis, priorities and costs.




