It's my belief that authoritarianism is so ingrained in the fabric of software development that it has been internalized to such a degree that even the most anti-authoritarian people cannot avoid being authoritarian. This essay is an attempt to outline a framework for evaluating software development practices, organizations, and communities on the basis of authoritarian and totalitarian policies and behaviors.
My goal in writing this series of essays on authoritarianism is to give people in the software development world--and specifically in open source--the information they need to make a fully enthusiastic, informed, consensual decision to continue to be a part of an authoritarian system. What I want is for people who are currently involved in a project to avoid wasting their life working for leaders and a community that ultimately will simply exploit them as all authoritarian organizations do.
In short, I believe there is no such thing as a Benevolent Dictator for Life, and that by learning why that's true you can better decide to for yourself how you want to spend your free time.
Programmers have a propensity to use the Fallacy of False Equivalence to discredit or promote nearly anything. If you create a fantastic system for people to communicate, the people who hate it will says, "That's just Twitter." No matter how different your system is from Twitter, they will use False Equivalence to discredit your work by abstracting the definition of "Twitter" to be "Any system where people talk". However, if this Twitter hater invents a new chat protocol that they want to promote they will declare it a completely new invention of pure genius that is nothing like anything before. This random false equivalence allows programmers to use abstraction to redefine nearly anything they want to mean anything else they want.
To prevent this fallacy of false equivalence I'm going to narrow the discussion to communities that do not gain Informed Consent for their authoritarianism. In fact, another essay will make the case that a defining criteria of authoritarianism is removing people's right to informed consent, so if a project is honest about being authoritarian, then they are most likely not authoritarian, even though the community may be.
This means that if you're reading this, and then you attempt to apply the false equivalence trick to make it seem like everything is authoritarian, then you're wrong. Or, maybe you're right, but I'm narrowing this discussion to specific communities and projects that are:
- Attracting people to join without enthusiastic informed consent.
- Utilizing this disparity in information to create, support, or promote authoritarian goals.
For example, if you want to say that all corporations are authoritarian, then while that may be true in an abstract sense, it wouldn't be true for this discussion because people who join corporations definitely know that they're authoritarian. Same would be true for an educational institution. People join universities and know that it is an authoritarian system by its nature. They're clearly informed before joining, and enthusiastically pay to be there. This changes however if the organization doesn't inform people of things that would have changed their consent.
I will also separate analysis of authoritarian leaders from authoritarian communities. By separating the community from the leaders we can start to make a more distinct and accurate analysis of authoritarianism. We can have situations where the people in charge may be doing everything right, but the community is rampantly authoritarian. We could have the inverse where the leaders are completely authoritarian but the community is not behaving in any authoritarian way. It is frequently both, but there are a few instances where there's a separation. Once we understand where the authoritarianism is coming from then we can start to make plans to change the situation, or simply leave now that we are more fully informed.
You'll notice that I deliberately use the word "authoritarianism" rather than "fascism" in this discussion. From a programmer's viewpoint I see fascism as a subclass of authoritarianism, and I want to discuss authoritarianism in a more universal sense. I also avoid the word fascism because it tends to allow authoritarians to dodge the substance of accusations against them with claims of conspiracy theory. The tactic is to wait for someone to scream "Nazi!" or "Fascist!" and then to say they are not a Nazi because they are not even remotely as bad as Hitler. They never killed anyone "you crazy conspiracy theorist!"
Accusations of mental instability are a favorite of fascist regimes, so if you see that you know immediately that person is definitely a fascist. But, not being as bad at Hitler is easily the lowest bar possible for ethical behavior of a leader. If someone's only defense for their authoritarian behavior is that they didn't slaughter millions of people then that's no defense at all. It's entirely possible for someone to use propaganda, coercion and manipulation to convince a large population of people to follow their authority without murdering anyone. To avoid those in power using the False Fascist Defense I'm going to boldly claim the following:
You're only a fascist if you killed people. Everyone else I'm discussing is an authoritarian.
With that covered I can now devise a straightforward definition of authoritarianism:
Any deference to authority given or taken without the enthusiastic informed consent of everyone involved.
Notice this definition doesn't focus completely on authoritarian leaders. It also covers authoritarian communities with the "given or taken" part of the definition. It also doesn't rely on any specific behaviors such as propaganda, any patterns of authoritarianism from the past, any political ideals, or any requirements of death or genocide. It simply says that if someone gives or takes deference to authority, and they receive this authority without enthusiastic informed consent, then that's authoritarianism.
Let's break down each part of this definition:
The existence of authority doesn't really create an authoritarian system of governance. What does create authoritarianism is not questioning authority, or more specifically giving deference to authority. Deference is easily defined as "humble submission and respect", and manifests itself in various ways:
- Believing whatever someone in a position of authority says even in the face of clear evidence that it is false.
- Allowing someone in a position of authority to break the rules while everyone in the community is expected to follow them.
- Praising or forgiving the bad behavior of people in authority while simultaneously ridiculing anyone else doing the exact same bad behavior.
- Accepting any totalitarian punishment leaders give out even if that punishment is easily viewed as extreme or abusive.
- Attacking anyone who questions those in a position of authority.
- Relying on and trusting those in authority to provide safety and security.
I want it to be clear that authoritarianism hides in leadership, but is easily observed in communities. Authoritarian leaders are desperate to keep their secrets a secret because if everyone found out what they really do then everyone would have informed consent and would most likely leave. We usually only find out about their bad behavior after their organization has completely died and those benefiting have come forward to tell the truth. Where you can very easily see authoritarianism is within communities and their behavior. That's why I add to this definition the "given or taken" portion. It separates the two halves of any authoritarian system into the behavior of the leaders and the community.
Deference to authority "given" is where the community demonstrates deference to authority, even if you can't readily see any leaders actively "taking" authority. In fact, you may have leaders who are not actively taking authority, but are opportunistically allowing it to be given to them by the community. You may have a community that is just blindly authoritarian while the leaders don't actually act in any authoritarian way at all. At the same time, you may see people in positions of authority actively taking or demanding deference from the community through abuse of critics, secret dealings, secret enforcers, and reworking of the rules to favor their positions of power.
Doing this eliminates the influence that authoritarians have by ignoring their propaganda and lies to focus on how their community behaves. It's authoritarian duck-typing, where we say, if the community quacks like an authoritarian duck, then the organization is authoritarian.
Enthusiastic Informed Consent is the idea that people have a right to know everything before they give consent to authority, and that they can only give consent enthusiastically, or explicitly if you prefer. That means that consent cannot be taken, coerced, or acquired through lies and propaganda. This also means that authority is only given through consent, and that if the consent is removed then those in positions of authority have to step down. A clear sign of authoritarian leadership is they don't step down when it's demanded by the community.
Enthusiastic informed consent is the standard we hold people to so as to reduce the chance that someone is exploited. If someone is fully informed of all of the secret rules, secret community enforcers, all past and future possible totalitarian punishments, and has an ability to vote on leaders and governance, then we can say they were informed and enthusiastic about it. However, if they never get to vote on leaders, never know of secret deals, don't know how leaders fill their pockets, and have no say on governance, then they were never given the information required for informed consent.
The other purpose of enthusiastic informed consent is so abusive communities can't hide behind secret totalitarian policies. If everyone in the community actively voted for an abusive rule, voted for the person who enforces the rule, voted for every totalitarian application of the rule, then that community can't subsequently claim to be hapless victims of the leadership.
The concept of "everyone" changes easily depending on the will of the leadership:
- When leaders want knew members "everyone" means the entire world.
- When leaders want the community to do work for them "everyone" means the leaders and all of the community members.
- When leaders want to keep power "everyone" becomes only their inner circle of approved members.
- When leaders want to avoid the blame for abuses by the community, "everyone" becomes only the community and not the core members.
I define "everyone" to mean all people in the community, leadership, and anyone they are attempting to attract to their project. This obvious definition of "everyone" prevents those in positions of leadership--and the community that gives them deference--from utilizing this rhetorical trick to avoid blame. Everyone should include the people they are targeting with their marketing because that's who needs to be given all the information they need to give enthusiastic informed consent. By defining "everyone" as only the leader's inner circle (aka the "core group") they narrow the requirement for consent down to the people who are already in on all of the secret workings, which means they aren't actually giving information to people who need it.
In this series of essays on Authoritarianism in Code I'll use examples from open source projects to demonstrate each concept. The first example is most likely the most perfect example of "Deference to Authority" as anyone could possibly find. It involves Steve Holden, Nick Coghlan, and Jesse Noller and their attempted cover-up of an egregious sexual harassment incident by Steve Holden in 2012. The purpose of this example is to show that the Python leadership and community behave in an authoritarian way by demonstrating a deference to authority. As previously stated, you don't have authoritarianism without a community giving deference to those in authority, and the Python community is ultimately the ones to blame for the outcome of this incident.
In 2012 the Python Software Foundation announced the creation of a new Code of Conduct that was written in such a way as to make it easy for those in power to punish anyone they wanted for almost anything. Having worked with many of them, and knowing quite a few juicy gossip insider details I could never prove, I knew that this new Code of Conduct would never be enforced on those in the PSF leadership or the Python core group. I voiced my concern about this, and immediately received a heavy backlash from Nick Coghlan, Jesse Noller, and Steve Holden. Nick called me a "derailer" for questioning this Code of Conduct and it's poorly written flimsy legalese, and Steve went to work using his position of power to discredit me (which will come up frequently in this series).
Keep in mind that my position on the Code of Conduct at the time was not that a set of rules governing behavior was wrong, but that this particular one was written in a way that protected people in power while providing a way to punish anyone who disagreed with them. At that very PyCon I was wildly proven right.
In 2012 I had a female friend contact me and complain that Steve Holden walked around PyCon asking her and other women to touch his "one eyed snake". He had taken the eye out of a stuffed snake, and would ask people to touch it and take a photo with him. For those who don't know, a "one eyed snake" is clear slang in English for a male penis. Steve Holden was literally asking women (and some men) to touch his penis. Doing this once is enough of a violation to be ejected from the conference, but Steve did this for the whole conference. The Code of Conduct that Steve voted for--and defended--strictly said any sexist behavior, or even simply offending someone, would result in expulsion from the conference and banning from the Python software foundation:
Harassment includes offensive verbal comments related to gender, sexual orientation, disability, physical appearance, body size, race, religion, sexual images in public spaces, deliberate intimidation, stalking, following, harassing photography or recording, sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual attention.
Was Steve fired from his position at the PSF after his admission of guilt? No. In fact, he was given additional lucrative contracts to run both PyCon and DjangoCon and put in charge of diversity training where he would tell the same bizarre story about a man cussing at him on a street in Portland (more on that in another post). Not only was he not ejected from the Python universe, but he was protected and promoted after the incident.
Did the community come after him for it? Not at all. In fact, many, many people who supported the Code of Conduct actively went out of their way to defend him. They first tried to claim that this happened before the rules were in place, which is not true (PyCon 2012 was in March, Steve's admission is in December that year). Even if it were true these same people go after anyone who commits the offense of racism and sexism 10 years ago, so why would they give Steve a pass because of a few months gap in a new set of rules? Regardless, the rules were in place and he definitely knew about them because he criticized my criticism of their abuse potential. Then members of the community attempt to claim that he's just a confused old British man who doesn't know what a one eyed snake is! It's an innocent joke! He was only kidding! C'mon look, he finally apologized!
As we continue, I want you to remember the behavior of the community when Steve violated the rules he helped create:
- They didn't call him out immediately at the conference.
- They didn't have him ejected from the conference.
- They didn't get him fired.
- They actively tried to protect him and intimidated anyone who tried to report him.
- They tried to say that he was senile, it was unintentional, it's not a big deal, or other excuses for his behavior.
- They then allowed him to apologize and allowed him to speak about diversity and receive more of their donations in lucrative contracts.
I predict that current leaders and community members will attempt to claim that this was so long ago, but they have no problem going after anyone else for past behavior. Time seems to have no relevance when they want to punish someone for bad behavior, so why is the age of the offense relevant with Steve?
Clearly Steve Holden's incident demonstrates deference to his authority by both the community and the Python leadership, but maybe that's just the standard of punishment for incidents. Is it possible to find an instance where someone not in a position of power was treated very differently? Yes, in the 2013 Dongle Joke Incident we see two men making a sexist joke, one time, in a private conversation, and being immediately ejected from the conference by Python leadership, and subsequently losing their jobs. The jokes were crass and sexist, but let's quickly compare the behavior and outcomes of two incidents:
|2012 Holden One Eyed Snake||2013 Dongle|
|Repeatedly asked other women to touch his penis||Once joked privately about having big dongles and "fork her repo"/|
|Directed this sexist comment and physical act at specific people||Only overheard indirectly by an audience member|
|Steve was in a position of power who helped write the Code of Conduct||Not in any position of power and could have been unaware of the Code of Conduct|
|Not reported by anyone during the conference||Immediately reported|
|People attempting to publicly report hunted down by management and threatened||Publicly shamed with no help from anyone in leadership|
|Not ejected from the conference at all, even with Python leadership knowing||Immediately ejected from the conference and publicly by the Python leadership|
|Allowed apologize months after the incident||All apologies ignored|
|Secretly given more lucrative contacts and put in charge of diversity||Lost their jobs immediately and publicly|
This is deference to authority. Steve is a prominent leader in the Python community and was not only given a pass but a promotion, more money, and put in charge of diversity after a clearly sexist repeated violation of the Code of Conduct he helped create. Meanwhile, two regular people with zero authority were vilified for an objectively lesser offense and lost everything. The Python leadership demonstrated my criticism of their Code of Conduct by enacting a totalitarian punishment on regular PyCon attendees while they protected Steve's incident. The handling of the 2013 dongle incident therefor demonstrates the Python leadership's authoritarianism, but what about the community?
By protecting Steve Holden's objectively worse behavior we see that the Python community is authoritarian. Steve was given deference, protection, and chances by the community for behaviors they have actively said are terrible behaviors. When you look at the reactions you don't see people demanding he be fired and banned. In fact, you'd be hard pressed to find a single person who even complained about Steve teaching diversity after a major diversity violation. The community should have at least prevented Steve from teaching and speaking about diversity, but nope, nobody. I think maybe two people told me this in private the entire time I was connected to the Python world. Two.
Prominent Social Justice Warriors, Feminists, and Anti-authoritarians not only didn't go after Steve for his vile behavior, but they defended him at every turn. They either tried to claim he didn't know the slang (he did), was a confused old man (he wasn't), didn't know the rules (he voted for and defended them), or should be forgiven because he "did so much for Python." Yet, when Adria Richards reported a lesser violation, none of these people came to defend those men. In fact, many of the same people who got those men fired for a single joke told in private were active defenders of Steve's begging women to touch his penis in public.
When the community allows the leaders to violate rules, but attacks and destroys random tangential people for lesser violations, you have clear deference to authority and that's authoritarianism.
Sadly after Adria reported the incident she was fired and also ridiculed and attacked. This is sad because she did have a valid complaint, and she should have been allowed to report it, but I suspect she knew that if she reported it secretly the Python leadership it would be hushed up. I'm not exactly sure if that's her thinking, but I can totally see her looking at how Steve was treated and then realizing that without a public shaming nothing will be done. To me Adria was simply doing what someone should do when they're operating under a clearly corrupt authoritarian system: film it.
What Adria reported was wrong, and I'm not disputing the bad behavior that offended her. Not at all. What I am disputing is the punishment should fit the crime, and should be applied equally to all. If Steve was allowed to apologize for asking women to touch his penis, then that should have been the standard punishment for this lesser offense. They should have been asked to apologize publicly (they did), apologize to Adria, and then Adria could have reported they apologized and everyone most likely would have come out fine. Instead the offense was given the most totalitarian punishment of public banning and ejection from the conference resulting in both men losing their jobs.
To me that is far too harsh for some jokes, but if you believe that this should be the punishment for every sexist comment at a conference, then...why didn't you get Steve fired? His actions were far worse than any jokes, and he was in a position of power so he should have been held to an even higher standard. He even voted for and promote the Code of Conduct, so should have clearly known the rules. If you believe that the standard for "fork her dongle LOL" is complete economic destruction and public shaming, then why did Steve get a promotion and control over diversity?
The issue here is not so much the severity of both offenses, but more that the punishment was totalitarian and unequally applied based on a deference to Steve's authority.
In the next essay I'm going to dive into exactly why the response to offenses like this seem to always be totalitarian punishments. Totalitarianism is simply where every crime receives the most severe punishment...unless you're a leader. I'll show how authoritarian communities love removal of consent and totalitarian punishments because it demonstrates strength from the leadership. You'll see how even the most liberal anti-authoritarian activists end up creating systems of totalitarian punishment in order to demonstrate strength against perceived enemies, and how they try to hide it from potential participants, thus denying possible participants their informed consent before joining.