Deconstructing Coraline Ada Ehmke’s “Contributor Covenant”, And Why It’s Foolish
Recently, this happened, where the subject of this article got mad when someone pointed out their Code of Conduct policy idea was hypocritical given their own hypocrisy:
Since I agree this CoC is, for the most part, unwanted, parasitical, and political, thus has no real value to a coding community except to allow unskilled ideological interlopers to insert their gender politics where it is not wanted, I plan to examine this CoC and explain why it is a useless document and it’s imposition should be resisted:
(Original in italics, my comments in bold font)
Contributor Covenant Code of Conduct
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, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
Alright, this sounds great on casual inspection, but here's the thing that is wrong when you give it thought: Coding communities generally DO NOT CARE about most of this. Most may never meet in person and all they see is pull requests, commits, discussions on changes.
Second, harassment. This is pure bullshit. If someone is being an asshole, they can be banned without needing a CoC to enforce this. In fact, let me quote Jack Ryan from the Tom Clancy novels:
"If you have to write your ethics rules down, you've already lost"
Practically all of this is common sense and the coding community is quite good at tossing out abusive assholes with their existing policies, and common sense dictates abusive assholes contribute nothing but drama and thus they get tossed out anyway.
And to close any loopholes arguments, someone like Linus Torvalds telling you your code sucks is NOT harassment or abuse, he's shitting on your code, not you, and since the code is raison d'etre of why you and anyone else is there, it is not a personal attack, it is frustration the code is bad, and should be taken as a call to improve it.
If you get upset by that, you clearly are unable to take criticism.
Examples of behavior that contributes to creating a positive environment
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
This is mostly common sense crap no one needs this CoC for.
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
Well no shit. A coding environment is no place for this anyway, common sense again, this CoC is telling us crap anyone should know.
And if this is just veiled bitching some code strings might sound sexual, get your mind out of the gutter. It's code, not dirty language meant to offend people looking to cry over something.
* Trolling, insulting/derogatory comments, and personal or political attacks
Well, duh. I did not need this patronizing document to explain this.
* Public or private harassment
Again, duh. Bear in mind, OUTSIDE the coding project is beyond the coding projects purview, you need to contact the proper authorities. If you don't, it's your fault for not trying to deal with things appropriately.
* Publishing others' private information, such as a physical or electronic address, without explicit permission
Well, no shit. However, if you publish your email address in public anywhere, you can't complain later if it is republished. If you are referring to SSN numbers or something like that, again, common sense dictates this is not allowed anyway in every code community I am aware of, since it's illegal in every jurisdiction I'm aware of.
* Other conduct which could reasonably be considered inappropriate in a professional setting
This is pretty vague and unreasonable. It's basically a "whatever I don't like clause" and is a slippery slope to oust people for offending whatever fits your definition of this. This is flagrant bullshit and needs removed.
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
Again, more weasely nonsense that gives god like power to remove anyone for offending you without clear definitions. This section is bullshit and should be amended to the following:
"Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors if the offense warrants such sanctions"
I purposely excised the "for other behaviors that they deem inappropriate, threatening, offensive, or harmful." part because it's the same vague "whatever excuse I want to come up with depending on how I feel" BS I pointed out earlier and could be easily abused to drive out anyone the enforcer of this CoC sees fit according to whatever arbitrary whim they may have.
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
All but the last sentence is fine. The last sentence is a thinly veiled way of giving an excuse for giving a code editor grief for behavior outside the scope defined by the rest of the paragraph, again, at the whim of the enforcer.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [INSERT EMAIL ADDRESS]. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
This isn't too unreasonable, though as a transparency advocate, I would argue all but extremely sensitive cases (like that involving legal issues or private data) should be made public to ensure honesty on the enforcer's part.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
So decisions on sanctions are made by majority vote or by an arbitrary number of people on the project? This is vague and unhelpful, and yet another potential wedge for abuse.
This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4/
For transparency reasons, I have submitted my objections to the project in question here: