On simplicity

Ivan Appel
2 min readFeb 6, 2025

--

When someone mentions “simplicity” in a technical conversation, there’s a fair chance that the technical conversation is over by now, and we’re talking politics from there on.

Every piece of software can be simplified. The library you’ve cobbled together over the last week? It could’ve been a single class. The class that you wrote yesterday? It could’ve been a single function. The webservice you’ve developed over the last month? It could’ve been a pair of spreadsheets and an intern copy-pasting numbers between them. That “git” thingie you use for version control? At my first job, we had CVS, and it was just fine.

Everything can be simplified, and if you define “overly complex” as “could be simpler,” everything is overly complex. Saying that “X is too complex and could’ve been simpler” is somewhat akin to saying that the Earth spins around the Sun and that today is February. It’s so undeniably true that it ceases to bear any valuable meaning.

Likewise, every piece of software can be… Well, it takes a rare combination of self-awareness, cynicism, and a celebrity crush on Avril Lavigne to say it can be “complicated.” That’s why most call it “professionalised.”

The class that you wrote yesterday. It should be a library. The library you’ve cobbled together over the last week? It should be chopped into pieces and spread across three separate codebases. The webservice you’ve developed over the last month? It certainly can benefit from a load-balancer and a sharded database. Oh, and that “git” thingie is so primitive compared to what they use at proper companies like Google, that’s what my buddy Chris says.

I mean, don’t get me wrong. When someone says, “X is too complex (or too primitive) compared to the problem it solves,” it’s a great place to be in a technical conversation. This means we have different opinions over the scope of “the problem,” and we’ve got a neat opportunity to sync up on that. Are we cool with a clumsy intern destroying the entire dataset with a single click, or do we want to put some engineering into preventing that? Are we expecting a 10x growth of our customer base, or not really? Maybe yes, or maybe no, I don’t know, let’s discuss.

However, when someone says, “X is too complex (or too primitive) compared to the platonic ideal of simplicity (or professionalism) that a proper engineer would’ve achieved,” this is a pure ad hominem argument. In common parlance, it means they say you’re garbage without even bothering to prove it.

In situations like this, the second thing you must do is hit their face with a chair. The third thing you must do is hit the wall with their face just to prove the point.

The first thing you must do is, obviously, regularly hang out with HR and Legal departments; there are absolutely fantastic people there.

--

--

Ivan Appel
Ivan Appel

Written by Ivan Appel

Writer of code, developer of stories, drinker of coffee, runner of marathons, dreamer of the better world

No responses yet