Ask four questions. Can it be made to run? Does it already do most of what your users need? Can a competent developer follow it? Is its technology still alive, meaning supported languages, frameworks and services? If the answers are mostly yes, it can be saved, however messy it looks. Messy code is normal. Code that can't run, does the wrong thing, can't be understood, and is built on dead technology is the kind that may not be worth saving.
What's the problem
You've put real money and time into this project. Someone has called the code "spaghetti", or you've seen fix after fix fail, and you need to know whether you're about to throw good money after bad.
Why it happens
- All software gathers cruft. Shortcuts and quick fixes build up, and every change gets slower. That's normal, and it's fixable.
- Unfamiliar code always looks worse. Reading code is harder than writing it, so a newcomer's first verdict is usually harsher than the code deserves.
- Some problems really are terminal. A framework that's been abandoned with no upgrade path, a design that can't hold the data the business needs, or a codebase that implements little of what's needed.
How to fix it
Score the project on these, honestly:
- It runs. It can be built and started, even if only on old versions. If nobody can get it to run at all, that's the first thing to find out.
- It does the job. The main things users need already exist and mostly work. Code that does the wrong thing is worth far less than messy code that does the right thing.
- It can be understood. A competent developer can trace the main flows within days, not months.
- Its technology is alive. The language and framework still have supported versions to upgrade to, even if it takes several steps. Something in maintenance mode, like Create React App, still runs, but it's a reason to plan a move.
- The data is sound. The database structure holds what the business needs, and the existing data is intact.
- The size is reasonable. The effort to fix it is smaller than the effort to rebuild what it does, including everything you'd rediscover along the way.
Mostly yes: save it. Mostly no: get a second opinion before you commit to a rebuild.
When to call Preventionlabs
This is exactly what the free assessment answers. We go through the codebase and tell you in writing what's broken, what it takes to get it live, and whether it can be saved. If it can't, we say so, and you owe nothing. If it can, a resurrection gets it live for a flat $10,000 AUD, for projects up to 50GB including code, database and stored files.
Submit your project for a free assessmentFree assessment. $10,000 AUD flat to get it live, only if we take it on and you go ahead.
Sources
- Martin Fowler: Technical Debtsoftware engineering reference
Software systems are prone to the build up of cruft - deficiencies in internal quality that make it harder than it would ideally be to modify and extend the system further.
- Joel on Software: Things You Should Never Do, Part Isoftware engineering essay
It’s harder to read code than to write it.
- React: Sunsetting Create React Appofficial blog
Create React App will continue working in maintenance mode, and we’ve published a new version of Create React App to work with React 19.