Rules and policies are necessary to define good behavior
Projects are often hesitant to create codes of conduct not out of malice, but because they feel like it’s unnecessary. Or they create well-intentioned but useless codes of conduct like “be excellent to each other.” Everyone knows they should be well-behaved, so we don’t need to tell them how, right?
It’s an understandable position, but it’s wrong. FOSS projects can’t rely on good behavior. It’s not because people suck — they mostly don’t — but they lack a shared definition of “good.” This is true for both technical and interpersonal actions. Some behaviors are near-universally considered bad — murder, for example — but many vary by culture. Some good behavior is completely arbitrary; it doesn’t particularly matter whether the car to the left or right goes first when two cars reach an intersection at the same time, it only matters that everyone follows the same rules.
Most people will want to follow the rules of a community. It’s how community works. But you can’t rely on everyone having the same unspoken expectations. Think of it this way: having rules and policies for behavior in your community is like documenting the community’s API.
Of course, not everyone will behave. As my friend Ruth pointed out on a post several years ago:
“We depend on good behavior,” you say … –we do, and I think that as software communities, that may be our biggest mistake. As Robert Heinlein pointed out, “Never appeal to a man’s better nature. He may not have one.”
All the more reason to define good behavior.
This post’s featured photo by Christina @ wocintechchat.com on Unsplash.