4 ms·
Gall’s law: A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works
by wsostt 5y ago
Gall’s law: A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.
https://en.m.wikipedia.org/wiki/John_Gall_(author) https://en.m.wikipedia.org/wiki/John_Gall_(author)
- pas 5y agowhere's the line between simple from scratch and complex from scratch? where's the line between from scratch and evolved?
- malwrar 5y agoIt’s hard to define a specific brightline, but I’d say you tend towards “complexity from scratch” as you spend time doing things other than making features. Some people try to write game engines from scratch before actually creating their game. Some people learn & adopt complex frontend frameworks before finishing their project’s landing page. Some people start new projects by immediately building all the abstraction layers they think they’ll need during the project before implementing a single useful feature. I’ve fallen for each of those at least once, and I’ve seen lots of people doing the same. You’re not going to need it. Wait until it makes sense to justify the hidden time & reliability costs. Wait until you actually know what you need.
- kjeetgill 5y agoI don't have the perfect answer, but my criteria for services might be something like: Is it serving prod traffic? Did you deal with keeping it online, performant, and available in parallel with your development iterations? Did the the experience of keep it running provide critical feed back for further design choices?
- cylon13 5y agoThanks for finally providing me with the source to this piece of wisdom that's been stuck in my head since I was a kid reading through some programming book I had. It's really stuck with me and I've been repeating it ever since, but I could never remember the attribution, just that I saw this quote in a book! I can't quite remember the book, but it was something like "Programming games with C++" and it came with a CD with a demo of Visual C++ 6.0 on it. Must have been around 2002-ish...
- Fire-Dragon-DoL 5y agoCounter argument: a big monolith is way more complex than a bunch of small services and the ops platform is the simple one as the services needs grow