HOWTO design a code of conduct for your community

This post originally appeared on the Ada Initiative blog and was copied to this blog.

Two women standing back to back smiling
Hurray for no jerks!
CC-BY-SA Adam Novak

Now that we know it is possible to go to conferences and not be insulted or harassed, people are starting to wonder: Why can’t we have the same thing on mailing lists and wikis? Contributing to open tech/culture is WAY more fun when we don’t have to put up with jerks!

We have good news: several open source software projects have adopted a community code of conduct, inspired by the success of conference anti-harassment policies. Besides making your project more pleasant and efficient for people already involved, a code of conduct attracts new people. The OpenHatch wiki explains it this way: “As a new contributor, you might prefer FLOSS communities where contributors pay attention to these sorts of social questions. Having a code of conduct is often an indicator that a project has a sizeable number of contributors and interested in growing.”

Two community codes of conduct we especially like are the Django code of conduct and the Rust code of conduct. Why? Because these codes of conduct:

  • List specific common behaviors that are not okay
  • Include detailed directions for reporting violations
  • Have a defined and documented complaint handling process

Without these elements, a code of conduct isn’t worth the electrons used to display it on your computer screen. In fact, a code of conduct that isn’t (or can’t be) enforced is worse than no code of conduct at all: it sends the message that the values in the code of conduct aren’t actually important or respected in your community.

Designing a community code of conduct

So you’ve decided you want a code of conduct for your open tech/culture community! Here are some of the questions you should expect to answer while writing a community code of conduct:

Who adopts and enforces your community code of conduct? With conferences, the answer is easy: the conference organizers. In an online community, the answer to “Who is in charge around here?” is often much harder to figure out. Many open tech/culture communities consider this lack of structure to be a feature, not a bug, making it even more of a challenge. However, most open tech/culture projects do have people in positions of leadership who can enforce policies if they were inclined to do so. Some examples of people in roles who can adopt and enforce policies are foundation board members, employers of project members, mailing list administrators, code maintainers, IRC operators, wiki administrators, and anyone who decides how to spend money associated with a project. Employers usually already have policies that apply to their employees’ behavior, but they often aren’t enforced when it comes to their participation in open tech/culture projects.

What are the consequences for violating your code of conduct? At a conference, the organizers control access to the physical space, so penalties are easy: asking the person to either apologize or leave the conference, or stopping a speaker’s talk, for example. Penalties for violating an online code of conduct are more complicated and varied: perhaps banning them from an IRC channel (chat room), or removing their wiki editing privileges for a few days, or unsubscribing them from a mailing list. Often these forums are administered and controlled by different groups who disagree about what harassment is or what the response should be, which is part of why it is important to write down what your community standards are. Also, it is much easier to get around enforcement by creating a new online identity than it is to change your appearance and sneak into a physical conference. (This isn’t a reason not to have a code of conduct, just something to plan for.)

Who decides what actually violates the code of conduct? At a conference, the answer is the conference organizers. In an online community, many decisions are made in ad-hoc discussion where the loudest voices often prevail – and often the loudest voices are the ones arguing in favor of harassment. For example, here is a question that often deeply divides an open source community: Are jokes about penises okay or not? You may think the answer is obvious, but some programmers think the answer is yes, and other programmers think the answer is no. Whatever your stance on penis jokes is, you’re going to have to explicitly tell people what it is in your code of conduct because you can’t take it for granted that people know what it is. A related point is that sometimes it is the argument over whether something is harassment that makes people leave, not the harassment itself.

Some more encouragement to get specific

In our experience at the Ada Initiative, getting specific about what’s not okay is both the most effective and the most cringe-inducing part of writing a code of conduct. Nobody wants to be “negative” – but it’s exactly what you need to make potential victims of harassment feel confident and safe in joining the community and in reporting violations. If I, as a new participant, don’t know whether the people enforcing the code of conduct think unwelcome sexual advances over IRC are considered okay, I’m not going to take the risk of reporting them and getting scolded for being “thin-skinned.” Instead, I’m just going to leave and find a project where I can work on my software in peace.

Here’s what I wrote in response to one proposed code of conduct that didn’t get specific on what wasn’t allowed:

I think this code of conduct won’t have the impact you are looking for as a result of a basic design choice: to not list what’s not allowed in a specific manner. 90% of the effect and work is in being specific, for several reasons:

The major weapon of harassers is arguing whether something is actually harassing. It is difficult to enforce a CoC if you have to have a month long nasty argument about whether it was violated. It burns out people like you.

It encourages people to report when they are certain they will be taken seriously and not dismissed or argued with.

The list of “don’ts” educates people on what to do, so you avoid problems in the first place.

Finally, it sends a signal to people considering joining your community in a way that “be nice” does not. “Be nice” is a signal to harassers that they can use tone arguments and otherwise play on people’s desires to be nice to get away with stuff. For example, Wikipedia’s “Assume good faith” is regularly abused by people not acting in good faith. Asking people to attempt resolution by discussion is used both as a delaying tactic and a way to abuse people longer.

Go forth and adopt

Mary and Valerie laughing
Mary and Valerie

Now that you’ve learned a little more about designing community codes of conduct, it’s time to go advocate for one in your community! We recommend starting with the Django code of conduct or the Rust code of conduct. Take a look also at the comparison of codes of conduct on the Geek Feminism Wiki. And if you need some advice on getting over the rough patches, we encourage you to email us at and we will happily work with you.

4 thoughts on “HOWTO design a code of conduct for your community”

  1. A group I’m in is currently discussing modifications to our code of conduct and grievance procedures. Your resources are really helpful, thanks!
    We quite often have to deal with counter accusations and an investigation process to work out what really happened, which sometimes leaves us with people who remain aggrieved. None of the links I’ve followed from your site seem to cover this issue. Do you have any experience/suggestions for us?

    1. Unfortunately, you can’t create a welcoming, respectful community without causing someone to feel aggrieved, since some folks believe that they have a right to be offensive to others. All you can do is work hard to be sure people are aggrieved for the right reasons, namely that you are increasing inclusivity and respect in your community rather than decreasing it.

Comments are closed.