This is a deeply personal article, that hasn't been easy to write, especially with all the tension currently occurring in the tech industry, around inclusiveness, gender, code of conducts, etc. I've done my best to explain my thoughts on the matter, while being as respectful as possible. If you feel that you disagree with me, I'd be happy to debate with you, as long as the discussion stays civil and respectful.
The lay of the land
I have been working as a professional engineer in the tech industry for the last 7 years or so. My first contact with the subject of under-representation of minorities in the industry came during EuroPython 2012, when a tasteless tweet was posted the very night after which Lynn Root talked about "Increasing women engagement in the Python community" (these events are best summarized by Lynn herself). And these events kept happening, and happening, and happening. My personal view has since then been that each of these highly publicized events were caused by an appalling lack of tact, thoughtfulness, empathy and respect, and that conference attendees should make sure to behave appropriately or should suffer the consequences.
Code of Conducts started to be defined for conferences and online projects, thanks to the initiative of groups and individuals pushing for more respectful and inclusive communities. I have always thought that these were essential and useful, because they seemed to be making some conference attendees or project members feel safer (and not making myself feel less so), and would probably help keeping jerk-like behavior at bay.
Safe spaces were organized in conferences (I even helped on a few myself, as a tutor), and I thought it was a wonderful idea. I did not take anything away from the most represented types of conference attendees, and allowed less represented people to be able to take their marks in a safe environment.
However, I feel something changed for me when I read the proposal to replace the
master/slave terminology by
leader/follower in the Django framework. The PR starts with the following stance:
The docs and some tests contain references to a master/slave db configuration. While this terminology has been used for a long time, those terms may carry racially charged meanings to users.
My view at the time was "I mean, it does not really change anything for me, and if it can help people feel better...". Looking back, I'm pretty sure I felt a bit of unease reading the PR, but I (subconsciously or not) shrugged it off.
That debate recently resurfaced when the same thing happened in both the redis and the CPython codebases. Reading what antirez (the redis creator) had to say on the subject was a real moment of clarity for me.
Today it happened again. A developer, that we’ll call Mark to avoid exposing his real name, read the Redis 5.0 RC5 change log, and was disappointed to see that Redis still uses the “master” and “slave” terminology in order to identify different roles in Redis replication.
I said that I was sorry he was disappointed about that, but at the same time, I don’t believe that terminology out of context is offensive, so if I use master-slave in the context of databases, and I’m not referring in any way to slavery. I originally copied the terms from MySQL, and now they are the way we call things in Redis, and since I do not believe in this battle (I’ll tell you later why), to change the documentation, deprecate the API and add a new one, change the INFO fields, just to make a subset of people that care about those things more happy, do not make sense to me.
After it was clear that I was not interested in his argument, Mark accused me of being fascist.
At this point, I realized the landscape had dramatically changed, and that the inclusiveness debate had morphed into a more politicized and (according to me) confused and sterile version of itself.
Case in point, someone suggested the Zen of Python should be modified because the sentence Beautiful is better than ugly could be interpreted as a support for body-shaming behaviors. Words cannot express how wrong this feels to me. That suggestion shows both a profound lack of contextual thinking, and a will to advance a pro political correctness agenda.
People have been talking about Beautiful Code and Ugly Code for a long time. Long enough to write books about it. Long enough so that I could have late night discussions about it with my father (who's also a computer scientist). To me, suggesting that Beautiful is better than ugly encourages body shaming feels alien, because it's completely out of context. Words have certain meanings in certain contexts. That's how we get away with synonyms. In the context of the Zen of Python, the word Beautiful clearly characterizes code, not people. The Dwarf Star term defines a certain type of star, with given astrophysical properties. Should the entire astrophysics community rename it just because some people feel it's an offensive way of calling Peter Dinklage? Similar humorous (or not?) counter-arguments were offered during the CPython master/slave debate.
It seems all we read about now (especially after Linus Torvalds' temporary stepdown) is either written by strong meritocracy partisans, conspiracy theorists or by strong inclusiveness defenders (I've decided not to use the term SJW, as I understand it's a mocking and pejorative term).
It was even suggested and debated whether that this suggestion was made by a troll. The fact that, troll or not, that discussion lingered for several days is a very serious issue to me. It shows how polarized the debate now is, and how easily a strong community can be derailed.
About inclusivity, diversity and context
The core of the debate is focused on inclusivity and diversity (see this example), which got me thinking. It's clear to me why we want to push for diversity:
- a body of similar minds will likely producer similar solutions to a problem, causing the final adopted solution to be more narrowed
- a person could (subconsciously or not) avoid a given career path / community because she/he might not feel represented enough, and thus feel excluded or as though he/she does not belong
I want to focus on the second point, because I'm of the opinion that this is where the heated debates stem from.
If you read the Code of Conduct Covenant, which is a code of conduct most of the current conferences and community use or are based on, the text starts with:
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
I naturally tend to agree with this. We should all strive for inclusiveness and diversity, and should make sure everyone is treated gently and is given a friendly, open hand, whomever they are. However, if I were fostering malicious intent, I could point out that this list does not cover diets. I myself am a flexitarian (I've cut out all fish and meat from my daily diet, but will eat some without issue if there's no other option). I could somehow feel unrepresented or even excluded from a given community if its CoC does not state that my personal diet should be respected.
Although that example could seem frivolous or ridiculous, it points out something I feel is interesting. That whole paragraph attempts at listing all the way people could differ, to make sure everyone is explicitly included. I would personally have phrased it a more open-ended way:
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of who they are and how they identify.
as I think some issues stem from the fact we have attempted to list what constitutes "diversity". If a tech conference decides to impose quotas on speakers, these quotas will focus on certain attributes (eg sex and skin color) while missing others (eg age, education), which might help some people to better identify to the speakers, but might not help others. This inventaire à la Prévert certainly looks like inclusiveness, but I think it misses the point.
How we identify is both subjective and subject to context. I might identify as an SRE, an engineer or a Python developer in the context of work or a tech-related event, a social extrovert in the context of a party, an leftist heterosexual male in the context of my personal and private life, etc.
How we identify depends on context, and yet, we seem intent on mixing personal identities and non-personal contexts, the same way accusing Beautiful is better than ugly to promote body shaming mixes human and technological contexts. I recognize that some situations are trickier than others (eg conferences, workplaces), because they can mix personal and professional contexts, thus blurring the lines.
If diversity is defined as having multiple identities present, then diversity must be subjective and subject to context too. To follow in that tech conference example, I feel diversity in the technological content should reside in education background, level of experience and field of interest of the speaker, while diversity in the social events tied to the conference could have a totally different definition.
These criterion are my pick, but I suggest you clearly and openly define which ones matter to you if you're ever in the position of selecting speakers or employees.
In my view, the tech industry as a whole has been guilty of resistance to change by kicking around the old meritocracy horse for too long. We need to talk about the lack of women, the rampant misogynist attitudes, the male/women pay gap. We need to fix these issues by acknowledging them first, and debating them transparently, in a less polarized way. Not just as an industry, but as a society.
However, as I don't buy in the "show me the code or GTFO" attitude, I don't believe in politically correctness before everything else. If some people lack the ability to recognize that Beautiful is better than ugly in the Zen of Python does not body shame people, then maybe we shouldn't let them define what our core values are.