Code of Conduct
When maintaining a project, contributing to a project, or interacting with an open source community, you should be familiar with codes of conduct (CoC). Choosing a code of conduct for your project could be straightforward, since there are many great examples that are continuously improved. Enforcing this code and understanding why you need it may be a little more difficult.
In this doc we’ll cover what any member of an open source community should consider in a CoC, and what Wayfairians should adhere to when participating in a project.
As a Member of Wayfair
As you may expect from an employee handbook, conducting yourself within open source as an employee of Wayfair can reflect your values on Wayfair as a company. It is important to consider your behavior and conduct, and know that it could relate back to Wayfair as an entity. To ensure you are providing an inclusive, collaborative, and psychologically safe environment, we recommend reading the specified code of conduct for a project or space to communicate (such as Slack or a Discord server). If there is no existing CoC, we recommend acting as if the Contributor Covenant is in place. The Contributor Covenant is the preferred code of conduct for all Wayfair projects.
For a Project
Codes of conduct protect you and the people contributing to your project. Attitudes and egos from participants can be a drain on other contributors and maintainers alike. With a good code of conduct, you encourage constructive and healthy community behavior. It is up to you, as a contributor and certainly as a maintainer, to take action when someone does something that doesn’t align with a project’s code of conduct.
Make a habit of familiarizing yourself with any code of conduct in projects you contribute to. It may seem a bit like legalese, or complicated, but you’ll find after reading one or two that you’ll become familiar with the terms and intent of most CoC’s.
Establishing a Code of Conduct
Ensure that whatever code of conduct you adopt, even if it is a popular one, is applied where you expect, applies to whom you would expect, and what enforcement guidelines are in place for conduct breakers. Clearly state how you intend to ingest violations, and do so in a way that minimizes any expectation that others may read those violation reports when possible.
Some good examples in the wild are the Contributor Covenant, the Django Code of Conduct, and the Citizen Code of Conduct. Place whichever you choose into the project’s root directory, and link to it frequently from your CONTRIBUTING and README files.
Enforcing a Code of Conduct
Explain, clearly, how your code of conduct will be enforced well before violations occur. Your community will understand that you’re serious about protection when you take action promptly, and be more willing to report violations in the future. You’ll also have an opportunity to be fair and transparent in your enforcement, further solidifying that others will feel that they are fairly treated if they receive a violation.
Don’t forget, maintainers and CoC custodians of the project may also become folks who accrue violations. Ensure that report violations have multiple options to send to, or clear escalation paths, to avoid any unfair or targeted behavior on enforcing your project’s code. For more inspiration on enforcement, you could consider the (very comprehensive, for a big project) Django Enforcement Manual. Otherwise, read on for some ideas.
Gather Information
Listen to everyone involved in a violation. Take any reports seriously and investigate what happened, even if you believe the persons involved would not violate the rules. Make a judgement and share it. Ensure you’ve had time to understand and think through what happened in any violation. Do your best to “stay out” of any argument, as an impartial judge will garner more respect and understanding than taking sides outside of the code of conduct.
Take Action
After you feel confident that you know the situation well, you must decide what to do. Remember that your goal as a moderator is to foster safety and respect in your environment. Your response will matter longer than the action you take — other people will take notice of how you’ve responded to the issue.
When somebody reports a code of conduct violation, it is your job to handle it, not theirs. Sometimes, the reporter is disclosing information at great risk to their career, reputation, or physical safety. Forcing them to be actively involved in enforcement proceedings could put the reporter in a compromising position. You should handle direct communication with the person in question, unless the reporter explicitly requests otherwise.
There are a few ways you might respond to a code of conduct violation:
- Give the person in question a public warning and explain how their behavior negatively impacted others, preferably in the channel or thread where it occurred. Where possible, public communication conveys to the rest of the community that you take the code of conduct seriously. Be kind, but firm in your communication.
- Privately reach out to the person in question to explain how their behavior negatively impacted others. You may want to use a private communication channel if the situation involves sensitive personal information. If you communicate with someone privately, it’s a good idea to CC those who first reported the situation, so they know you took action. Ask the reporting person for consent before CCing them.
Sometimes, a resolution cannot be reached. The person in question may become aggressive or hostile when confronted or does not change their behavior. In this situation, you may want to consider taking stronger action. For example:
- Suspend the person in question from the project, enforced through a temporary ban on participating in any aspect of the project
- Permanently ban the person from the project
Banning members should not be taken lightly and represents a permanent and irreconcilable difference of perspectives. You should only take these measures when it is clear that a resolution cannot be reached.