Merchants of complexity
Not everyone likes simplicity.
Published on
This article is inspired by this article of DHH.
I don’t know if “merchants of complexity” is a DHH invention, but I like it.
Those are the people who, instead of proposing an easy path, will sell you complex and cumbersome solutions. They do whatever they can to show their solution as the only and best way to do things.
Spoiler: most of the time, you can do with existing solutions.
Complexity as a tool
Using complexity as a tool to chain other people to a product it’s incredibly bad. It’s an apparent and temporary success for them. A technical debt for us.
We have seen this trend with many technologies in the past. Incredibly complex solutions that no one can understand, but they look cool and shiny.
Often the result is unmaintainable code, that no one wants to work on 🤢
In the end, fortunately, those who decide are the users. Programmers and managers have to build valuable products, without killing the team by complexity. The real needs will rise in no time. After a while, the shiny tool becomes a monster that devours time and space 👹
It’s technical masochism.
The Kubernetes example
I don’t know that much about Kubernetes, for sure it solves a lot of problems. Anyway, I think that “because everyone is using it” or “it’s cool” shouldn’t be the drive to make certain decisions.
My approach
You can make boring tools funny if you want. Doing that you can stay sane and ship good software.
I try to build simple and easy-to-understand software. That’s why in the last year I started using HTMX and Alpine.js. Small and compact libraries, that can be easily replaced and have a low impact on the complexity cost.
Always stay alert
Keep a safe distance, a skeptical mind, and one hand on your wallet.
It’s like a loop.
Merchants of complexity will try to rebuild another thing that introduces complexity for no real reason.
Yes, this is all horrendously complicated, but look at what we can do!
If you hear this sentence, do something about it. At least consider the alternatives before the jump.