The reality is rewrites are often appropriate but they need to: 1. Have a clear tangible benefit (or ideally many benefits) 2. Be as tightly scoped as possible to achieve the above benefits. Rewriting everything at once is a horrible idea in all but the most egregious cases. 3. Be as incrementalized as possible.
Re-writes are also needed when the architecture doesn't match the problem space well. This can be incrementally done. Single threaded loops instead of using parallel-safe constructs like tasks and jobs.
It's one thing to rewrite a website, where the project timeline is measured in weeks.
It's another to rewrite large project where the -estimate- time is years.
We have mature desktop systems that have been in continuous development for 25 years. That might blow your mind, but its the same timescale as say Excel of Word. The question of rewriting, regardless of the tech stack, is moot. It would take years of effort (optimists think 5, more likely 10) and would cost a fortune. With negligible benefits beyond "now written in a language with a bigger developer pool".
I'm the first to admit that there are disadvantages to the stack. On the other hand we are where we are (doing well) thanks to that stack, so it's not all bad. We're still using code laid down in 1996, while being a modern desktop app. We're still the leaders in our field.
The time (aka cost) to rewrite is the major hindrance, and far outweighs any issues using an uncommon stack.
Systems that can be rewritten should not be rewritten. Systems that cannot be rewritten should be rewritten.
It's not quite true (not in all circumstances), but it's close. I think most enterprise / pile-of-business-rules software falls into the latter category, those systems cannot be rewritten, but they should be.
And there's many ways to rewrite and migration strategy other than full rewrite.
Too many people just want to remix code or rehome it, taking the papers out of the old book and putting them into a new cover. At the very least, take the time to make sure you fully understand the system before you replace it.
Actually read the source code before a rewrite.
That they gave the project another two months is another important part of the experience.
So the specific project was clearly a failure. They weren't talking about rewriting working code, let alone code that was making money.
To me, it looks like it took a lot to violate the never-start-over-prime-directive-for-progress in creative work.
They were using Angular's dependency block them when I don't think they really needed to be blocked to ship a product.
> The relaunch of our ecommerce website had one goal: deliver blazing fast performance with Server-Side Rendering.
you’re suggesting they ship a rewrite that doesn’t do the one thing they’re rewriting for? at the time they also didn’t know when ssr support would be available.
they switched and shipped ssr support faster than it would have been available otherwise.