“I’m still getting this random 404.”

Want to sound pro? Banish “random” from your software engineering vocabulary.

Considering the Modern Usage

“Random” has a modern usage; let’s consider it. Take this example:

“I got a random bill from my dentist.”

We hear: “This surprising thing, a bill from my dentist, happened.” We get it. It works. So what’s my issue?

Merriam-Webster defines “random” as “lacking a definite plan, purpose, or pattern.” And so, this usage is incorrect, because the bill isn’t random: someone at the dentist’s office sent it to you because they believe you owe money.

I understand why this term is alluring and I’ve used it myself before. It’s a shorthand for “This doesn’t make sense.” But, it can be a hindrance. Why? Because the thing we’re seeing can’t be random, and saying so might signal that we’ve stopped being curious.

Issue #1: Computers Can’t Be Random

The thing we’re seeing can’t be random, because computers are instructions-following machines. They can’t really be random.

To get the 404 mentioned in the introduction, here’s what happened:

  • We asked for something
  • The browser sent a request
  • The server routed the request to a controller
  • The controller determined that the thing we asked for couldn’t be found
  • The server returned a 404

It’s a process functioning as designed.

Issue #2: “Random” Can Signal Incuriousness

Saying it’s “random” might signal that we’ve stopped being curious.

The best engineers are unreasonably curious. They view any problem they encounter as something they could understand. When I hear “This random thing is happening,” I think: “And? What’s actually going on?” Great engineers blow past “random” and start digging in.

Solution: Reframe and Attack!

The solution here is to reframe and attack the problem.

To reframe, we could say: “This thing is happening; I don’t understand it, but I will.” You can do it!

Or, we might say: “This thing is happening and I don’t think it matters.” There are many situations where that’s valid.

Suppose we want to understand this event; how could we do that? Attack it! Ask:

  • What was the system doing right before?
  • What changed?
  • Can we reproduce it, even once?
  • What do we think is happening?

Soon, randomness vanishes. What’s left? Computers doing what they are programmed to do.

Conclusion: Banishing “Random”

“Randomness” banished! Congratulations! We’ve leveled up as software engineers.

What are your thoughts on “random”? Are there other words, like “just” or “try”, we should reconsider?