A code of conduct is designed to be a framework and a guide to, as the Recurse Center eloquently phrased it, "help all of us build a pleasant, productive, and fearless community." The purpose of a code of conduct is not to burden an organization with a bunch of needless rules, or to provide a punishment mechanism for people being bad, or even to correct things that have been wrong in the past. The engineering team at DigitalOcean agreed that having a code of conduct would be a positive improvement because we strive to make our team a great group of people to work with, especially for those people who have faced more adverse working environments in the past or are member of groups that often have a harder time in the workplace.
Crafting documents such as these isn't to be taken lightly, so we started doing some research. While many conferences and meetups have codes of conduct, we found that they mostly protected against actions usually covered in a company's HR handbook, and we couldn't find many company codes of conduct online. Instead, we gained inspiration from other organizations’ codes of conduct and blog posts we’ve admired. In the spirit of open source, the building blocks of our code of conduct were borrowed (with attribution) from sources like these.
In particular, Jenna, one our Engineering Managers, attended the Recurse Center (then known as Hacker School) in Fall 2012. Part of what makes that community so unique, impactful, and amazing is that it has a set of social rules that help guide people's interactions: no feigning surprise, no condescending well-actually's, no backseat driving, and no subtle-isms. These rules address things that people, especially those of us who are technical, sometimes do or say that have the potential to discourage or marginalize others, often unintentionally.
While Recurse Center’s rules themselves were a good precedent, enactment is a crucial factor when writing a code of conduct, too, and something we honestly struggled with writing about. This was especially delicate because we were introducing a code of conduct for an existing group of people who didn’t have a choice to opt into the community or event like with Recurse Center or a conference. Bumping up against the code of conduct once or twice is often unintentional or subtle, so we didn't want to treat it like an HR violation. Being able to discuss frictions that arise is important in a healthy engineering organization and therefore we wanted empower people to call out violations. However, this is often hard in the moment, and we acknowledge that it shouldn't be the sole responsibility of people who experience or witness code of conduct violations to help correct other people's behavior.
Fortunately, the culture surrounding enactment at Recurse Center was inspiring, too; the response they encouraged to someone acting against a rule was to tell them nicely, and then move on. We really wanted our code of conduct to act and be enacted in the same manner. To that end, we built our code of conduct starting with the Recurse Center rules, then added details that support the life of a DigitalOcean engineer.
There were some places we wanted to explain the essence of the rules with more of our own spin, like explaining microaggressions when warning against subtle-isms. Other sections of our code of conduct had less precedent within other codes, but we thought were important to discuss based on our specific team and company dynamics. For example, we have a lot of people working remotely at DigitalOcean, which often raises pain points that we're trying to ameliorate, so we wrote a section of our Code that addresses ways to more effectively work within our distributed team.
We also included a section that provides guidelines for being kind when giving and receiving feedback, because healthy communication and feedback are important for a happy and healthy organization, but can be challenging in practice. This applies equally to work product or a working relationship. Focusing on giving "constructive, not critical feedback", as Kate Heddleston wrote, is fundamental to creating an environment conducive to long-term growth and positive relationships within teams.
Overall, writing, refining, and discussing our code of conduct demonstrated just how hard it is to think about and create culture. The process of deciding what should or should not go into a code of conduct, and then how to word it, was quite challenging and emotional. However, we think it was integral to the healthy development of our growing team, and are looking forward to seeing how our organization grows with the guidance of our new Code.
The engineering team is super excited about our Code of Conduct. We’ve made it available on GitHub, and hope that by doing so, we help other groups hoping to craft one for themselves.