Our Community Call on December 15th covered a big topic in tech communities: "How do I create a code of conduct for my event/lab/codebase?". Here, we cover some of the key themes and considerations that arose from the discussion and point to curated resources and examples to follow when developing a code of conduct (CoC) for your community.
Three guest speakers shared different perspectives. Dr Pauline Barmby talked about the process and lessons learned as Data Carpentry and Software Carpentry recently updated their CoC; Ms Safia Abdalla talked about "Codes of conduct for open source: the stuff no one tells you"; and Dr Titus Brown talked about his lab CoC. You can read their bios below and watch the video of the call. Speakers did not use other presentation materials.
From the talks and discussion it became clear that there are three key components to codes of conduct:
Once a group of interested people digs into the work of drafting a CoC, the process can seem like it's going on forever, especially if you try to incorporate "everyone's" feedback. The CoC cannot be a living document. It's most important to produce something good and perhaps revisit it each year. There seemed to be a consensus that a small committee of key stakeholders should draft the CoC. For his own lab, Titus drafted and posted it without fanfare, but has already seen unanticipated benefits.
With big online communities, you rely on buy-in of lots from people to publicize and enforce your CoC and set the tone for your community. When a small group has developed the CoC, it's important to have your leaders and key contributors be open and vocal about their top-down endorsement. In this way, community members without power in the organization can see they will be supported. Overtly showing kindness and pointing to the CoC tends to filter out people who don’t want to be subject to its enforcement.
In addition to listing specific common behaviors that are not okay, a code of conduct must include directions for reporting violations and have a clear process for handling complaints. In the words of the Ada Initiative,
Without these elements, a code of conduct isn’t worth the electrons used to display it on your computer screen.
In the realm of CoCs, enforcement is the hard part, and the part that is most often overlooked until a crisis forces the issue. Enforcement should be handled by a board of three to five people and have representation of different perspectives. For an event, that board could include the event organizer, a community member, and someone who was involved in developing the CoC. The people involved in enforcement must have empathy for the issue being reported so it's important to involve people who don't necessarily have power within the community or organization. Someone suggested that an enforcement board might be wise to include someone from outside their own community.
In an academic research environment, there is a huge grey area between dealing with a violation within a lab and getting the university involved. This grey area can be filled by identifying a person outside the lab AND outside the university to participate when needed. This third party can be the first point of contact for complaints about the principal investigator, for example. A lot can be resolved before escalating to involvement of the university, its lawyers, or unions. (Of course there are cases where this is warranted.)
One tricky area of enforcement is around online conversations in discussion forums or in GitHub issues where people sometimes say things they shouldn’t. Safia made the excellent point that it helps to leave a comment on the issue because it will remain visible online. Saying something like “we're willing to help, but we don’t tolerate this kind of communication” means newcomers can see that bad behavior is addressed and not tolerated. This is also critical to maintain or rebuild trust from community members. If you're a GitHub admin you could choose to implement a time-based ban as a consequence. In this situation, recognition of a violation is easy, but there is a big enforcement challenge when that person is a significant contributor. This is where it is critical to have a strong enforcement board and a good structure for raising a violation through the ranks depending on its severity.
rOpenSci currently has CoCs for our events, for software onboarding, and for many of our individual packages (working on having this for all our packages!). We'll take what we learned in this Community Call to develop a more comprehensive CoC, make sure it's easily findable and that consequences of violations are enforceable. Let us know if you'd like to get involved.
Video of our Dec 15, 2016 Community Call
The Ada Initiative's How to design a code of conduct for your community
Contributor Covenant. A Code of Conduct for Open Source Projects (in multiple languages)
A template code of conduct, in multiple languages
Pauline Barmby is an Associate Professor in Physics and Astronomy and Associate Dean of Graduate and Post Doctoral Studies at Western University. Her research focuses on nearby galaxies and her blog contains musings about astrophysics, science teaching, computing, and perhaps knitting, curling, and science fiction. Pauline is the head of Data/Software Carpentry's code of conduct committee and will talk about their experiences in refining their code to ensure it has enforceable consequences. Pauline on GitHub
Safia Abdalla is a data scientist and software engineer with an interest in open source software and data science for social good. She helps build nteract, a NumFOCUS fiscally sponsored open source project, and organizes PyData Chicago. Safia has written about codes of conduct in How To Create A Welcoming and Inclusive Open Source Space. Safia on GitHub
C. Titus Brown is an Associate Professor at UC Davis, where his Lab for Data Intensive Biology tackles questions surrounding biological data analysis, data integration, and data sharing. The lab's primary interest is in genomic, transcriptomic, and metagenomic sequence analysis. Titus has developed a Lab Code of Conduct. He recently wrote about What is open science? Titus on GitHub