On Codes of Conduct (again)

I really wasn’t planning on entering the code of conduct discussion that is going on in the developer community at the moment. Last time I did, I got called at best, a White Knight, and at worst… well that would breach any decent CoC every written.

For those who aren’t aware, the PHP (and various other communities) are currently wrestling with the idea of introducing  a contributor code of conduct; a set of documents that govern what is and isn’t acceptable behaviour, how people can report unacceptable behaviour, and what sanctions can be done to those who are guilty of unacceptable behaviour. The initiative was spearheaded by Anthony Ferrera, who then stepped back after the inevitable shit-storm, and is currently being led by Derick Rethans.  The current working document can be be found on this GitHub repository.

So, against my own better judgement, here are some thoughts on the proposed CoC in it’s current format.

My number one current concern is that what’s currently proposed is overreaching in terms of what a code of conduct should be. For me, what’s currently proposed is much more than code of conduct. I’m bolding for dramatic effect, but nevertheless, for me a code of conduct has no place outlining how reports will be mediated, and how offenders will be punished. A code of conduct’s job should be to make people feel welcomed and safe in any given community. It should be a document specifically designed to re-assure those who usually need to think twice before involving themselves in unknown situations, for whatever reason. While knowledge that horrible people will be sanctioned might be reassuring to some, the CoC shouldn’t concern itself with how offences are handled, but only reassure that offences are handled, and are taken seriously.

It’s important for a code of conduct to reinforce the fact that incidents are taken seriously, and where appropriate sanctions and punishments will be handed out. Indeed, this is arguably one of the key points of a code of conduct, to make people feel reassured that if there are breaches of the code, then it will be addressed, and things will happen.

A lot of the arguments around the currently proposed CoC are around the area of mediation. Phrases like “secret court” being bandied around show that for some, the idea of one’s actions being judged without having a right to reply is a real concern, and so it should be. But the “Judge Judy and Executioner” response to potential breaches of the code of conduct should not be part of the code of conduct itself. Surely it would be easier and less contentious to propose a set of acceptable/unacceptable behaviours that everyone can agree on first. Once we have that, figuring out how to mediate and punish offenders will still be incredibly difficult, but while that argument discussion is happening, at least everyone knows what constitutes being a dick.

As a concept, the code of conduct itself is often misunderstood. People still think that a single sentence like “don’t be a dick!” is good enough, and that, as a group of adults, we don’t need to be told what’s right and wrong behaviour. I explained why that’s wrong in my last post on codes of conduct, and so I won’t repeat myself here. I would like to add something however. It’s bears repeating that what is acceptable behaviour to me may not be acceptable behaviour to you. We are global communities, and something that is deemed harmless and humorous in my part of the world might be deemed highly inappropriate elsewhere. A code of conduct needs to consider all cultures and communities and protect everyone.

But wait.

It only needs to protect people from being threatened and harassed. It’s OK to be be offended, and it’s OK to be offensive. There, I said it. The crux of this problem is that in the year 2016, people seem to think that being offended is some kind of slight against their human rights. I couldn’t disagree with this view more. If my opinion offends you then that’s unfortunate, but I’m not going to apologise for it. It’s my opinion, I’m entitled to it and to express it. Stephen Fry says it best when he speaks on offending people while no doubt offending some people.

We want to foster a safe and comfortable environment, but we want that environment to be interesting and diverse. We don’t want a community where people are too afraid to voice a dissenting opinion because they fear being smacked around the head by a code of conduct. It’s a fine line, but in the UK at least, being offensive is legal, while being harassing or threatening is not. It’s a fine line indeed, but one that needs to be walked carefully, so we keep our interesting and enjoyable community while making sure people feel safe and welcome.

The final problem seems to be that nobody has any idea how far reaching this code of conduct will be. Some think just people involved in internals, others think the entire community. A code of conduct for those people representing the project seems sane. If you are in possession of a php.net email address, you are representing the PHP project and therefore you are bound by the code of conduct. Offenders on the internals mailing list have opted-in to that community and can have that privilege revoked as a sanction against conduct breaches.  This seems to be enforceable in that breaches of the code of conduct can result in revoking representation — anything else just can’t be enforced by the team currently discussing it.

Splitting the document into a code of conduct and a “how we mediate complaints” document brings greater rewards. Now, PHP internals well formed, well thought out code of conduct can be used by anyone and everyone in the community. Symfony can adopt it, Laravel can adopt it, Doctrine can adopt it, and use their own mediation rules. Like the FIG and it’s PSRs, what starts off as self-serving can become a standard, and that has to be good for everyone. It would be amazing if, like pubs in inner cities of the UK, PHP communities and projects opted in to a “Pubwatch” style scheme. Just like Pubwatch, if you breach the rules in one member project, you’ll get sanctions in them all — but to get to that we need to take these first baby steps well.

So I ask everyone to consider if a document telling people what behaviour we deem unacceptable is that bad? Is the fact that people know how to report harassment that bad? I suggest it’s not, but the devil is in the details. So let’s not get caught up in existential meta-discussion on human rights and freedom of speech. Lets accept that freedom of speech is a concept that doesn’t apply to opt-in communities, and promote the fact that no, racism is never tolerated in the PHP community. Hate in any form will not be tolerated. Lets solve the easy problems first.