rOpenSci | Highlights and Resources from Community Call v12: How do I create a code of conduct for my event/lab/codebase?

Highlights and Resources from Community Call v12: How do I create a code of conduct for my event/lab/codebase?

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:

  • drafting
  • adopting and sharing
  • reporting and enforcing

🔗 Drafting a Code 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.

Some notes:

  • Develop and post a CoC whether or not you know of any problems; setting clear expectations is 90% of the work.
  • The CoC has to set expectations for everyone, including the boss (if there is one).
  • One big issue for the Carpentries was whether or not there should be specific lists of prohibited behaviors or protected groups.
  • Because many of our communities cross international boundaries, our CoCs should be accessible in multiple languages. The Contributor Covenant does provide a template CoC in multiple languages.
  • For international communities, what is enforceable or criminal depends on where you are. For example, Canadian laws against hate-speech are not necessarily enforceable in other countries.

🔗 Adopting and Sharing a Code of Conduct

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.

🔗 Reporting Violations, Consequences and Enforcing a Code of Conduct

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.

Some notes:

  • Reporting of a violation through a standardized form can enable someone to convey the issue and help them think through it during what might be an emotional experience. A standardized form also enables the enforcers to get the information they need to make a good judgement on the report.
  • Anonymous reporting of a violation should be an option.
  • Progression of consequences can move from a verbal warning, to a time-based ban, to a permanent ban, all the way to legal action with real-world authorities.

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.

🔗 We Have Work To Do

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.

🔗 Resources

🔗 Speaker bios

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