>Typically this is a death knell for a software project
Only according to a popular, but not exactly scientific, old-wives tale of an article by Joel Spolsky.
Lots of commercial apps that had end-to-end redesigns with improved engines (DAWs, NLEs, etc), and did it just fine.
FCP to FCPX is one example, Cubase circa SX era, lots of others...
Even Joel's example, Firefox, is only viable today because they did many redesigns. If it was still the old Mozilla era-4 codebase + cruft upon cruft, it would matter even less.
I work on a project that was a ground up redesign, except for one small (but one of the most important features for our customers) that was ported to the new system. In the years since the team working on the ported part has been given time to make their code better. I have concluded that we could have in place refactored the old code to the new system and been fully functional the whole time for much less cost.
The new system is clearly better than the old one. If we had refactored in place we wouldn't have the same system as we have now. With the benefit of hindsight, I can now see some places in the new system that are not working as well as hoped and we are working on a plan to refactor those parts in place to something better.
It's basically the same thing. The big Netscape rewrite was from the 4.x code to the 6.x branch; the 6.x branch was what was released as open source, and when the decision was made to build a UI that encompassed only the browser and not the mailnews code, the resulting application became Firefox.
Yes, but Netscape Navigator got rewrote to Mozilla who eventually turned to Firefox. So same thing -- I referred to his example by the (current) name of the rewritten product instead of the name of the name of the original product that got rewrote.
Only according to a popular, but not exactly scientific, old-wives tale of an article by Joel Spolsky.
Lots of commercial apps that had end-to-end redesigns with improved engines (DAWs, NLEs, etc), and did it just fine.
FCP to FCPX is one example, Cubase circa SX era, lots of others...
Even Joel's example, Firefox, is only viable today because they did many redesigns. If it was still the old Mozilla era-4 codebase + cruft upon cruft, it would matter even less.