In Defense of Obscure Names
In defense of obscure names
Naming things is hard
As the joke goes
There are only two hard things in Computer Science: cache invalidation and naming things. – Phil Karlton
and while this is funny (perhaps only to those in Computer Science) underlying the quote is a real issue, naming things is really hard.
The challenge is not just in giving something an appropriate name for right now, but in trying to predict how it may evolve and be used in the future.
Maybe you start with a database of bicycles, but as powered bicycles are introduced you start adding those but from there it’s a slippery slope to electric motorcycles and then gas powered motorcycles. Pretty soon your database of bicycles includes all motorcycles and perhaps those three wheeled things I’ve seen driving on the freeway. Unless you had amazing forethought and were able to predict exactly how the industry was going to evolve, chances are whichever name you select is going to be incorrect at some point in the future.
Renaming isn’t always easy
So, if the scope does evolve and the original name is no longer correct we should just rename it, right? Sometimes this is the answer. Tools for software development have come a long way and doing a code refactoring isn’t nearly as hard as it once was. So if we have a variable name, function name, or even a class/object name that is no longer accurate we usually have the ability to safely rename it across all dependencies to a new and more appropriate name.
But the coding level is often where this capability ends. The industry has not yet developed the capability to reliability refactor service names across a distributed environment and trying to do it manually is time consuming and often fraught with errors that can negatively impact uptime.
In defense of the obscure
So if changing the name of something is difficult and if naming things correctly now is hard, (and predicting how they may evolve is nearly impossible,) then maybe the best thing we can do is to purposely give them an obscure name.
When I was in college we were able to select our own email
address. Like most people I knew, I opted for the straightforward and
used my last name for my email address: gerth@lclark.edu
. However,
one of my classmates opted for something entirely different, she
selected the email address of squidlips@lclark.edu
. At first I
thought she was just trying to rebel, but her reasoning was actually
pretty interesting. Her name was something rather common, (think Jane
Doe) and her argument was that while doe@lclark.edu
runs the risk of
being mistaken for someone else, squidlips@lclark.edu
is almost
guaranteed not to.
This proved to be more than just an academic observation for as it
happened, I was not the only Gerth at Lewis & Clark College. There was
one other one, my father, a tenured professor, and I would
occasionally receive email intended for him. People had seen
gerth@lclark.edu
and had incorrectly assumed I was my father, and
were sending me information clearly not intended for the
students. (Nothing salacious I’m sad to say).
In this case the name (my email address) was even 100% correct and it was still getting used incorrectly. And while while no one may have guessed who Squid Lips was, she never got any email not intended for her.
Obscure is better than wrong
We make snap decisions all the time and if I was looking to get a list
of motorcycles and came across a service named bicycles
I would
immediately cross it off my list. But, if instead the service was
named x34a5a
or even horsetail
I would at least have to consider
it. I may first go looking for something more specific, but at least I
wouldn’t cross it off my list.
(I also prefer the name horsetail
over an obscure id designation as
it’s much easier to remember horsetail
and distinguish it from
pigfoot
than trying to remember a20b23
and distinguish it from
c23s40
.)
So if a thing is going to exist for a while, is likely to evolve in scope, and changing it’s name is non trivial, then giving it an obscure name may actually be better and ultimately easier than trying to come up with the perfect name. So in some cases, naming things may not be all that hard after all.