16 Comments

I loved this list! Is there a counter-example/outlier from this list from your career where you were like, "I can't believe that worked as well as it did!"

Expand full comment

🙏 thank you. Remoting. A lot of easy solutions to complexity were about doing screen-sharing-like solutions. At the time there were some lame commercial hacks and just X windows. The idea of doing screen sharing over any unreliable network was a joke. And every time someone tried to build a solution on that it was always "we need faster networking" or "a better protocol at a different layer". Then we got a faster network and much better and more stable graphics as well as web applications and suddenly even video with sound was working over remoting. Now it is so crazy good your iPhone works on a Mac and you can't even tell. Nathan Myhrvold (CTO) once wrote a memo "When you think about it the idea of X Windows [remoting] seems pretty dumb. Then you think about it some more and it is really even dumber than that." [early 1990s]. So that's one example.

Expand full comment

haha wow that's an amazing example, because we totally take remoting for granted now. I wonder if some of the most "useful" software features are those that work despite all the stuff on this post and the list that motivated this post? Because the natural tendency of engineers is to keep making things more complex. That is, I wonder if there's some sort of interesting bias there.

Expand full comment

> I would contrast this with Mac OS evolution where abstractions that seemed odd appeared useful two releases later because there was a plan.

Interesting. I was born a bit too late to experience the heyday of OS evolution in the 1990s-2000s. Would love to read more about what kinds of abstractions Apple got right.

Expand full comment

An example I might use for this is how they evolved Keychain to password manager. Another might be how they evolved files or USB on iOS. The revealed a little bit over time without simply porting macOS even though they could have done much more initially given the origins of iOS.

Expand full comment

I’ve lost count the number of times I had to tell people sync is hard. Every time they were sure I was exaggerating. Every time they learned the hard way…

Expand full comment

I bet you have!

Expand full comment

What does "Let's just sync the data" refer to, practically? Is this about automated syncing between databases? Or about ... things like syncing data between FE and BE?

Expand full comment

It might be a foreign concept if you assume everything is in AWS and there's always high speed connectivity. But a lot of solutions are built assuming irregular connectivity or disconnected use that require sync to the cloud. This is particularly the case with "files" (like dropbox).

Expand full comment

I would like to better understand the details behind Martin’s list. Does he provide any further info? Especially regarding system load and control loops.

Expand full comment

Perhaps join martins thread in X. Link in post.

Expand full comment

That would entail me rejoining X, which I will not do given the hateful and dangerous rhetoric from that company’s leadership. Will seek alternative ways to connect!

Expand full comment

Great read. Thanks. Easy to see you’ve baked a few cakes :)

Expand full comment

I thought I'd write up a few longer thoughts: https://terrycrowley.medium.com/system-ideas-that-sound-good-bb863495947e

Expand full comment

Shared on X and replied :-)

Expand full comment

Thanks for sharing these. Great insights as always.

Expand full comment