TLDR: To all the OSS peeps out there right now pushing to remove racially charged terms from their projects - keep up the fight! It is definitely worth it
For the last ~17 years I have largely owned the language used by Microsoft virtualization. Here is a story about that /1

For the last ~17 years I have largely owned the language used by Microsoft virtualization. Here is a story about that /1
In 2003 the small bay-area company I was working for (Connectix) was acquired by Microsoft. I was given one mission: figure out how to ship our flag ship product (Virtual PC) as a Microsoft product as quickly as possible. /2
It was a wild ride - and in the process I learned that there are two teams at Microsoft that you cannot ignore. Security and Legal. One day as we were going through various reviews - an issue got flagged as being a ship blocker from the legal team. /3
When you booted a virtual machine in Virtual PC - for just a moment, under a second really, the BIOS screen showed:
Primary Master: HDD
Primary Slave: None
Secondary Master: CD/ROM
Secondary Slave: None
/4
Primary Master: HDD
Primary Slave: None
Secondary Master: CD/ROM
Secondary Slave: None
/4
The legal team told me that this was racially charged language and had to be removed. We were flabbergasted. "It's industry standard terminology" "It's only on the screen for a moment" "It's in code that we licensed from another company - that is shipped everywhere". /5
Fortunately, the legal team were resolute. Shipping this language was not acceptable. We spent some time debating - and made a code change so that the BIOS screen showed:
IDE Location 0:0 : HDD
IDE Location 0:1 : None
IDE Location 1:0 : CD/ROM
IDE Location 1:1 : None
/6
IDE Location 0:0 : HDD
IDE Location 0:1 : None
IDE Location 1:0 : CD/ROM
IDE Location 1:1 : None
/6
And we shipped, and it was fine. And, to be honest - I had forgotten that this was even a thing. Until a couple of years ago when I started getting into Kubernetes - and came across the "Kubernetes Master". /7
My immediate reaction in that moment was "Ugh, people are still doing that?". So please - keep up the good fight. It is worth it. And to the people arguing that these terms are "technically accurate" - let me say this: /8
Technically accurate =/= appropriate. Technically accurate =/= the only way to say things. A term can be technically accurate - but there can still be a better way to say it. As an example - /9
I have a wicked sense of humor, love word play and innuendo (people who know me are horrified when they find out that I am the Hyper-V language cop). So - when the legal team told me that I could not use "Master/Slave" in 2003 - my first response was: /10
What about "Dominant / Subordinate"? Amusingly the legal team had no issue with this - however, my engineering team did (good thing). But it is a good example none-the-less. Technically accurate, not appropriate. /11
Now, back to work for me. And to resist the urge to make a PR against Kubernetes to have the "K8s Dom" control the "K8s Subs"...
/12
