Microsoft has long been associated with popularizing the personal computer (the PC). However, people don’t talk about PCs much anymore. Now, it’s about phones, phablets, tablets, laptops, and desktops. People don’t talk about political correctness (the other PC) much anymore either. Now, it’s about inclusivity, unconscious bias, microaggressions, and cancel culture. Regardless of our desire to welcome everyone as they are and treat them with respect, we all have unconscious bias and sometimes make hurtful expressions regardless of our intent. I’m not PC, despite my best efforts over time.
Diversity and representation in the community and workplace helps. It improves awareness and can provide immediate feedback when you offend inadvertently. If people assume the best in each other and stick up for one another, they can learn how to make everyone feel welcome and appreciated. Unfortunately, some people refuse to assume the best in others. That’s wrong and hurts the entire group. Some people refuse to learn and change, even when others assume the best in them. That’s also wrong and harmful.
You can remove stubborn people from your group (see Good engineers and The toughest job—Poor performers). But what if the stubborn thing isn’t a person? What if your code, your tools, your APIs, or your documentation is offensive? What if your PC is not PC? Is it okay to have master and slave branches? Is it okay to have black and white lists? Some people might dismiss these things as just names. They could be called parent and child branches or prune and plum lists. Who cares? A name is just a name, and folks are too sensitive. Maybe, but we all have words that bother us. How do we determine which words are worth the effort to change and what words are good replacements? Let’s have a respectful discussion.
What did I say?
If you’ve always used industry-standard terminology to refer to master branches and blacklists, you may reasonably wonder why anyone might be offended. After all, you didn’t come up with the terminology. You’re just using accepted and documented names. If you’re a software engineer, you’ve learned those terms and know what they mean. There’s no reason to be offended, right?
My parents are Jewish. I’ve heard “Jew” used as a verb by people who grew up in communities where that’s an accepted use of the word “Jew.” I find that usage offensive. However, the communities that use “Jew” as a verb don’t typically include Jews as equal members.
The software community didn’t include Black engineers, women, and other underrepresented people as equal members for decades, as has been well documented lately. Several common software terms are offensive to those underrepresented people but became standardized before the offended individuals were welcomed into the software community. However, those people can’t feel welcome when they are constantly being offended, any more than I could stand working somewhere that I’m constantly Jewing.
For more on diversity and inclusion, read Growth mindset and diversity.
What should I call you?
Which words are worth changing, and what words should replace them? If a community owns the definition of a word, and desirable members or friends of that community are offended by it, then the community should change the word.
For example, say your five-person team owns a search API, and the suggested name for the filtering interface is “Laser.” If one of your team members lost sight in her left eye due to a laser, you might want to pick a different word. Likewise, if you want to hire Black engineers and have Black customers use your services, you might want to pick a different word than blacklist to refer to undesirable entries.
If you aren’t going to use “Laser” or “blacklist,” what words should replace them? You want replacement words that accomplish the following three goals: clearly describe the purpose, lack a negative connotation, and avoid overloading.
Let’s review some common examples.
- Blacklist and whitelist. You could use “prune list” and “plum list,” but that could be confusing. You could use “bad list” and “good list,” but the items on the bad list might not really be bad, just blocked. You could use “block list” and “accept list,” but “block” has many meanings in software, so again there’s confusion. I’d recommend “deny list” and “allow list.”
- Master and slave branches. Here there already exists a common and clear term for a master branch that has no negative connotation or overloading: “main branch,” which is the term GitHub is standardizing. As for “slave branch,” it makes sense to choose a term that refers to the branch’s purpose, such as “release branch,” “feature branch,” or “topic branch.” In general, they are “child” branches using the common, clear, and unoffensive graph term.
- Black hat and white hat. The cybersecurity community sure loves its hats, and it has traditionally used colors to portray the actions of bad and good actors. While many claim the hats align with old westerns, black being evil is still black being evil. Besides, it’s not about community members who accept the words—it’s about desirable members or friends of the community who are offended by the words. I’d recommend “bad actors” and “good actors,” since the connotations are intentional when it comes to cybersecurity.
I considered including “users” as an offensive term, but not too many people find it offensive. I just love the quote from one of my heroes, Edward Tufte:
Only drug dealers and software companies call their customers ‘users.’
We should say “customers” or “end customers” instead of “users.”
The communication process has broken down
For whatever reason, operating system processes are a hotbed of questionable terms. Processes don’t end; they die. You don’t stop them; you kill them. If they’re unresponsive, they’re hung. If they remain around after stopping, they’re called zombies. (Actually, that’s pretty funny.) If the parent process that spawned a child process dies, the child process is an orphan. Can’t we talk about operating system processes without bringing up hanging or orphans?
Action movies are fun, but my everyday life needn’t be filled with violence. Processes should be stopped when necessary. If they’re unresponsive, they are stuck. If they remain around after stopping, they are pending cleanup. If they lack parents, they are parentless. I don’t feel as strongly about violent terms as I do racist and misogynistic terms (like “grandfathered” or “man-months”), but next time your team is picking terms for its products, tools, components, or services, please select precise words that describe purpose and leave out the unnecessary connotations and overloading.
Many misogynistic terms can be replaced easily with gender-neutral equivalents, like grandparented and person-months. However, clearer terms for these two examples would be “exempted” and “x people for y months.”
Heeded my words not
Words have power. They bring up memories and feelings, good and bad. They have meaning and emotion beyond their dictionary definitions. If you’re going to use words, mean what you say and say what you mean.
We want desirable members and friends to feel welcome in our communities. Since the whole world uses software, we want all people and organizations to feel welcome to work on and use our products, tools, components, and services safely as intended without offense. (Undesirable hackers, profiteers, and bullies can take all the offense they like.)
If desirable people are offended by old, accepted terms, we should change those terms. Choose replacements that clearly define purpose, lack negative connotations, and avoid overloading. The desirable friends and members of our community should be made to feel welcome and included, just as you hopefully once were. It’s the right thing to do.
Want personalized coaching on this topic or any other challenge? Schedule a free, confidential call. I provide one-on-one career coaching with an emphasis on underrepresented, midcareer software professionals. Find out more at Ally for Onlys in Tech.
Regarding the terms you call questionable rather than offensive, such as users, processes dying, being killed, becoming hung, becoming orphans: The offensive terms discussed earlier are best avoided because they’re not inclusive, and make desirable people feel excluded or offended. This doesn’t apply to this set of terms: they are universal to the human experience. The goal is not to achieve some arbitrary standard of sanitation in our language; the goal is to keep our language inclusive. If the use of these terms does not cause offense, what purpose is there in attempting to change them?
One possible purpose might be to avoid discomfort, but that’s not the same thing as offense. Your example about “laser” is also an interesting one. Perhaps at a point when an API is being named it’s no trouble to pick a different name, but it highlights a larger issue: terms that remind people of personal traumas but are not, in any way, considered offensive. Here we have the issue where a person is put in the very difficult situation of being reminded about a trauma, but as a society we have no reason to remove “laser” from the lexicon any more than we have to remove the words “car,” “fire,” or “knife,” all of which certainly have been traumatic for people — and this presumes a meaningful replacement term can even be found. “Parentless” instead of “orphan” doesn’t manage this; the two are synonymous.
This leads me to my next question: How do we establish a reasonable standard for what terms are acceptable, and push back on the unreasonable? If a person is offended by language, or simply claims to be, that person could be in the wrong; we certainly cannot allow any one person to arbitrarily veto any term. Even worse, someone can claim being offended by a term in bad faith, as a rhetorical ploy in a larger discussion to attempt to shut down an opposing point of view. How can we best confront such transgressions?
The key is offense taken by desirable members or friends of the community you serve. In the “Laser” example, if the team member who lost sight in an eye due to a laser is offended, then “Laser” is unacceptable. Yes, that’s one person, and perhaps that person is being overly sensitive in your eyes, but in their eye it’s important and they are 20% of the 5-person team.
If just one person out of 1000 customers or team members was offended by a different term, should you push back? Is that person a desirable member of the community you serve? Is that person’s response representative of other desirable members or is that person alone? You are weighing the size of the impact on your community against the impact of making the change. Like many decisions, you must weight the tradeoffs. I agree that when it comes to broad inclusion, the choice is easy because the impact is so broad.
You mention offense at the “laser” example, but is our hypothetical accident victim actually offended by the mention of a laser, or is it just an uncomfortable reminder of their personal trauma? Would they actually advocate ceasing all use of the term in the same way we as a community are advocating for ceasing to use non-inclusive terms? There’s a useful distinction here between words that we as a society agree are offensive and therefore unacceptable, and words that may be unpleasant for particular individuals because of their own circumstances. The latter is cause for consideration from colleagues to avoid its use, but I would not expect people to advocate for the complete elimination of terms in this “unpleasant” (or to use your word, “questionable”) category as we do for the “offensive” category.
In your original post you write, “If desirable people are offended by old, accepted terms, we should change those terms.” When introducing a term for the first time the cost to choose differently may be trivial and so the tradeoff is easy to analyze, but here, the cost of replacing an entrenched term is not trivial, and so we must examine what the potential benefit is in order to do this analysis. Are desirable people offended by terms that aren’t non-inclusive: processes killed, hung, or orphaned?
So we need safe spaces now in our code? Guys if someone loses their mind when a “process dies” you may want to consider hiring well adjusted adults instead of people looking to be offended. Ffs are we not done with this stuff by now?
You, people, are so busy patting yourselves on a back for being inclusive, tolerant, diverse and so on that you haven’t even noticed how aggressive activists began censoring your own language. This is so sad.
This is a post I also have trouble with. I think there are two levels. The first is civility / human decency. The other is following the current moral fashion (see Paul Graham’s essay “What You Can’t Say” http://www.paulgraham.com/say.html). I’m afraid Eric is danger of falling into the moral fashion camp.
It’s a difficult subject, and really tempting to apply simplistic thinking to, especially since most people don’t think well in the first place.
Ironically, I see at the top of the page he is part of the “Masters of Technology” video series. Has he asked that they change their name? Or maybe it’s fitting. Looking at haves and have nots in my part of the U.S., the have nots might be slaves to technology. The combination of poorer people tending to have jobs that require more exposure to other people and the technology gap putting them at a disadvantage for signing up for COVID vaccinations disturbs me more than word choices.
This article was linked off of the Paul Graham article I mentioned:
(I apologize for their use of “blacklist”.)