I'm generally a big fan of Joel Spolsky, but in retrospect, I think this advice is just wrong, and I think Skype is a perfect counterpoint. That is, sometimes a rewrite is a horrible idea, but at the same time sometimes not doing a rewrite is a horrible idea. If making changes to the code becomes such a nightmare that your rate of progress is much less than your competitors, you're going to lose.
While there is still some good advice in that blog post, hard-and-fast rules are rarely correct. Most things in engineering are tradeoffs, and it's tough to know sometimes what the right balance is.
Sometimes the technology "background" changes so much that the codebase you have just becomes irrelevant.
We live in a world with WebRTC, embedded agents and digital telephony. The platforms, OSes, infrastructure are so different from how they were in 2009. Does having your own, 500 kloc C++ real time video chat stack make sense any more?
What I don't get is how MS couldn't use the Teams stack to power Skype as a consumer brand. Probably there was some effort but something got in the way. It might even have been a cultural barrier - Skype was an acquisition, and acquired codebases generally fossilise
Skype probably was rewritten multiple times - C++ client was replaced with Electron, and server API was broken many times as well. The reason Microsoft shuts down Skype is not because there is too much technical debt but because there are few paying customers and because there are new messengers like Telegram.
I'm generally a big fan of Joel Spolsky, but in retrospect, I think this advice is just wrong, and I think Skype is a perfect counterpoint. That is, sometimes a rewrite is a horrible idea, but at the same time sometimes not doing a rewrite is a horrible idea. If making changes to the code becomes such a nightmare that your rate of progress is much less than your competitors, you're going to lose.
While there is still some good advice in that blog post, hard-and-fast rules are rarely correct. Most things in engineering are tradeoffs, and it's tough to know sometimes what the right balance is.