Garaudy Etienne had known the computing concept of “master branch” before starting as a product manager at MongoDB, having heard the term while working with code as an engineer at prior companies.
But as he started to more deeply think about the use of “master,” and particularly after seeing database code where the term was paired with “slave,” Etienne decided it needed to go.
“I was like, ‘This has to change.’ There was a recognition that the terms weren’t appropriate,” he says.
Etienne is among the team at MongoDB now taking a programmatic approach to eradicating “master” and “slave” from its code and documentation, joining other technology companies and individual technologists in pushing back against problematic language long used in the profession.
They have a lot of work ahead of them.
Tech terminology’s troubling past — and present
The use of “master” and “slave” is pervasive and wide-reaching in IT. The terms exist in recent deployments, and they’re also buried deep in legacy applications. That makes removing and replacing them as well as other problematic terms a complex, long-term project requiring cooperation and coordination across technology vendors, enterprise IT departments and tech groups such as standards associations and open source communities.
“Code is riddled with this terminology. People have been trying to migrate to updated terminology, but it’s persisted. It’s one of those things that you’re surprised to know it’s still there,” says Yale University graduate student Sinclair Im, a student fellow with the university’s Information Society Project and author of a Washington Post opinion piece on the topic.
How and when the words “master” and “slave” came into the computing field seems to be a mystery. One researcher cites its use to describe mechanical systems in the early 1900s, and leading technologists say its presence in computing goes back decades.
The terms refer to constructs in which one entity is the primary or controlling entity over others. In electronics and computing, for example, a device that acts as a controller and initiates commands is called “master” while the responding devices are identified as “slaves.” The terms are used to describe various components — such as “master servers” and “slave nods” as well as “master branch” in a code repository.
Those terms get the most attention, but they’re not the only ones identified as problematic. The use of “whitelist” and “blacklist” to mean “allowable” and “block” has come under similar scrutiny. “Any version of that, really, anything where ‘white’ means ‘good’ and ‘black’ means ‘bad’ we’re tackling also,” Etienne says.
Step toward greater inclusivity
MongoDB is one of many companies and tech communities that have committed to identifying and eradicating problematic terms.
The nonprofit Inclusive Naming Initiative exists solely to address this issue, saying its mission is “to help companies and projects remove all harmful and unclear language of any kind and replace it with an agreed-upon set of neutral terms.”
Organisations including Cisco, Google and Microsoft-owned GitHub are also undertaking this task, using alternatives such as “main” for “master” or “allow list” and “deny list” instead of “whitelist” and “blacklist.”
Red Hat, too, is addressing this issue, announcing in June 2020 that it was undertaking the project as a way to make “open source more inclusive.”
Chris Wright, the company’s CTO, says eradicating problematic language is a specific, concrete action that companies such as his can take to both influence the larger tech community to think more inclusively as well as to be more impactful in its own efforts to create a more diverse tech workforce.
“It’s not only about software; it’s much broader than that,” Wright says. “This is about bringing awareness that will lead to better inclusivity, and inclusivity is critical to bringing diversity.”
Remove and replace: A cross-disciplinary project
MongoDB has taken a programmatic approach to removing and replacing problematic language, treating the task much as it would other work initiatives. That includes naming the program, titling it “Modernization of Product Terminology.” The company defined the problem, envisioned the end goal, and scheduled a meeting in 2019 to kick off the initiative.
“We met to identify it, discuss how pervasive it is, talk about what version of the software we should fix, and how do we address it,” Etienne says.
It was a good start, he says, acknowledging that “the harder part is making the changes.”
“You have to go change it everywhere, do a replace, and do that in a way that the customer’s software and the customer’s business doesn’t break. You can’t do a Control-F to find and change ‘master’ to ‘primary.’ There’s a lot of work to do,” Etienne says. As such, the initiative requires input from various disciplines, not just engineering. “Nearly every team has to do their part to make sure where these words show up they go away."
Etienne says the terms are spread throughout both MongoDB and its customers’ code and documentation. So team members must audit the code base to identify all the places where it exists, an undertaking that takes months. Then workers must make the actual changes and follow up with stress testing to ensure systems will still work following the changes.
“You can’t just do the work once, you have to do the work over and over [for the different versions],” he adds.
Etienne gives credits to the company for putting the needed resources behind this effort.
“In multiple areas of MongoDB, outdated and offensive terminology is utilised for various commands. As this terminology carries largely negative connotations, replacing it with more progressive and inclusive terms will create a better experience for all users,” says Dan Pasette, executive vice president of core engineering at the company.
Consider the resources the work has taken so far: 49 weeks of engineering time just for updating the “master/slave” terminology in the core MongoDB server, 24 additional weeks of engineering work to do that across the 12 drivers the company supports along with all the product documentation for a total of 73 weeks of engineering time.
“The work is still ongoing, and we don’t know how long it will take,” Etienne says, adding that success comes when the terms are completely gone.
A reckoning for open source
Etienne’s MongoDB colleague Marcus Eagan is also a leader in this effort through his work as an open source contributor with the Apache Lucene and Solr projects. Eagan, a senior product management for Atlas search, initiated the work with a powerful post that started: “Every time I read master and slave, I get pissed.”
He describes visiting his maternal great grandfather, a sharecropper in Alabama who, after losing his legs during World War I, returns to being a sharecropper where “he was basically a slave —in America.” Eagan slams the use of “master/slave” as both “archaic and misleading on technical grounds.”
He concludes with a call to action: “There are so many ways to reword it. In fact, unless anyone else objects or wants to do the grunt work to help my stress levels, I will open the pull request myself in effort to make this project and community more inviting to people of all backgrounds and histories. We can have leader/follower, or primary/secondary, but none of this Master/Slave nonsense. I’m sick of the garbage.”
Eagan spurred the community on; he and others are now replacing those terms within the open source code. But like the internal efforts at MongoDB, the work on this within the Apache repositories is extensive and complex.
“It would be bad on technical grounds to do it all at once, to make all the changes wholesale,” says Eagan, the only Black contributor for the Apache Lucene project. “So I’ve been working to improve the stability of testing structure in Lucene so I can make changes and also in Solr so you can make changes without introducing risk.”
As such, Eagan says the efforts to eradicate racist language goes hand in hand with improving quality — something he also speaks passionately about.
“It improves the code. It improves how intelligible the code is. We have to work with people all over the world, so the code needs to make sense in and of itself,” he says, explaining that the use of “master” and “slave” isn’t only offensive but inaccurate in its description of the technologies they label.
“I want to get people to think about what a master/slave is. Are we really trying to say the master is assaulting and dominating the resources of the slave? Is that what we’re saying about our system?” he says.
Eagan adds: “As engineers, people have to seek to iteratively improve the accuracy of their creation, the accuracy of the software. It’s not just about building in new features, new shiny whistles, it’s also very much about maintenance and readability so it can go forward and other people can add to it. And to do all that, you have to strive to improve the accuracy.”
Decades of work
Getting the tech community to this point, where there’s widespread awareness and acknowledgement that its use of problematic language needs to go, has been in the works for decades.
According to a 2003 report from the news outlet CNN, Los Angeles government officials asked manufacturers, suppliers and contractors to stop using “master” and “slave” on computer equipment. The move came after a city worker saw the language used on some tech equipment and filed a discrimination complaint with the county’s Office of Affirmative Action Compliance.
CNN reported that while some tech vendors relabelled their equipment to honour the Los Angeles request, others were angered by the complaint.
Now, nearly two decades later, efforts to remove the terminology have taken on new urgency as society reckons with institutional racism and continued violence against Blacks, Indigenous peoples and people of colour.
Etienne and others say they see a genuine commitment to eradicate the use of offensive language. They agree that’s positive. Yet they also point to the lingering challenges in bringing attention to others and gaining everyone’s support.
Etienne, for example, says he was the only Black worker in the room when the topic of taking concrete action to eliminate the language came up at MongoDB in 2019. Although such situations speak to the need for more diversity in the profession, Etienne says those involved in the conversation understood what was at stake.
“That obviously puts added pressure on me when we talk about what these [words] mean,” Etienne says. “But everyone was in agreement [with the need to change] as soon as you show the case for it.”