The hard things about naming things
The name's the thing, even if it's funnier than intended (and maybe not in a good way)
A rose by any other name would smell as sweet - Juliet: Romeo and Juliet
The name’s the thing
I’ve been writing this here substack for a few months. It’s struck me as overly serious at times, and with summer here I thought I’d cover something fun and fluffy.
Sorry, I’m totally, 100% kidding - I’m going to cover one of the hardest problems known to computer science. As stated by Phil Karlton, and boosted in popularity by Martin Fowler1
There are only two hard things in Computer Science: cache invalidation and naming things.
-- Phil Karlton
Over a lifetime in tech I’ve realized it’s sort of true, and not limited to computer science. Choosing a name well in any domain is valuable; whether you’re trying to protect your progeny from an unfortunately obvious (in hindsight) rhyming taunt, avoid your restaurant invoking images of gastrointestinal distress, or just avoiding tempting a universe with a dark sense of humor2.
TLDR;
Try to avoid names that…
Embarrass because of the implied “type” who would choose that name (see Twilight related names below for an example).
Feel silly in retrospect if something goes wrong. ie; maybe don’t tempt fates with the “Bulletproof Server”. If you can picture a future review of your movie or software where the critic makes reference to the name of your company/title/system with snarky, undisguised glee - think a bit longer.
Check the acronym for unintended meaning. Then ask some friends just to be sure.
Consider just using a name that’s descriptive vs. being too clever. For example, at one place I worked critical incident postmortems were auto-named with two random words. This mashup might have worked for Pride and Prejudice and Zombies but it just left everyone constantly confused about which incident we were talking about.3
Consider ignoring all these advice if you just know you’ve got a winner even if it violates some of the rules. In the cinematic universe I’m looking at you Sharknado!
Get back to work on more important things. ;-) But if you insist there’s a whole article below if you insist.
It’s not just a computer science issue
I was originally going to just cover naming tech teams and systems. Because if I’m being honest that’s what I know the most about. But then I realized, why stop myself from pontificating on something just because I don’t really know anything about it4?Instead, let’s just start with kids’s names. Harder than it looks.
First off, there’s just the luck factor. I worked with a super nice engineer named Tom Brady a number of years ago. Very sharp guy, hard worker, introduced me to the marvel of mid-level work kitchen free snacks hackery which is peanut butter + yogurt5. I never asked him, but I strongly suspect he could have gone another lifetime without remarking “no, not that one” nor sharing his views on football inflation levels.
Then there’s the unconscious factors that could set you up for something more on trend than planned. I’m betting that the parents of all the Bellas born in 2009 onward didn’t 100% consider this choice branding them as Twihards for life as surely as if they’d gotten a “Team Jacob” back tattoo6. I’d like to think that most people give some defensive thought to possible baby names. Though I’m not sure what excuses the elders of the world’s “Lesters” have to say for themselves in the inevitable blameless postmortem? Another example where the “premortem”, in this case using your schoolyard rhyming skills, is a valuable practice.
I probably shouldn’t be casting stones in the child naming space. While I’m 99+% happy with our selection of “Hana”, I didn’t realize it was a lifetime sentence of our daughter explaining her correct pronunciation to people. We instilled the “explain the right way to say it quickly” and by probably 3-4 she’d blurt out the correct pronunciation before becoming embarrassed to say anything. Actually, I probably did know this because I had a friend named Kari - who taught me how bad it gets when an executive has been mispronouncing your name for years and you didn’t catch it early.
Some people have entire frameworks for the best way to choose a name. HB Siegel who is definitely one of the most creative thinkers I’ve known suggested one. From what I recall he viewed the best approach is to choose a pretty common/vanilla first name and a more unusual middle name so that the child can choose either one at different life stages. When he said it I immediately regretted not taking up my brother’s suggestion making Hana’s middle name “Peligrosa” so she could choose to share that danger is literally her middle name.
I think HB’s system combined with the whole rhyming pre-mortem is the way to go. Just accept nothing is perfect - we knew Hana sort of rhymed with Banana but we had good reasons for the name so we didn’t let perfect stand in the way of pretty darn good.
Thinking about names in tech
But I didn’t set out to write a guide to how to pre-mortem the choice of your child’s name7. I just had some funny names and no topic in mind this week. Oops! - I mean the intent was intended to focus on naming practices on internal codebases and team. The stuff you and I name at work. Not the sort of public facing names like Pentium which eat up millions in market research8.
I’m going to just zip through some of what I feel are the common naming schemes teams come up with and some fun examples I’ve run across. Please share your favorites in the comments. I’m sure I’ve forgotten some good ones. Another reason in hindsight for keeping a journals. Learn from my mistakes.
Let’s jump in. I love fun names, and I am frustrated by “fun” names when I cannot recall what does what in a system. So while this may have the snark dialed up in places, it comes from a true place of love.
Simple naming taxonomy
System/component/team names seem to fall into one of these not mutually exclusive categories
Non-explanatory - ie; given the name you are unlikely to be able to guess the function of the service/system. You may though be able to guess some architectural characteristic it’s referencing in some cases. Example: Boss Hogg (likely something big), or Pandora (some kind of wrapper/box)
Source: Often beloved childhood references that make the assigner of the name smile but has little to do with the functionality. It can support (or at least signal) quirky/culture insider status. But it’s rarely conducive to deciphering what is going on. Not that that’s always a big deal.
Explanatory - given the name you can pretty reasonably guess what the service/system does. Though sometimes things stray from the original purpose - in the sense that you rarely name your system ‘giant spaghetti code copy-pasta monolith’ yet sometimes that’s what it became. Example: disbursement control service - probably controls disbursements to something.
Acronyms - these are usually subsets of predictive names, but need to be pre-checked a bit due to unique but sometimes amusing (to others) failure modes.
For the rest of the article I’ll just share a few examples of
Non explanatory categories
Random words that have no association with anything
Yeah, I don’t know why people do this, but they sometimes do. ‘nuff said
Let’s move on.
Nostalgia (Geeky) naming schemes - aka “Fun” names
This is where you choose some fandom and name things after/within it. Sometimes you’ve built a system where the components have a connection to the fandom sub-names, but often not. Folks that were part of the original team tend to really enjoy the feeling of connection/solidarity that comes from being in on joke (or moment of conception).
There’s a reasonable argument that this approach lacks something in terms of explainability. I get it - but I’m not especially dogmatic about it myself. If you’re doing a basic startup and have a handful of systems then people will figure out the names. If your startup becomes Amazon then it may get a little hairy. Now I know someone is going to point out that Amazon is so huge it’s a bad example and needs some sort of service directory to function (and also has some randomly named system). That’s true, but I think the point still holds.
I tried to think back on real world examples I’ve run across
Pac-man - It doesn’t always all start from Pacman, but this list does. I’d played a lot of Pacman over the years (OK, some very specific years) but I still cannot remember all the names of the ghosts that made up a specific Supply Chain system.
mythological stuff and LoTR - TBH I can’t actually remember any systems with either of these. But I’m pretty sure I must have worked in systems for both. Seems like just a law of large number things for our Tribe. ;-)
Comic book characters - Now, I’m going to admit this is another area where my memory is shaky. I hazily recall a job where the system/subsystem names sounded very familiar, and a few were superheroes. My recollection is that the theme was comic book characters. But while I’m maybe 45% sure about that taxonomy9. Oddly, I’m like 75% sure it then lead to the later systems names which followed which were…
Independent comic book characters. Presumably when it was pointed out that the original characters were all unrealistically busty and perhaps not the greatest choice. Which had the downside of being especially hard to remember because the closest I’ve been to truly independent comics was watching Chasing Amy.
Dukes of Hazard characters - you kids may need to look this up. It was a wildly popular TV show about two white “good old boys” from the south who drove a car called the General Lee (with a big confederate flag on the hood), who got up into hijinks that constantly irritated the incompetent sheriff and the town administrator (or something) named Boss Hogg. For extra memorability, Boss Hogg dressed from the same Big and Tall mens shop that the Kingpin did (ie; all white suits). The Dukes had had some sort of trouble with the law and thus I gathered were unable to possess firearms. This then led to them shooting various things with bows and arrows a lot. At least that’s what I remember about this show, well that and their sister who never had shorts that seemed especially comfortable to wear10. I may have hallucinated all of this in a fever dream. But probably not because when I got to IMDb our amazing principal engineer from the UK had chosen this naming system. I cannot imagine what UK audiences thought of the show.
Adjacent to the fandom approach is naming things that hint at some architectural feature (wrappers, orchestration, mythological heroes who were fast, etc). This often balances the “fun” and “descriptive” name axis.
I’m superstitious - so if the reference could have clearly negative (or overly positive) connotations I’d try to avoid it. I recall feeling a bit silly asking a team how they chose the name Pandora for a recent system. I knew it wasn’t for the charm bracelet place in the mall, nor a reference to Avatar11. Mainly I remember the end of the conversation where Dmitry, who I’m sure was annoyed or at least befuddled by the conversation reminded me “but Hope was remaining in the box.” To which I laughed and suggested that’s sort of a consolation prize if you’ve just released all the world’s evils.
Boring, but usefully descriptive names
I think this is probably the most functionally useful approach - just naming the thing in a way that a reader reasonably versed in your system can guess whether it’s close enough to what they’re looking for to look more closely. Yeah, yeah - I know service directories are a thing and you can embed meta content in other ways. These names are less fun and (mostly) don’t lead to me making fun of them in this article. But sometimes life needs a little spice - I’m not judging.
I’m guessing everyone knows what I’m referring to here - but some examples for the heck of it. Mainly to just stretch my own recall a bit a few real world examples
Order Management Service (OMS) - of Amazon fame (I have no involvement)
Watchlist service (assumes you know what we meant in the business domain by watchlist but if you did then you were golden)
Disbursement Control service - covered this earlier
SellerFeedback Service - most likely for capturing feedback on sellers.
Pricing service - if you’re pricing a lot of different things you might consider being more specific, but a good bet this system component deals with pricing. Alternatively you can name the same service TheFed and leave everyone a bit confused because you’re nerding out on economist jokes12
and so on…
There’s one caveat I can think to share about “boring names.” Don’t make them so boring they’re confusable. Beware of descriptive names you mix up at the worst possible time (say deploying code at 2pm. Specifically, don’t have a SellerFeedbackService and a SellerServiceFeedback service. Ask me how I know. Actually, I’m still a bit traumatized by that - so it’s OK if you don’t ask.
The acronym trap
The danger of not running your acronym13 by the more cynical and snarky bunch of your friend group can be lasting. Once folks come out with a name, especially for a team they tend to stick with it. Maybe that’s why three out of the four examples here are team names and only one is a system name.
Funnily, all three of the team names were from one job - an embarrassment of riches with respect to slightly embarrassing names. All staffed by great people though. So, as the opening quote of this article points out - the name really doesn’t matter that much.
CLAP - I can’t quite recall what this was an acronym for. But when I joined Convoy this was an active team name. When I asked one of the managers whose role included this group why that name I got a hilarious answer. “Well … there’s basically two types of people in the world. Those who see CLAP and picture happy, positive folks applauding something in support. And then there’s everybody else.” If you’re in the former then I seriously applaud your positive, there’s only good in the world attitude. Though I’m not 100% sure I’m as impressed with your school’s health-ed curriculum.
SAG - Yes, I realize this is the same acronym of the extremely prestigious screen actor’s guild. For them I’m sure this is just fine because it’s probably the most athletically fit and winning bunch of humans collected in a single organization. But if you’re an operating team, it’s hard to see how anything sagging is gonna feel positive.
Shipment Success - this is a sneaky one. On the surface it’s a fantastic team name. It’s short and direct, and sounds likely to be evocative of the team’s core mission. The only problem was when people who maybe didn’t ace typing in junior high decide “Shipper Services” is too much work and start abbreviating it as “SS.” As one of my even more snarky than me colleagues pointed out, if could have been worse. As he related a fictional conversation in which they “found a really cool lightening emoji” leading to using two lightening bolts instead of SS. It’s a sort of dark joke, but I absolutely cracked up because for a while I kept wanting to say “hey, maybe this SS abbreviation isn’t such a great idea” and the lighting bolt joke made it clear I wasn’t the only one thinking that.14
Buyer seller messaging system (the BS messaging service - BSMS) - this is a lighter version of the SS group (yeah, sounds so bad doesn’t it). I’m mostly including it because I feel like a jerk writing this story without contributing at least one personal oopsey. I’d shared the story of this super impactful service I’d gotten to be part of the inception of at Amazon. I still remember vividly our SVP just silently writing out the acronym for this project and looking pensive. Then people laughing. We were in hindsight too lazy to act on updating the name. So twenty years later I suppose folks can laugh at that bullshit messaging service we built.
The acronym approach has another sneaky failure mode. Occasionally folks choose an acronym that’s been in use for year by a more wildly popular system. If “in-circuit emulators” has been a thing electrical engineers called “ICE” for like 40+ years than when you call your system ICE15 don’t be surprised if some folks are confused. Similarly if CTR is known as “click through rate” for like the entire internet industry then naming your new freight related metric CTR is gonna confused the newbs.
It’s worth googling your new beloved acronym. You don’t want to be like the new kid in school named Bella truthfully explaining her parents had seriously never ever read or seen Twilight!
A positive acronym example
Here’s an exception that proves the rule. For many, many, shockingly many years Amazon’s entire recruiting operations ran on top of a tool called MRT. Which at the time I was told stood for “Matt Round’s Tool16” but a search of the internet has Matt Round himself referring to it as “Matt’s Recruiting Tool” - which somewhat makes more sense. It is sort of descriptive - Matt’s … tool was a very effective bit of kit for managing interviews at Amazon. Someone I’m sure has amazing stories of the 2-3 times major efforts were taken to build something “better” only to be kicked to the curb. I don’t know much about the BTS stuff there - only that MRT survived at least one or two major attempts to dethrone it. It didn’t do everything but it did enough and sometimes that’s what needs doing. Also this story is making me think about Greenhouse’s applicant tracking thing, and creating a login for each role you apply for, and just using it as a hiring manager, and GETTING SO MAD!!!!
Let’s move on before I realize I can’t turn into the hulk and I’m just raising my blood pressure for no good reason.
Why it’s all worth it
Naming choices can make you feel silly later. Getting a name right is hard. I still understand why taking some risk is worth it, and how quickly one can get enamored by swinging for the fences with a clever name. If the system takes off your 12 year old brain will take great pleasure in slipping one by the squares (or whatever the kids say nowadays). I’ve certainly done it. If you can pull it off it might make you smile every single time you see the project mentioned internally.
I’ll send everyone off to the comments section to share their favorite system and/or team names by sharing a couple of my own not entirely successful attempts to anchor an in-joke name. I’m sure there are a few more that will come to me as soon as I hit publish - but for now I’ll stop here to protect the guilty.
Superfly - One of my favorite pre-Amazon work experiences was getting to work on a project that increased the throughput of some measurement equipment we were making 5x for basically $0 in extra costs. This came about via one of our team members making several very clever observations about both the nature of our systems constraints and the newer hardware stack we’d been experimenting with for other reasons. It’s a story I look forward to sharing (I love these sort of assumption hacking on constraints), but today is just about names.
After we’d built a proof of concept to wow our corporate overlords a name was required for the system. I don’t remember how long I actually spend on that - but I took on presenter’s prerogative to call the system Superfly. Obviously because it was very fast, but more obviously because when I thought of the system for some reason professional wrestler Jimmy “superfly” Snuka popped into my head.
Perhaps thankfully for everyone involved by the time the project got successfully released it had been renamed the Stream model of our equipment series. Referring to it’s need to not stop before measuring as opposed to the earlier, slower approach. Though losing sales from classic wrestling fans I’m sure.
Still a great win, and likely a better name in the end. But stung a bit.Double Secret Probation - When I was working on Trust and Safety (TRMS17) at Amazon we’d build a number of performance management systems. The first being a “Watchlist” system that put sellers into a somewhat gray zone/purgatory of continuing to be active on the platform but slowing their funds disbursement schedule to contain financial risk. At some point we were discussing how to address increased risk profile within this group - and I believe build some heightened monitoring and action taking on this population. I’m embarrassed to admit that I don’t really remember the technical or business details. But I do remember suggesting we name the system Double Secret Probation. Team members either seemed to like that, or was just an example of “highest title in the room” halo effect.
Eventually, I realized most of the engineers had never seen Animal House, or in other words had been better supervised as an 11 year old at their Uncle’s house with his new HBO installation than I had been. Thus I bought a copy of the Double Secret Probation Edition DVD for the team in order to provide cultural mentorship. Which almost immediately seemed like a bad idea. Hopefully the whole statute of limitations is up on that one.
OK - that’s all for today. So please head to the comments and share your most entertaining naming stories. Epic flops encouraged. I’m sure the Clap team would appreciate your candor.
Fowler also published many of the great riffs on this line. Including my personal favorite “There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.“
I’m not overly superstitious, but I somewhat feel the universe has a cruel sense of humor. I mean you could name your kid after a genius or an ancient goddess of beauty - but why tempt fate? Similarly, you probably shouldn’t call your project Titanic for basically the same reason. Unless it’s a complex in-joke about how a door can support two people floating on it. But even then, when everything blows up and you feel like crap - do you really want to read the “well, I’m not sure what they expected with that name…?”
Actually - I’m sort of laughing over an imagined dialog where someone asks “why did you name it that?” and get back “well, it’s a really big system like that boat in the movie?”
Was “Shuffling Snuffalofagus” the one where were accidentally deleted a key part of the database? or was that “sniffling weasel”? I’m usually not that against semi-random names. But if you’re generating them often using essentially a one time pad makes things crazy hard to keep track of. For this use case just use something that indexes to the problem. Such as “drop ship flag dropped causing pricing errors.” See - much more memorable. ;-)
I’m sure people do this a lot. Just ask any Designer if people do this to them. Just don’t ask while they’re drinking.
Truly genius!
For the record I am 100% team “Bella needs a therapist to address her co-depenence issues.” Yes, I read them all. At least I think I did, there aren’t any new ones are there?!!?
Today’s article is clearly brought to you by the letter Premortem!
Even if now I’d want some proof the marketing company isn’t just punching a bunch of stuff into a LLM and prompting “be creative and don’t rhyme with Lester.”
Yeah - I sort of like writing “taxonomy.” It could be worse though - it’s not like I’m throwing around “ontology” left and right.
For those under 30, Daisy Duke was a less witty version of Katy from Letterkenny I suppose? In terms of being an attractive young woman who made reasonable choices in hot weather. Sorry - the 80’s wasn’t great on that dimension in terms of female characters. But you haven’t seen Letterkenny? Oof - well … you’re welcome for the tip then. (it’s so good!)
If I’m being honest, that possibility just occurred to me now as I was writing. And I doubt I really knew about the jewelry store at the time. Yes - I am a completely unreliable narrator. No refunds!
In all honestly, I can’t recall if the company I’m thinking about named the Pricing service after the US federal reserve. But I do recall a bunch of data science systems were named after varied economic institutions. If I was a better econ nerd I’d probably recall which goes with which. But TBH I just took some dramatic license.
Side note - I just want to share my giant pet peeve of people who insist on putting acronyms in documents (or presentations) without once spelling out the acronym. Please, don’t be that person.
FWIW during my tenure at Amazon there was a different team called Seller Success who managed, to my knowledge, never to refer to themselves as the SS team. I guess feel free to name yourself the “Seller Training and Support Innovators” but make sure folks know they’re stuck writing all that out each time.
because ice is cool (pun not intended) or you love Vanilla Ice or something else both understandable and inexcusable.
Crap - after like 20 years I just realized that a twisted mind could make something CLAP-like out of Matt’s Tool. I feel like I’m in some sort of Beavis and Butthead inspired writing frenzy.
This name caught on, though I have no theory as to why other than when you just insist on something with enough structural power that’s what something gets called. It stands for Transaction risk management systems if you’re curious. Which is a good explanatory name - if a bit stuffy.
"It's all just 0's and 1's -- all we do is name them, at various levels of abstraction."
-- (someone, I forget who)
Your "SS" example is triggering for me.. I made that mistake once with a spec for a "Core Security Service". I didn't want to call it "CSS" for some reason so I shortened it, unfortunately.
I got feedback on that, early -- but the story gets worse. This service was part of a product suite with a long name that started with P, and in internal docs everyone had taken to abbreviating that long name "P!" -- the Data Aggregation Service, for example, became "P!DAS".
So naturally, my security service should be called "P!SS". In whatever fonts I was using to write my spec and prepare my presentation, this never looked like the word "piss" to me. But when the final slides got poured into the standard powerpoint template, hours before I was scheduled to present it.. it suddenly hit me.