Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This Joel on Software blog post is now 25 years old, https://www.joelonsoftware.com/2000/04/06/things-you-should-..., but when it first came out it was widely viewed as gospel.

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


So the answer can change over time. You have to periodically re-assess the benefits of a rewrite.


> Does having your own, 500 kloc C++ real time video chat stack make sense any more?

Yes, if it is less bloated than Electron-based. See Jami, which is a native app and it's distributed and open source.


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.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: