In a lengthy essay published on his blog, developer Zed A. Shaw presents a framework for evaluating software development communities based on authoritarian and totalitarian behaviors. The core argument: authoritarianism has become so ingrained in open source culture that even self-described anti-authoritarians participate in authoritarian systems without realizing it. Shaw's central claim is that the "Benevolent Dictator For Life" (BDFL) model common in major open source projects removes the requirement for informed consent from contributors and users alike.
Defining Authoritarianism in Code
Shaw proposes a precise definition: "Any deference to authority given or taken without the enthusiastic informed consent of everyone involved." This framework deliberately avoids labeling systems as fascist, instead focusing on whether communities actively question authority versus blindly deferring to it. The essay breaks down three components: Deference to Authority (submission without questioning), Given or Taken (distinguishing between community-enforced and leader-imposed authoritarianism), and Enthusiastic Informed Consent (the requirement that all parties fully understand what they're agreeing to before any authority is granted).
The Python Community as Case Study
Shaw uses the Python Software Foundation as his primary example, focusing on two incidents from 2012-2013. In March 2012 at PyCon, PSF chairman Steve Holden repeatedly asked female attendees to touch a stuffed snake with its eye removed, jokingly calling it his "one eyed snake"βclear slang for male anatomy. Despite the newly enacted Code of Conduct explicitly prohibiting such behavior and punishable by ejection and banning from the foundation, Holden faced no consequences. Shaw claims Holden was subsequently given additional lucrative contracts to run PyCon and DjangoCon, and was even placed in charge of diversity training.
Contrasting Punishments Reveal Double Standards
Shaw contrasts this with the 2013 "Dongle Incident," where two male attendees made a sexist joke about "big dongles" and "fork her repo" in private conversation. Unlike Holden's repeated, public targeting of specific individuals over an entire conference, these offenders were immediately ejected from PyCon and subsequently lost their jobs. Shaw's comparison table shows the stark difference: Holden was protected by leadership and community despite violating rules he helped write, while two non-powerful attendees faced totalitarian punishment for a single overheard joke.
Community Complicity in Authoritarian Systems
"The Python community is ultimately the ones to blame," Shaw writes, arguing that authoritarian leaders maintain power only through community deference. He identifies specific behaviors demonstrating this: failing to call out violations immediately, actively protecting violators who hold positions of power, intimidating reporters, and accepting excuses for leadership behavior while punishing identical behavior from regular members. The essay notes that prominent social justice advocates and self-described anti-authoritarians defended Holden despite his clear violation of principles they claimed to uphold.
Key Takeaways
- Authoritarianism isn't about specific political ideologiesβit's about whether authority is granted with informed consent
- BDFL leadership structures inherently remove contributors' ability to withdraw consent once given
- Double standards in enforcement reveal authoritarian community dynamics, not just leader behavior
- Secret rules, secret enforcers, and lack of voting mechanisms indicate absence of informed consent
- Time-based excuses for leadership violations (but not regular members) demonstrate selective application of standards
The Bottom Line
Shaw's framework exposes an uncomfortable truth: the open source movement that prides itself on freedom often runs on systems where power flows upward unchecked. Real change won't come from replacing one BDFL with anotherβit requires building governance structures where participants can actually walk away, and where rules apply equally regardless of who holds the commit bit.