4 ms·
> Even though it was so much fun That’s the root of quite a bit of evil in software. A closely related motive is a desire to show off. Play is good for learni
by api 5y ago
> Even though it was so much fun
That’s the root of quite a bit of evil in software. A closely related motive is a desire to show off.
Play is good for learning but not for production systems. You’ll regret it later when you are up at 4am on a Sunday morning troubleshooting some Byzantine stack.
The antidote is the realization that simplicity is harder than complexity. Simple but highly effective systems are the ones that should inspire awe and admiration. Complexity is a sign of an immature design or a lack of high level conceptual thinking. A system should be only complex enough to capture essential complexity (problem domain requirements) and no more.
One more thing… there is a ton of submarine marketing in our industry that encourages complexity because it’s profitable for vendors and cloud providers.
The design you outline leads to more cloud resource consumption, more lock in to cloud platforms, and eventually a need for lots of service mesh, config management, and orchestration products that if the project grows will eventually start costing money.
- dominotw 5y ago> That’s the root of quite a bit of evil in software. A closely related motive is a desire to show off. Yes but its also driven by keeping oneself employable. " I built a simple system to do X" is not a winning conversation in an interview. GP's complex system is what ppl say they built.
- papito 5y agoI don't think that this sort of selfish thinking is dominant. The explanation is much more simple - many in our field see complexity as a virtue, not an enemy.
- api 5y agoThat's not how you frame it. You don't say simple, you say efficient. "I built a highly efficient system to do X that required only $$$ in monthly cloud spend and handled NN operations per second..." You can also point out how fast you built it, since simpler systems often take less time.
- namaria 5y agoThe more I think about it the more it seems to me 'simplicity' is just another name for 'encapsulated/isolated/modularised complexity'
- api 5y agoThis is only true if all the complexity is necessary and intrinsic to the problem. Simplicity means there is as little incidental (unnecessary) complexity as possible.
- namaria 5y agoSimplicity is a name for isolated complexity only if there is as little unnecessary complexity as possible? You can only contain intentional complexity. I think you are agreeing with me.
- api 5y agoI think you're underestimating the amount of inessential unnecessary complexity in most software and systems designs. There is a lot that can be trimmed without touching required complexity.
- namaria 5y agoDid I say anything contrary to what you just stated at any point? I literally said simplicity is an illusion, just a name for tamed complexity.