I’ve been in something of a pit lately. Too much work. Too many hours. No space or emotional energy for much more than the bare minimum of existing. I spent the first part of yesterday—my first Saturday with no work in a month—reading, taking a long bath, and reading more while in bed. It’s not that I don’t enjoy those things, but I didn’t have the mental bandwidth to do anything else. The difference between curling up to read and unwind voluntarily versus having virtually no choice is immense.

On such mornings, I will poke around some favorite blogs from people I enjoy reading. I’ve become a huge fan of Baldur Bjarnason in the last year and decided to hop through his archive. The reason for this when exhausted and fairly depressed about the state of things, is it’s nice to read a rational and sane voice. Admittedly, I want to read someone I agree with on days like this. I was too tired for anything but some comforting confirmation bias.

I ended up finding this piece from 2024. Go read it. I guarantee it’s probably1 better than whatever I’m about to burp out on this tired Sunday morning.

Binaries

For most of adult career, I’ve carved software makers into two primary camps:

  1. The actual engineers. These people typically work very close to the hardware and details of said hardware—registers, memory, cores, busses, pixels, etc. They write kernels, device drivers, virtual machines, cryptographic algorithms, etc.
  2. The programmers. We’re “engineers” in the sense that we design and build stuff, but the implication is all wrong. Our job, which is typically the mapping of abstract business rules to an arbitrary system, is less about the right answer so much as it’s about avoiding wrong answers.

Various parts of this excellent talk by Joe Armstrong do a good job of differentiating these two camps, even if that’s far from the central point of the talk.

While it’s not a perfect rule, because what you’re building and its constraints ultimately define which path you’re on, the higher level your language the more likely you are to be in the second camp which, these days, is a majority of us.

So, when I hit the following quote, it was just the kind of warm and fuzzy, “thank goodness it’s not just me” Saturday feeling I needed:

And we do need to feel motivated, at least in part. The word “passion” is almost always a red flag for any given industry, but software development is a creative business. You may all go around cosplaying engineers, but your average coder is about as close to being an engineer as a fan cosplaying as Hugh Laurie playing House is to being a medical doctor.

Cosplaying a character who plays an engineer. So good. When these plucky little 20-somethings fresh out of college chugging away at business software call themselves “software engineers” I will forever think of cheap costumes making them look professional and intellectual. This is even nice for the people twice their age who take themselves too seriously.

“Still wearing that lab coat? Don’t ever change.”

This is a Creative Process

Let me be very clear, I very intentionally fall into the second camp. I didn’t settle there because I don’t have the education or the chops to be a “real” engineer—although that might also be true. I love building systems and applications that people use and interact with directly. On a sort of meta level, my guilty pleasure is building APIs that are easy to use for other programmers. I don’t really care about their programs interacting with mine. I care a lot about the pain of the implementation phase and the ability to understand what I’ve provided.

The skillset for interacting with human customers with wants and needs that do not map well to a formula or diagram is quite different than writing a device driver. It’s pointless and entirely unnecessary to argue otherwise.2 It’s also fine. We need all of this for software and the hardware it runs on to be useful to anyone. We’re all on the same team. We can be friends.

Unfortunately, lumping creatives in with engineers and treating them and measuring them by the same standards and metrics leads to some issues. Mostly that the system is entirely wrong which is… you know… the granddaddy of issues. This also produces some the stupidest shit, like code challenges in interviews—another red flag for organizational ignorance. (To be fair, these are stupid whether we’re creatives or not. I care about the implementation of quick sort as much as Einstein cared about the number of feet in a mile. It’s not that it doesn’t matter. It’s that it doesn’t matter directly to me right now.)

Let’s Talk About Metrics

They suck. I feel like I should just end it there because what needed to be said has now been said. However, some of you probably want something more substantive. Fine. I mean, I’ll give you more words at least. I make no promises that I ever have anything substantive to say.

As part of this morning’s double Moka Pot breve latte3 and doom-scrolling ritual, I came across this little gem from Internet of Bugs.4 It’s not really programming related. Despite it being another piece explaining that this whole LLM thing is completely insane and mostly a bad idea, the real meat is about metrics and measurement. Just go watch it. It’s good stuff.

As I was looking at the comments (because I’m a masochist) and saw this:

“When a measure becomes a target, it ceases to be a good measure” – economist Charles Goodhart

I’ve got into the habit of presuming any quote that’s too good to be true probably is. This isn’t even an issue with the internet. A number of “quotes” from the Founding Fathers of the United States that I grew up on seem to have been invented in books from the 1940s and 1950s.

As a result of my own fact-checking, I was introduced to Goodhart’s law. Go read that too. Today involved a lot of homework.

Besides the obvious, “oh yeah, this is why every time my corporate overlords set some useless metric, it gets gamed to the point of being harmful to production” reaction, I kept reading and it induced one of those truly mind-blowing moments:

‘Goodhart’s Law’—That every measure which becomes a target becomes a bad measure—is inexorably, if ruefully, becoming recognized as one of the overriding laws of our times. Ruefully, for this law of unintended consequences seems so inescapable. But it does so, I suggest, because it is the inevitable corollary of that invention of modernity: accountability.

Emphasis mine.5

Ever have one of those moments where you realize you’ve been on complete autopilot about a concept for you entire life and that your assumptions are just fucking wrong? I wasn’t even halfway through my second latte when I experienced this. One second I’m giving myself a high five because I have some famous economist to give me even more comforting weekend-morning confirmation bias that I desperately need right now and then…

“My god. I’m so stupid. I’ve been thinking about this all wrong. Work. Government. Policy. School. Education. Name a place where I have used the word accountability and I have been wrong.”

Not once in my life—not once—have I ever used the word “accountability” as anything but a synonym for “responsibility.” When policy makers or crazy uncles talk about “accountability” I would often agree, even if just in theory, because I want responsible people doing responsible things. Who doesn’t want that? (Unfortunately, this is not as rhetorical as it should be.) I want people to be able to justify their work. If you deal with competent managers or administrators, it’s not hard. You know. They know. There’s not much more to the process because too much process always ends up spawning its own demons who exist for their own sake.

Accountability:

The state of being accountable; liability to be called on to render an account; the obligation to bear the consequences for failure to perform as expected; accountableness.

Again, emphasis mine. This is subtly different than responsibility in many bad ways. Not that accountability is intrinsically bad; there are many things that need to be measured precisely by basic metrics like… accounting. Things that can be counted or weighed in a very simple sense lend themselves well to accountability.

Unfortunately, a lot less than you might think breaks down this simplistically. Attempts to force feed simple metrics into inherently complex and chaotic systems and apply accountability to those systems are going to have, as stated above, a lot of unintended consequences. I’ll go out on a limb here and say precisely none of them will be beneficial at all.

Remember those creatives?

Maybe for the first time since I started writing again, I have made it all the way back around to make a sort of cohesive point. Mark the date and time ladies and gentlemen. (Of course, I should probably make said point before I get too self-congratulatory.)

I’ve recently taken a huge interest in quantum physics. I don’t think it’s particularly deep and a lot of it is just evening YouTube watching when I wind down. (It’s entirely possible that this is mostly just because I find the host of PBS Spacetime, Dr. Matthew O’Dowd, to have a very relaxing voice, especially when paired with ambient music.)

It calls into question a couple things:

  1. Do we really know or understand enough interactions to truly measure anything?
  2. Can anything really be measured when we consider our current understanding of the nature of quantum fields is potentially random?

I’m not saying this to say we throw away all measurement because of course we can measure plenty of stuff in a meaningful way. I bake bread once a week. My Moka Pot breve lattes3 involve scales. You can measure fundamentally chaotic things in a way that’s useful. Temperature is a useful measurement based on particles in states too chaotic to measure beyond a broad statistical average. You’re not measuring or even caring about the state of any particular atom in this case though. You’re certainly not attempting to make a judgement about a single particle based on temperature. If you did, the uncertainty principle would just chuckle.

If you don’t want to get caught up in physics and all that, I also enjoy a good old sports analogy. The one metric that matters for a sports team is who won the championship, period. How you got there, how much you won by, even total number of wins do not matter. (Just ask the New England Patriots.6) The saying, “statistics are for losers,” exists to counter, “that team won everywhere but the scoreboard.” By which we mean that team lost anyway.

It is very tricky measuring a player based on individual performance metrics. Some sports, like baseball, lend themselves very well to simple metrics. Football, however, is a significantly more complicated and dynamic sport. In theory you could probably create enough stats and metrics to pull this off, but in practice I’m not sure we can. This requires deciding what to measure and assigning a meaningful value to its actual weight within a complex system. Weight is also contextual and that means… there are no easy answers. We know who the superstars are with very little aid, but understanding players in the middle that are significant and import role-players? That’s much harder.

If you’re a Jets fan (why?), you know that your team is going to overpay a player in the twilight of his career based on overemphasis of these numbers, to the detriment of the one metric that matters: winning the Super Bowl. Many free agents parlay these numbers into very large contracts after a season that’s a statistical anomaly. There’s even a slice football games known as “garbage time.” This is where a team can put up impressive numbers because the game is effectively lost and the opposition is playing soft. (The Jets are not even good in garbage time.)

It’s not just the player performances that are measured poorly. Each year coaches are fired and hired. In the quest to find replacements at the highest level of professional sports, billionaire owners will more often than not use the following process to choose a new coach:

  1. Where did we suck the worst? Offense or defense?
  2. Okay, get me a list of coordinators or ex-head coaches whose units were good at that.
  3. Hire one.

I wish I was joking. I’m not—at least, not by much. Business idiots ruin sports as much as anything else. My favorite sports team consistently sucks because the primary decision maker cannot make a decision outside the most basic form of accountability. The longest playoff drought in all major American professional sports is his—and by proxy my—reward for this. (This is the guy who boldly said that “thinking is overrated.”)

If you think football is complex, try taking a dive into distributed software systems. As the complexity of a system increases, the value of individual metrics decreases. That’s before even taking into account whether the metric was useful or accurate for a simple system to begin with!

Measurements have to be understood with a great deal of context for their application to useful. Applying the wrong measurements is a disaster. Measurements will lend themselves toward becoming targets whenever punishment and/or reward is affixed to them. This will only amplify the disaster of that measurement when it is wrong. (See literally everything about our current economy or companies mandating the use of AI.)

Does anyone sane think that inherently creative processes can be measured with a handful of simple metrics? Well, yes. There are many corporate leaders and managers who believe this. They’re wrong of course—as it is the simple nature of these fucking morons. If you’re beholden to their decisions, it doesn’t matter. Right and wrong matter little in the shadow of authoritarianism.

This isn’t just the dilemma of programmers either. Any process or job where the outcome is measured incorrectly will yield broken results and harm the people who understand complexity and nuance the most. It will also reward the people who exploit those numbers.

Maybe that’s the point?

God. Maybe that is the point?

So much for a relaxing Sunday morning.

I really am a masochist.

  1. It occurs to me that guaranteeing a probably is pretty ridiculous. 

  2. We do though. At some point in the last decade we invented “full stack” developers which are mostly a fantasy. Personally, whenever I see a job description looking for a “full stack” developer I just move on. Not only do I involve myself very little in the front-end these days—and not because I dislike it, mind you, but because my brain can only be good at so many things—but any manager or executive who really believes assembling generalists instead of specialists in the current software climate is delusional and/or entirely ignorant. Who wants to work under those conditions?

    Truly skilled front-end and UI programmers are probably the most under appreciated programmers in the space. I sense this is because their work is more obviously creative and no so easily obfuscated behind a veil of faux-engineering.

    Mr. Bjarnason wrote on this topic as well. If you’re paying attention to the dates, you can see right where I stopped scrolling on his archives. I apologize for just being a sort of fanfic of his blog sometimes. 

  3. Yes, I’m that fucking guy. Honestly, I can’t tell what’s more important to me these days in terms of coffee, the beverage or the ritual. I suspect the latter because that seems like the dumber thing. I watch stuff like this with my kids because we love it. I make no apologies.  2

  4. Carl Brown produces some great content. Have a gander at his channel and drop him a line. This is a guy with a lot of practical wisdom in the software space. He also has a low opinion of Clean Code, which is always good sign. The book sucks no matter the Amazon or Goodreads rating and Robert Martin is really annoying. 

  5. I also realize the citation is incomplete, but even if that quote was entirely made up, it doesn’t matter in terms the effect it had on me. 

  6. Fuck the Patriots.