Remix.run Logo
dalmo3 3 hours ago

Long rant, but the author never defines what he means by "simple". He heavily hints at smaller changeset == simpler.

Too often the smallest changeset is, yes, simple, but totally unaware of the surrounding context, breaks expectations and conventions, causes race conditions, etc.

The good bit in tfa is near the end:

> when someone asks “shouldn’t we future-proof this?”, don’t just cave and go add layers. Try: “Here’s what it would take to add that later if we need it, and here’s what it costs us to add it now. I think we wait.” You’re not pushing back, but showing you’ve done your homework. You considered the complexity and chose not to take it on.

skeeter2020 3 hours ago | parent | next [-]

I think Rich Hickey's talk about simple is great for defining these terms (literally). He describes how the roots of "simplex" mean single braid, which compares to the twisting & coupling with complexity; an apt visual for software development. He also differentiates simple/complex from easy/hard, which is important.

https://www.youtube.com/watch?v=SxdOUGdseq4

vrosas 3 hours ago | parent | prev | next [-]

> shouldn’t we future-proof this?

The answer to this is almost always "NO" in my experience, because no one ever actually has good suggestions when it comes up. It's never "should we choose a scalable compute/database platform?" It's always "should we build a complex abstraction layer in case we want to use multiple blob storage systems that will only contain the lowest common denominator of features of both AND require constant maintenance AND have weird bugs and performance issues because I think I'm smarter than AWS/Google AND ALSO we have no plans to actually DO that?"

/I'm not bitter...

cottsak 3 hours ago | parent | prev [-]

this might help https://hammerproject.com/2023/07/28/complexity.html