Hacker News new | ask | show | jobs
by adt 1201 days ago
23 years ago...

https://www.joelonsoftware.com/2000/04/06/things-you-should-...

3 comments

Browser is lot more complex than Twitter.
I am extremely skeptical that Netscape 4 is a lot more complex than modern day Twitter.
It can be a legitimate strategy. Hard rules in software rarely work.
Any successful example?
Facebook has done it with their iOS Messenger app

https://engineering.fb.com/2020/03/02/data-infrastructure/me...

As a second thought, I think the move from .NET Framework to .NET 5+ could be considered a rewrite, and that has been rather successful on many fronts.
I've done it myself several times, but of course on projects small enough for a single developer. I also think the approach of rewriting bits and pieces over time works. You can identify pieces of the old code base that has well-defined behavior and can be split off with a well-defined interface between the new and old code. This has the added benefit of both needing to understand the old codebase and what you'd ideally want from a new codebase.
This is one of the foundational concepts behind microservices.

A service small enough that a team or engineer can rewrite it in a cycle/sprint.

When it’s bigger than that, you have the compounding effects of other systems that interact with each other.

For microservices, the "rewrite" fallacy usually takes the form of:

"Why are there so many small services running? Surely we can shut down / delete/ merge together a bunch of them to clean things up"

I'm pretty sure Elon has also hit this fallacy during his tenure at Twitter.

> "Why are there so many small services running? Surely we can shut down / delete/ merge together a bunch of them to clean things up"

It’s such a Weird fallacy since I feel like the entire point of Microservces is that there’s an inherit reason they’re microservices in the first place.

If you don’t know why, you investigate why. It feels far easier to make a monolith than a microservice.

many years ago I worked on the windows firewall team at microsoft. it was common practice to get to a certain milestone of a project, then purposely ditch the code and start from scratch. I haven't seen this practice since then, but that part of windows was one of the least hated-on at the time.
Beat me to it
"Second system syndrome" is what came to my mind. But I'm wicked old.
Actually its not going to be that.

That's when you've got something small that works and the rewrite is a bloated mess of every feature you could dream of.

This is the case where you've got an accumulation of over a decade of technical debt and Chesterton's Fences and someone who has no idea why the code is the way that it is inherits it and decides to rewrite it, and not knowing which constraints are necessary and which aren't they throw away most of them and find out the hard way that the problem isn't actually that simple.

It is almost the inverse of the second system syndrome.

But it is abundantly clear that Elon doesn't even know how to have this conversation.

In a sane acquisition a list of issues would have some out in technical dd. Not that Elon would have listened to anyone doing technical dd.