This is a simplification of https://subfictional.com/2016/01/25/the-complex-reality-of-adopting-a-meaningful-code-of-conduct/ The goal is to share the knowledge in this article in simple, short language. If you have time, please read the original.
Many projects are debating accepting a Code of Conduct (CoC). Many other projects already have one.
Why is this easy for some and hard for others?
CoCs have become popular over the last 5 years because they help a community define what is acceptable and what is not acceptable behavior. They should define:
- expected behavior
- unacceptable behavior
- a way to report problems
- a way to handle problems
All communities already have a way of behaving, CoCs make what is acceptable and what is unacceptable explicit.
When you have explicitly defined what is and is not OK you make your community safer for everyone. Explicitely calling out and defining as unacceptable behavior that has been used to target community minorities helps those minority people who need more help more.
Some groups have trouble adopting a CoC because defining as unacceptable these certain behaviors can change the power structures previously in place.
(sorry, a lot of reduction here, very personal to the OP, I tried to boil it down but PRs are very welcome)
A relatively newer, smaller community easily adopted a CoC that represented its generally welcoming nature. Explicitely defining its CoC made that community more welcoming to people like women, people of color, and queer folks.
Mozilla is a large, old open source community. It has many complex power structures. The community accepted a CoC but that CoC did not represent the actual community, so problems happened. Additionally the CoC was written in a way that made it clear Mozilla didn't want to change its power structures, or to make explicitely unacceptable behaviors that exclude women and other people.
If a project is brand new, it's easy to pick an open source license (MIT, GPL, etc).
If a project is old and it has no license, it's very hard to get people to agree to one.
A CoC is part of a community's way to handle problems.
When a community is young its members tend to have the same interests, even outside of the project.
If those interests (shared values) are not written down, the community will not necessarily share those interests as it grows. If a community doesn't agree on what it values then its members will assume the community values something that it may not.
A CoC is a way to define what a community actually cares about. Getting people to agree is hard.
(skipping this section as it's somewhat off topic, but it talks about how open source communities need both nontechnical as well as technical leaders)
(also skipping the part about governance for the same reason. This section talks about how this is just one part of the decisions that need to be made around an open source project)
One important point is that writing these things down is how a community grows and matures.
- Work on leadership
- Listen to everyone and have hard discussions without fighting
- Understand that change is hard
- Please don't troll
Finally, look for the good in others. Try to understand their point of view.
(MINASWAN!)
I think you could further boil the article down to “Getting a large group of diverse people to agree to a shared set of values is very hard"