‘Iacta alea est’

It Doesn’t Have to be Complicated

When writing the previous post about achieving variable and helper capabilities with the Hypertext DSL using only inheritance, it struck me how my previous solution had been so unnecessarily complicated.

And part of the reason the solution was complicated was an underlying assumption, perhaps even deeply-rooted belief, that it had to be complicated. I think that this is precisely one of the subconscious defaults that I am trying to challenge in this blog.

I believe this subconscious default puts you under a ceiling. It prevents you from moving up. The complex framework has framed your work. You can’t step out of the picture. You find yourself in Stockholm, and you’re comfortable there.

What you adopted to free your mind from death by the thousand cuts of mundane configuration has put your mind in a prison; you can see the green field of freedom but every move towards it is discouraged by the chains pulling you back down. You want to be free, but the effort is too great.

And so you settle. You settle for mediocrity. For popularity. For ease.

I think there’s something to be said about the network effects of a shared language where worse is better, but if you are using tools every day, don’t you want the best tools? The tools that fit your hand, or in this case, your mind? The tool that doesn’t contain that splinter on the handle that makes you wince every time you pick it up?

Don’t you want to learn to wield the chef’s knife instead of keeping a cupboard full of kitchen gadgets? If you’re going to chop down a tree, shouldn’t you sharpen your axe?

If software is such a force-multiplier, if it behaves asymmetrically, then shouldn’t eighty percent of our time be spent in getting our tools right?

Have we thought enough about the art and craft of building? If software is knowledge work why are we turning it into a production line?

That got a little too philosophical. I’m not sure how all of those questions interrelate. My starting point was the abrogation of simplicity, the blind acceptance of complexity, and the impact, the tremors, that this thinking carries into each subsequent layer of your software.

And I am persuaded that you can stop the earthquake the moment you stop believing that everything has to be complicated.

It’s that simple.

Thursday 1st April, 2021.