jorgebucaran / fisher

A plugin manager for Fish
https://git.io/fisher
MIT License
7.62k stars 260 forks source link

Do we really need a Code of Conduct? #83

Closed ghost closed 8 years ago

ghost commented 8 years ago

EDIT: :grey_exclamation: We will keep the CoC.

This issue is the result of a discussion I held on Reddit (nolink) and the following is a piece of my exchange with one of the users who shall remain anonymous:

The context is the following article:

Later, somewhere in the middle of the argument (whether a CoC is even healthy for the project or not) I asked:

@bucaran: Are you saying that I should consider {modify,adapt}ing the CoC to prevent future trouble? Thank you for pointing this out. I'll read the article now that I see what you mean. Do you have any tips?

@reddit-user: First, my opinion. And explicitly opinion. I do not think that code of conducts should exist. Anything not in the software license is irrelevant, long-term. As such, I would include something like the NoCoC to make the point explicit.

Secondly, tip. My opinion notwithstanding. Whatever you choose, look at it long and hard. If it could be argued that it would disallow things you wish to keep, it has problems. Ditto, if it includes anything that someone could not realize would fall under its domain, it has problems. Ditto, if it includes anything that is the case because someone says it is the case. (For instance, I could consider you insisting the sky is blue was harassment, which would make you in violation of your project's CoC.) Ditto, if it includes anything where it requires "common sense" to determine the scope and/or consequences, it has problems. (This is very much in line with the problems with discrimination against blacks in the US - laws were there but they were not enforced against black victims, or when they were they were with the minimum possible penalties.) In particular, look at anything subjective.

Your current CoC is such that you'll drive people away, in the sense of "why should I sink time into writing a good bug report / pull request / etc. considering they say that my work is not judged on its merit?".

I want to include everyone, of course, and I love teaching others too, but I would always judge your work and opinion based on its merit / value and not on anything else.

I would like to ask other folks what they think and whether we should simply remove Fisherman's CoC or keep it.

daenney commented 8 years ago

I think the person gets two things thoroughly confused. A Code of Conduct is a social contract, ensuring that every person deciding to participate in a project knows that they can do so in a safe way. That is entirely distinct from judging a work the user presents you, in the form of code, documentation or anything else, by its merit.

Codes of Conduct exists to ensure that if someone is attacked, marginalised or otherwise discriminated against, which cannot occur purely based on their work (because that would mean that their work somehow equates to their gender(identity), ethnicity and what else), have the ability to raise such an issue to project maintainers. It is at the maintainer's discretion to decide what to do with this and what community they want around their FOSS project. It is meant as a way to settle a dispute and make clear upfront what behaviour as a community we find unacceptable human to human. It is not a card you can pull just because you find someone annoying. If that's how a project maintainer allows its Code of Conduct to be abused, that's on them.

If people find that having a Code of Conduct, which basically equates to saying "we expect everyone who participates to be excellent towards each other" unreasonable, that's fine. It is however a reason for me not to participate in such a community.

fibo commented 8 years ago

CoC it is a good idea, I also think that if your first input was to add one, it is also a good reason to keep it.

ghost commented 8 years ago

I'd suggest updating to Contributor Covenant 1.4, as it contains more positive language instead of just what happens if you do something bad.

ghost commented 8 years ago

Link: http://contributor-covenant.org/version/1/4/

@jrobeson What about https://github.com/domgetter/NCoC?

jab commented 8 years ago

Personally I use the Open Code of Conduct in my projects, e.g.: https://github.com/jab/bidict/blob/master/README.rst#participation

MadcapJake commented 8 years ago

I support the CoC and especially agree with everything @daenney said. I really dislike the "ugh political correctness" argument as it just smacks of laziness. I believe that part of being meritorious is being respectful with how you phrase things in your code, comments, PRs, issues, etc.

daenney commented 8 years ago

The problem I see with the NCoC is that it doesn't handle the case very well of what happens we it does turn unfriendly. It doesn't really state anything about expected behaviour either except that "we can all have adult discussions". I think we've seen more that enough proof by now that that is not necessarily the case, no matter how much I'd really like this to be the case and that people's definitions of "adult discussions" vary wildly. Just look at the recent discussion on the Ruby bug tracker about adopting a CoC and you'll see what I mean.

I also find language like this in the NCoC unfortunate, to the point of being dismissive of what we're actually trying to solve:

If it's truly a problem and you're truly an asset to the community then you will probably get an email back.

It shouldn't, ever, matter how important of an "asset" you are to the community. Wether it's someone who's been with the community for years or someone who just submitted his first PR to your FOSS project. Even more so, if someone's first contact with a FOSS project happens badly and because we don't deem them important (enough) they don't get an adequate response, what example are we setting? Handwaving or being dismissive of such things is never the right thing to do.

ghost commented 8 years ago

NCoC solves no problems. I think it's been pretty well proven that the assumption of

We are all adults. Capable of having adult discussions.

has been proven false. Most discussions about CoCs tend to devolve really quickly

domgetter commented 8 years ago

@daenney

If people find that having a Code of Conduct, which basically equates to saying "we expect everyone who participates to be excellent towards each other" unreasonable, that's fine.

I don't think anyone who is against a CoC in general is against "we expect everyone who participates to be excellent towards each other" to be the code of conduct. It seems you've constructed a straw man.

I also find language like this in the NCoC unfortunate, to the point of being dismissive of what we're actually trying to solve:

If it's truly a problem and you're truly an asset to the community then you will probably get an email back.

That's not part of the NCoC, it's only an example of how such a community may handle conflicts. The NCoC is simply

This project adheres to No Code of Conduct. We are all adults. We accept anyone's contributions. Nothing else matters.

I'm not a part of the fisherman community, so I don't claim to speak for anyone here, but please don't misrepresent the NCoC.

daenney commented 8 years ago

@domgetter I didn't mean to misrepresent anything. It's how I interpreted the wording of the NCoC and the examples given. However, I do find it unfortunate that you chose to jump to "misrepresent" instead of assuming good faith on my part. It's human to misunderstand or misinterpret things, it's not necessarily bad intent. I saw the rest of the README as being part of the CoC. My bad but not on purpose.

ghost commented 8 years ago

@domgetter : I know I represented it correctly (by quoting from it), and that is exactly what I find unacceptable. Because I can't trust people to act like adults.

ghost commented 8 years ago

Can anyone imagine a situation in which relying on the CoC could actually turn against us?

I have no experience using a CoC in any of my other FOSS projects, but after reading bits from this discussion you have got me thinking. Also, the other day, I had a surreal exchange for almost half an hour with a friend of friend where I was severely questioned for choosing "Fisherman" as the title of the project, instead of "Fisherwoman".

Also, I would love to hear @josegonzalez opinion in all of this.

daenney commented 8 years ago

What would be a situation in which relying on the CoC could actually turn against us? I have no experience using a CoC in any of my other FOSS projects, but after reading bits from this discussion you have got me thinking.

Could you be more explicit? What are your concerns? It's hard to address them without knowing what you're worried about.

I've seen people try to abuse a CoC but that only ever works if the maintainer(s) let them. With a CoC, the maintainers are the ones making the final call and decide on how to apply the CoC and if it is an appropriate situation for the CoC to be called upon.

For example; if someone raises an issue because someone used insulting language towards them, that's fair. However, if that person than uses the CoC to justify a crusade against that person, or "return the favour", that's unacceptable behaviour / harassment in my eyes and a violation of the CoC (depending on your CoC, I'm referring to the Contributor Covenant in the back of my mind).

In most CoC's there's a section along these lines which, in my eyes, gives the maintainers enough wiggle room to stop abuse of the CoC (this again lifted from the Contributor Covenant):

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

If there's any doubt I would suggest bringing in a trusted number of members to the discussion and come to a resolution as a community.

lilyball commented 8 years ago

NCoC is garbage. Opting to put the NCoC on your project instead of just not having a CoC at all is basically a big "fuck you" to anyone who wants a CoC or to anyone who cares about this kind of thing.

Also, the original linked article is incredibly misguided, and that quoted reddit user is equally misguided. A Code of Conduct is not a tool that can be used to harass other people, it's the complete opposite. A Code of Conduct cannot be used to label arbitrary opposing opinions as harassment, since a Code of Conduct isn't a set of absolute rules enforced by a robot and triggered by someone claiming offense, but is in fact a set of guidelines that are enforced by human moderators (e.g. project authors or community moderators) and are therefore subject to human interpretation. Which is to say, if someone is making an obviously bogus claim of harassment (such as that redditor's ridiculous claim about how insisting the sky is blue can be harassment), that simply isn't going to fly as no human moderator would go along with it.

And that redditor's final paragraph about how a CoC will drive people away is also completely nonsensical. The only people that would be driven away by a CoC are people who recognize that they will likely violate it, and are therefore the people that the CoC is intended to protect the community from (which is to say, the CoC is doing its job). And you'll find plenty more people who will be interested in participating in a large part because the CoC exists and makes them feel like it's safe to participate.

As for updating to the Contributor Covenant 1.4.0, it looks like the only notable difference is the addition of positive examples, which seems reasonable though I have no strong opinions about that vs the current CoC.

domgetter commented 8 years ago

@daenney It's all good.

However, I do find it unfortunate that you chose to jump to "misrepresent" instead of assuming good faith on my part. It's human to misunderstand or misinterpret things...

I never claimed you did it intentionally. Perhaps I used the wrong word.

@jrobeson

Because I can't trust people to act like adults.

The entire discussion is a matter of degree, not kind. If there was only ever one identifiable instance of sexism being bad for Open Source Software, surely it would be shortsighted to impose a set of rules that no one was breaking in the first place.

I don't think this is the place to get into a discussion about whether or not there's enough sexism for us to do something about, and whether or not, even if that's true, imposing a code of conduct helps.

It's not unreasonable to believe that one or both of those are false.

josegonzalez commented 8 years ago

If a COC stops people from contributing because they think their contribution (docs, PR, code, design, etc.) is offensive, then perhaps you don't need that contribution?

Saying you won't participate because the project is being too politically correct is a bit silly. I've yet to see a project where the CoC was used to harass contributors. It's simply a way for maintainers to tell people they won't tolerate douchebags.

EDIT: If the maintainers of this project think it is in the best interest of their project to not have a CoC, that is of course their prerogative and I don't think anything I say should sway them either way. It'll just mean you don't have a CoC is all.

stephenlacy commented 8 years ago

To topic: CoC's do work as a troll determent. On most OSS projects I've contributed to the CoC is used to isolate "code politics" from actual code. Many large OSS projects do not have a CoC, the owner would just close/lock issues when they get out of hand. IMHO a CoC adds a baseline (constitution) on which political issues can be "fairly" resolved.

Off topic: A CoC might help with future discussions like this one :tada: The NCoC is blunt.

colstrom commented 8 years ago

@kballard

[...] a Code of Conduct isn't a set of absolute rules enforced by a robot and triggered by someone claiming offense, but is in fact a set of guidelines that are enforced by human moderators (e.g. project authors or community moderators) and are therefore subject to human interpretation.

That it is "subject to human interpretation" could be seen as a problem.

Is a Code of Conduct an exception? Maybe it is. Can we explore that?

@jrobeson

Because I can't trust people to act like adults.

Agreed, though a Code of Conduct does not actually prevent people from acting like dicks.

@kballard

The only people that would be driven away by a CoC are people who recognize that they will likely violate it, and are therefore the people that the CoC is intended to protect the community from (which is to say, the CoC is doing its job). And you'll find plenty more people who will be interested in participating in a large part because the CoC exists and makes them feel like it's safe to participate.

I can't agree with this. What data are you drawing either of these conclusions from?


I would view an explicit No Code of Conduct as a statement that politics and prejudices can be left at the door. A Code of Conduct is political in nature. It happens to be a set of ideals that I agree with, but it isn't about "no politics I object to", is it?

lilyball commented 8 years ago

A license is a legal document. A readme is a set of instructions. A Code of Conduct is neither of these things. And no, I don't think it's appropriate to "explore that", because that doesn't make sense. At best, asking to explore this avenue shows a bizarre tendency to view the world as though it's a computer program where everything must be explicit and unambiguous such that a computer can perform the job, which is wildly inappropriate when talking about moderating social discussions. And at worst it suggests a deliberate attempt to sabotage the CoC by trying to cast doubt on its validity however you can.

Agreed, though a Code of Conduct does not actually prevent people from acting like dicks.

No, moderators do that. But a Code of Conduct is a very valuable tool both for moderators and for self-policing of community forums. For moderators, a Code of Conduct is a document that moderators can point to when moderating both to show that the rules were posted (because many people believe that a lack of posted rules is a license to be a dick) and to shut off the inevitable discussions about whether the moderator was justified in enforcing a particular rule. And for self-policing, it empowers non-moderators to tell people when they're violating the rules (which is very important, because without this, people who are common targets for harassment or marginalization or who aren't confident enough in their social status in the group to speak out will tend to just stop participating when faced with the kind of behavior that the CoC is meant to stop).

The only people that would be driven away by a CoC are people who recognize that they will likely violate it, and are therefore the people that the CoC is intended to protect the community from (which is to say, the CoC is doing its job). And you'll find plenty more people who will be interested in participating in a large part because the CoC exists and makes them feel like it's safe to participate. I can't agree with this. What data are you drawing either of these conclusions from?

Lots of personal experience in participating in public communities, both on my part and on the part of my wife (who is a moderator of a large default subreddit and deals with this kind of stuff all the time, and has been involved in various tech-related communities that inevitably have to deal with this sort of thing), as well as discussions with her and with other woman or other marginalized groups that face the issues that the CoC is expressly intended to deal with.

More to the point, why can't you agree with this? What reason is there to disagree with a public statement about what kind of behavior is not acceptable in the community, especially when, if I asked you about each specific example of bad behavior in the CoC, I expect you'd agree that that behavior does not belong in the community? The only reasons I can think of for not wanting this sort of thing actually spelled out are

I would view an explicit No Code of Conduct as a statement that politics and prejudices can be left at the door.

You'd be completely wrong. An explicit "No Code of Conduct" is a statement that says that the project has explicitly chosen to exclude everyone who does not want to participate in a toxic community. It's a statement that says "If you want to harass people, by all means go ahead, we've chosen not to forbid that". It's a statement that says "this is a moderation-free zone". And perhaps worst of all, with a statement like this, you'll never know who chose not to participate in the project as a result, because they'll never even try.

colstrom commented 8 years ago

A license is a legal document. A readme is a set of instructions. A Code of Conduct is neither of these things. And no, I don't think it's appropriate to "explore that", because that doesn't make sense. At best, asking to explore this avenue shows a bizarre tendency to view the world as though it's a computer program where everything must be explicit and unambiguous such that a computer can perform the job, which is wildly inappropriate when talking about moderating social discussions. And at worst it suggests a deliberate attempt to sabotage the CoC by trying to cast doubt on its validity however you can.

Your response is exactly what I was asking for: Exploring how a Code of Conduct may legitimately be a different case than a license or readme. I'm confused by your response, and the conclusions you're drawing from my query.

Agreed, though a Code of Conduct does not actually prevent people from acting like dicks.

No, moderators do that. But a Code of Conduct is a very valuable tool both for moderators and for self-policing of community forums. For moderators, a Code of Conduct is a document that moderators can point to when moderating both to show that the rules were posted (because many people believe that a lack of posted rules is a license to be a dick) and to shut off the inevitable discussions about whether the moderator was justified in enforcing a particular rule. And for self-policing, it empowers non-moderators to tell people when they're violating the rules (which is very important, because without this, people who are common targets for harassment or marginalization or who aren't confident enough in their social status in the group to speak out will tend to just stop participating when faced with the kind of behavior that the CoC is meant to stop).

Providing a clear set of rules that community members can use for reference is a practical benefit to having a Code of Conduct.

The only people that would be driven away by a CoC are people who recognize that they will likely violate it, and are therefore the people that the CoC is intended to protect the community from (which is to say, the CoC is doing its job). And you'll find plenty more people who will be interested in participating in a large part because the CoC exists and makes them feel like it's safe to participate.

I can't agree with this. What data are you drawing either of these conclusions from?

Lots of personal experience in participating in public communities, both on my part and on the part of my wife (who is a moderator of a large default subreddit and deals with this kind of stuff all the time, and has been involved in various tech-related communities that inevitably have to deal with this sort of thing), as well as discussions with her and with other woman or other marginalized groups that face the issues that the CoC is expressly intended to deal with.

That provides some context, thank you.

More to the point, why can't you agree with this? What reason is there to disagree with a public statement about what kind of behavior is not acceptable in the community, especially when, if I asked you about each specific example of bad behavior in the CoC, I expect you'd agree that that behavior does not belong in the community?

Aha, I think this is where I gave offense. I can see how my prior response wasn't clear in what I couldn't agree with.

The only people that would be driven away by a CoC are people who recognize that they will likely violate it, and are therefore the people that the CoC is intended to protect the community from (which is to say, the CoC is doing its job).

There are two main issues I take with this statement, aside from the fact that it's a sweeping generalization.

Trolls are attracted to places where they can stir the pot. I want to believe that the influx of good people encouraged by a Code of Conduct outweighs the number of trolls who see it as "I can rustle some jimmies over there".

I'm really not sure which is the case, though. So I can't agree that your statement is accurate.

It also discounts signal-to-noise as a factor in community engagement. I think that there are some people whose first exposure to a community is the meta-discussion, and who may not look beyond that.

You mention personal experience with Reddit. I assume you've seen communities devolve into a pile of meta-discussions about moderation and community management, and the predictable splintering into some r/true[true[true]]<subject> subcommunity.

Please don't read this point as dismissing all the times where this isn't the case. I'm pretty sure I've seen more good come from responsible community moderation than harm, with a handful of edge cases.

And you'll find plenty more people who will be interested in participating in a large part because the CoC exists and makes them feel like it's safe to participate.

I really wish we had some data to support this as a net gain. This could be a valuable side project! There's a massive pile of data sitting here on GitHub, we just need to find enough projects with a Code of Conduct, and figure out what reasonable indicators are for this. I'd be up for contributing to this, if someone wants to organize it. I'm cozy with the GitHub API and data processing.


The only reasons I can think of for not wanting this sort of thing actually spelled out are

You think you might actually violate the CoC.

I find my personal views align quite strongly with the ideals described in Codes of Conduct like this one.

You feel uncomfortable acknowledging that there are people that harass other people and would prefer to pretend the problem doesn't exist.

I'm quite aware that humans can be absolutely terrible to each other.

You've bought into the whole "meritocracy" bullshit, which is really just a flimsy justification for letting people be dicks because ability to write code trumps everything else and you think that just because you feel confident enough to continue participating in a community in the face of bad behavior by other members, that this means that everyone should do the same (i.e. if you think that the right response to bad behavior is to "grow a thicker skin" instead of stopping the bad behavior).

I think you're coupling several disconnected concepts here. Developing a skill does not justify or excuse being a dick. Similarly, no person should be expected to endure cruelty at the hands of another, under any circumstances. Meritocracy does not advocate either of these things.

I would view an explicit No Code of Conduct as a statement that politics and prejudices can be left at the door.

You'd be completely wrong.

Well, no... that's not how it works. That is how I would read it, biased by my personal experiences (for better or worse). It's completely reasonable that someone else may read it differently.

An explicit "No Code of Conduct" is a statement that says that the project has explicitly chosen to exclude everyone who does not want to participate in a toxic community. It's a statement that says "If you want to harass people, by all means go ahead, we've chosen not to forbid that". It's a statement that says "this is a moderation-free zone". And perhaps worst of all, with a statement like this, you'll never know who chose not to participate in the project as a result, because they'll never even try.

And this is where you lost me. I've read the NCoC over several times to try to find where it says these things. In fact, the following sections explicitly state that moderation can and will happen in an NCoC project.

Q: As a community manager or leader, what happens when the mob arrives, or when someone starts to engage in discussion that could lead to more endless discussion?

Lock, and ban your way to freedom. This is unfortunate. Try to not delete anything, or you will be accused of censorship. But you have no other choice. Do not engage. Abort, abort abort! You should really be very brief, vague, and closed off in these discussions. Say something like: "hey, this is not the place to discuss this, please reach out to each other privately or on another medium to discuss it. This group is strictly about topics relating to $YOUR_TOPIC". End.

Q: WTF, the discussion was locked, and/or I can't reply!?

Once again, we are not going to tolerate our community being overridden by the mob. If this starts to happen, we will nuke, delete, lock, close, ban, and do whatever we have to do to put the fire out. These discussions drag on and on and on, and they don't make communities better.

lilyball commented 8 years ago

Trolls are attracted to places where they can stir the pot. I want to believe that the influx of good people encouraged by a Code of Conduct outweighs the number of trolls who see it as "I can rustle some jimmies over there".

This response confuses me, because that's just not something that happens. Codes of Conduct are not things that attract trolls; they are in fact the exact opposite, they're a very valuable tool in fighting trolling (because trolling often ends up violating the CoC and provides clear grounds for deleting posts / banning trolls). Without a Code of Conduct, trolls can often continue trolling by complaining about previous moderation, and complaining about other people accusing them of bad behavior. But the Code of Conduct provides a clear way for moderators to justify their actions, which immediately shuts down any attempted meta-trolling.

You mention personal experience with Reddit. I assume you've seen communities devolve into a pile of meta-discussions about moderation and community management, and the predictable splintering into some r/true[true[true]]<subject> subcommunity.

That's a symptom of poor moderation, not a consequence of having a code of conduct. And of course having no moderation at all leads to people abandoning the community just as much, if not more-so, than having bad moderation.

I think you're coupling several disconnected concepts here. Developing a skill does not justify or excuse being a dick. Similarly, no person should be expected to endure cruelty at the hands of another, under any circumstances.

I'm glad to hear you say that.

Meritocracy does not advocate either of these things.

Actually it does. It doesn't sound like it means that, but that is in fact the consequence of saying that the only thing that matters is ability. Because saying that only ability matters also means saying that nothing else matters, which includes how you behave.

I would view an explicit No Code of Conduct as a statement that politics and prejudices can be left at the door.

You'd be completely wrong.

Well, no... that's not how it works. That is how I would read it, biased by my personal experiences (for better or worse). It's completely reasonable that someone else may read it differently.

I'm not saying you wouldn't interpret it that way, I'm saying that interpretation would be wrong, because it wouldn't match the reality of what would happen as a result of having that statement.

An explicit "No Code of Conduct" […]

And this is where you lost me. I've read the NCoC over several times to try to find where it says these things. In fact, the following sections explicitly state that moderation can and will happen in an NCoC project.

But that's the point; it doesn't say anything at all, except that the project moderators have recognized the concept of a Code of Conduct and explicitly chosen not to have one. The NCoC is a very intentional statement of having no code of conduct. The project README may talk about moderation happening, but that's not actually a part of the NCoC in any way. The NCoC does not help moderation in the slightest bit. And the issues the README are talking about are things that are much easier to deal with if you have an actual CoC in place instead of that stupid statement saying you have No Code of Conduct.

colstrom commented 8 years ago

Trolls are attracted to places where they can stir the pot. I want to believe that the influx of good people encouraged by a Code of Conduct outweighs the number of trolls who see it as "I can rustle some jimmies over there".

This response confuses me, because that's just not something that happens. Codes of Conduct are not things that attract trolls; they are in fact the exact opposite, they're a very valuable tool in fighting trolling (because trolling often ends up violating the CoC and provides clear grounds for deleting posts / banning trolls). Without a Code of Conduct, trolls can often continue trolling by complaining about previous moderation, and complaining about other people accusing them of bad behavior. But the Code of Conduct provides a clear way for moderators to justify their actions, which immediately shuts down any attempted meta-trolling.

I think you're falling into the trap of believing that trolls care about or play by the rules.

Meritocracy does not advocate either of these things.

Actually it does. It doesn't sound like it means that, but that is in fact the consequence of saying that the only thing that matters is ability. Because saying that only ability matters also means saying that nothing else matters, which includes how you behave.

If you reduce the notion of meritocracy to a single point, then I can understand how you could arrive at those conclusions. Accepting that premise for the sake of discussion, is it actually wrong in the context of a contribution?

Does the character of the individual give more or less weight to the validity of their contribution? Consider two extreme cases (acknowledging that things will rarely be this simple):

If Alice's code is untested, dangerous, poorly implemented, or in conflict with the current design or roadmap of the project she is contributing to, all the good behaviour in the world doesn't make it okay to merge that change.

It does make it easier to work together to resolve the technical issues, though.

If Bob's code is thoroughly tested, implemented skillfully and clearly, and solves a real need (fixing a bug, implementing a feature, etc), and he contributes that code to the project under the accepted license, should that contribution be rejected, because Bob is a dick?

While it would be challenging to work with Bob, in this example the required collaboration is deliberately minimal.

But that's the point; it doesn't say anything at all, except that the project moderators have recognized the concept of a Code of Conduct and explicitly chosen not to have one. The NCoC is a very intentional statement of having no code of conduct. The project README may talk about moderation happening, but that's not actually a part of the NCoC in any way. The NCoC does not help moderation in the slightest bit. And the issues the README are talking about are things that are much easier to deal with if you have an actual CoC in place instead of that stupid statement saying you have No Code of Conduct.

With or without a Code of Conduct, warnings, blocks, and thread locks remain effective tools for moderation.


As for what I actually believe on this subject?

I agree in spirit with the Code of Conduct, but I don't have enough data to state with confidence that it has any quantifiable impact. That said, I don't think it actually does any harm.

I view the intent of NCoC quite differently from how you do, and that's probably worth highlighting.

It's difficult to predict what others will interpret something as, and discussions like this one help get a larger sampling to understand how a decision will be viewed, beyond the intention of the person making that change.

I'd vote for no change, and suggest we revisit the subject if it ever becomes a problem in the future.

ghost commented 8 years ago

if Bob is hard to work with while doing code reviews and such, then his code might not be acceptable to be merged, as then he wouldn't be worth dealing with when it comes to issues that might crop up when the code is actually in use and causes bugs.

colstrom commented 8 years ago

@jrobeson I hadn't considered it from that perspective. Thanks!

ghost commented 8 years ago

My perspective is that maintaining software (or more specifically FOSS) is a team sport. Thus, I like to be able to choose my teammates based not just on ability, but whether they might be fun to work with. FOSS is really hard, why make it harder by putting up with people who make your life difficult.

ghost commented 8 years ago

I've been working with FOSS for quite some time ( > 10 years), and as time as gone on, finding good people to work with is harder than finding good code.

colstrom commented 8 years ago

@jrobeson Agreed. I think that's the difference between communities and projects that accept contributions.

ghost commented 8 years ago

considering how quickly personal projects can turn into communities, it is a very blurry line.

alphapapa commented 8 years ago

One of the amazing things about git is how it makes all of this irrelevant.

Don't like how someone talked to you? Ignore them.

People don't want to merge your code? Fork the project.

Find a fork you like better? Contribute to it instead.

Fork merges good code without sending you a PR? Merge it yourself.

We're talking about software here. The only thing necessary to allow people to cooperate is an API. It doesn't matter whether people like each other or are nice to each other--for whatever definition of "nice."

Imagine if the entire FOSS ecosystem had one giant repository and one monolithic code of conduct. Someone in the X.org tree mouths off to someone in the Linux tree, they get excluded, no more contributions to X from them. Someone in Mozilla takes their side, flames someone in LibreOffice who took the other side, both of them get banned; Firefox and LibreOffice lose contributors. Someone in the OpenBSD tree gets offended at a statement by RMS, no more OpenSSH for GNU/Linux. Etc, etc.

Thankfully, it doesn't work that way. You don't like someone? Someone doesn't like you? Oh well. Ignore them or fork the project. People use whichever one is technically superior. The software moves on. It's the people who get hung up on things.

The limiting resource for all of us is primarily time. And it's a shame that so much of it gets wasted on arguments like these: arguments about hypothetical future arguments.

This is why the argument that software projects should just focus on technical issues is so strong. Imagine if every GitHub project with multiple contributors had to sit down and debate and decide on its own code of conduct. Then imagine if one person who contributed to 50 projects offended people in 10 projects. Does that mean that the leaders of those 10 projects now are required to "investigate" this person and police his private communication with other people? Don't they have more important things to do, like write and review code? Does every repo on GitHub need its own enforcement officer and investigative authority?

How did the Internet survive until this point? How did USENET get by? Eternal September was a long time ago--how did we get here?

Oh well. Carry on.

ghost commented 8 years ago

using Usenet as any part of an argument proves the point. Usenet was a hive of scum and villainy. I know, I was around then.

EDIT: to be fair, there were nice communities, but they had decent moderation.

lilyball commented 8 years ago

@alphapapa That's a very exclusionist position to take. Yes, theoretically people can fork the project and go their own way, but in practice that happens extremely rarely, because either your fork doesn't have any community support, or it does gain community support and therefore splits the community (which is a great way to kill off projects). Even ignoring all that, most people, when confronted with a project that is exclusionary (either deliberately excluding them, or unintentionally turning people away by having a non-welcoming community), will simply abandon the project. And that doesn't just mean the person won't use the project, it also means the project just lost a potential contributor.

Not only that, but by having a community that takes this attitude, you're ensuring that the only people that will participate in the community are people exactly like you, people who don't have to deal with harassment and discrimination online (e.g. due to gender, sexuality, or ethnicity), and who aren't discouraged by non-welcoming communities. Similarly, you're also probably turning away less experienced contributors, people who could be valuable members of the community but don't feel confident enough in their skills to be willing to put themselves out there and publicly contribute something. This also means that you're discriminating against women and disadvantaged minorities (both because members of those groups are more likely to be less experienced, and much more likely to experience harassment online).

And of course you'll never know what contributors you lost with this attitude, because nearly all of them will never even try to engage with your project.

Imagine if every GitHub project with multiple contributors had to sit down and debate and decide on its own code of conduct.

That's a straw man. The only debate that happens is because of people like you who are arguing against the whole idea of having a Code of Conduct. There's no need for projects to actually debate their code of conduct at all, all that's needed is for the project maintainer to say "we have a code of conduct, and that's final".

Then imagine if one person who contributed to 50 projects offended people in 10 projects. Does that mean that the leaders of those 10 projects now are required to "investigate" this person and police his private communication with other people?

Required? Required by whom? Each community can decide on its own how it wants to handle moderation. But moderation is required, whether or not you have a code of conduct, and pretending it's a consequence of having a code of conduct is disingenuous. And as I've said before, having a code of conduct makes moderation easier, not harder as you're implying here.

Don't they have more important things to do, like write and review code?

If one community member is harassing other community members, then no, they don't have more important things to do, because refusing to moderate your community is a great way to destroy it, or at least to end up driving away most potential contributors. If you want to have pull requests to review, you need to have people to submit the pull requests, and if you drive away your contributors, they aren't going to be submitting pull requests.

ghost commented 8 years ago

I personally avoid contributing to projects in my free time that explicitly turned down a code of conduct.

daenney commented 8 years ago

One of the amazing things about git is how it makes all of this irrelevant.

Huh? Git is a version control system. It's perfectly possible to be completely rude and out of line towards people while using git.

ghost commented 8 years ago

@daenney : the argument is that since git is decentralized, that you can just walk away to avoid dealing with people who cause problems. I think that argument is way too simplistic, but that's what the point of it is.

daenney commented 8 years ago

Sense to me, none it makes.

ghost commented 8 years ago

I think we can all agree that keeping the CoC would be preferred to losing it. So, unless people want to keep discussing things further I believe we can close now.

alphapapa commented 8 years ago

by having a community that takes this attitude, you're ensuring that the only people that will participate in the community are people exactly like you

I hope it's self-evident to people how preposterous a statement that is. This is the Internet. You don't know anything about me, and I don't know anything about you. You don't know what I'm like, and I don't know what you're like--nor does it matter to me.

Public communities on the Internet are incredibly diverse. The possibility of anonymity makes the diversity even greater than anyone could know. The only communities on the Internet that are made up of people who are exactly alike are those which explicitly exclude others.

And not having a code of conduct does not explicitly exclude anyone. In fact, by not explicitly excluding anyone, it leaves open the door to the widest possible participation, i.e. the most inclusive community possible.

Conversely, having a code of conduct explicitly threatens punishment and exclusion from the community. And that is a clear deterrent against participation, especially as it implies discrimination against those who hold unpopular views.

In the end, a community that chooses this path declares that it's more interested in politics and feelings than in software and technical excellence. It's more interested in leading by instilling fear of exclusion than leading by example of excellence.

And you know what? That's fine. Like I said, that's one of the greatest things about the Internet, git, etc: there's no shortage of room for virtual communities. People who want to create walled gardens can do so, and they can exist simultaneously with open spaces. They can all co-exist in time and space, overlapping visibly and invisibly. People can choose freely whom they wish to participate with.

May we never lose our appreciation for this greatest of assets: freedom.

ghost commented 8 years ago

@alphapapa So are you in favor of removing the CoC or against it?

josegonzalez commented 8 years ago

Seems like he is vehemently against a code of conduct (and slack, since it's not free like irc :P ).

alphapapa commented 8 years ago

@bucaran Well, it's your project, so I don't suppose it matters what I think. :)

Please don't misunderstand me: I'm not in favor of treating anyone badly for any reason. I've run online communities before (a long time ago, now), and we had rules against mistreating people. And those rules helped to keep out trolls and create a friendly community.

But things have changed. The kinds of codes of conduct that are being pushed by certain groups online now are politically motivated. Instead of being blanket statements against treating people badly, they invoke political ideologies. Instead of defusing controversy, they cause it. They claim to be inclusive by being exclusive. Instead of a community leading by example, being patient and tolerant and showing people a better way by gently discouraging bad behavior and demonstrating good behavior, the codes threaten punishment and excommunication.

Instead of recognizing that the world is a diverse place with a variety of cultures, and encouraging people to give others the benefit of the doubt regarding their intention, the codes assume bad faith on the part of speakers, and empower hearers to impart guilt onto speakers. Instead of recognizing that a multiplicity of online communities overlap in time and space and membership, the codes attempt to reduce behavior toward a lowest-common-denominator. Instead of fostering an atmosphere of open, honest communication, the codes create an air of suspicion and doubt, instilling fear and causing people to constantly be on guard against saying anything that could be misconstrued or--quite frankly--disagreed with.

IMO, these codes also fail to recognize that software communities and projects are unique among other types of communities. Not only are they mostly virtual, but they exist for the purpose of creating something useful, which, in the case of FOSS projects, exists outside of their communities and outlives them.

People who have wildly divergent political and social values can still collaborate on technical projects. And, indeed, this has been the case ever since the Internet began. It's only recently that some people have been trying to push political agendas into the technical arena.

Perhaps the best code of conduct would be one that said something like, "This is a technical project. Leave political, religious, social, or sexual issues at the door. Private communication between group members is not a concern of the project. Statements made by project members as private citizens or as members of other, unrelated projects is not a concern of the project. Disagreements between project members over issues unrelated to the project should be resolved privately."

When people treat other people badly, it's not a matter of rules or regulations--it's a matter of the heart. And the heart is not so easily converted by a code of conduct. The heart is converted by loving, patient example over a period of time.

Well, since you asked for it, there's my two (more) cents. :) Like I said, it's your project, so it's up to you. Good luck to all of you.

ghost commented 8 years ago

This is a technical project. Leave political, religious, social, or sexual issues at the door. Private communication between group members is not a concern of the project. Statements made by project members as private citizens or as members of other, unrelated projects is not a concern of the project. Disagreements between project members over issues unrelated to the project should be resolved privately.

That's fine, and I couldn't say I don't agree... but what is the one thing about the current CoC that you think should be removed or you don't like?

I think we can move faster if we "attack" an specific point rather than discussing this in such an abstract manner.

josegonzalez commented 8 years ago

It sounds like @alphapapa wants something more akin to the NCoC.

FWIW, The newer version of the CoC this project uses has been much more amenable to people's sensibilities from what I've seen. Maybe worth looking at that?

lilyball commented 8 years ago

@alphapapa Spoken like someone who's never had to deal with online harassment.

The kinds of codes of conduct that are being pushed by certain groups online now are politically motivated. Instead of being blanket statements against treating people badly, they invoke political ideologies.

Please point to an example of this. Because it sounds like complete bullshit. No code of conduct I've ever seen matches this description.

Instead of defusing controversy, they cause it.

No, what causes it is people like you who keep arguing for the right to exclude everyone who don't feel comfortable participating in a community that refuses to have rules against harassment and other bad behavior.

They claim to be inclusive by being exclusive.

That's nonsense. The only people it excludes are people who won't follow the code of conduct, and those are the people that don't belong in the community. Or to put it another way, anyone excluded by the code of conduct deserves to be excluded because they're persistently engaging in unwanted behavior.

And the rest of your comment continues to be full of complete bullshit. It's so twisted that I can't believe you actually genuinely believe this, and quite frankly I think you're intentionally making up this wild mischaracterization without any basis in reality. For example:

the codes create an air of suspicion and doubt

Not even remotely true. I've been a member of many communities with various codes of conduct, and the code of conduct has never caused anything even the slightest bit like this. In fact it's quite the opposite, communities with codes of conduct are places where people can feel safe to participate, and where the atmosphere ends up being much more welcoming, inclusive, and tolerant than other communities.

@bucaran

What is the one thing about the current CoC that you think should be removed or you don't like?

Don't remove anything. Private harassment done in the context of this project should absolutely be grounds for punitive action against the harasser (could just be the project author saying "cut it out", or it could escalate to banning someone from the community). Obviously the project author cannot actually prevent the harasser from continuing the harassment, but they can make it clear that such behavior is not welcome in the community.

If you explicitly choose to take out the mention of private harassment, the message that sends is that the community doesn't actually care about being a safe place for everyone to participate but instead only cares about the appearance of that. And that's not something I can support.

Besides, the concerns about this are way overblown. There is no legitimate reason to think that having a policy that prohibits private harassment will cause any problem whatsoever.

ghost commented 8 years ago

@kballard I won't remove the CoC, as I can't see how not having one could improve anything. And if having a CoC is likely to attract less experienced users or other minorities to the project, then I'd add not one, but two CoC :smile:

alphapapa commented 8 years ago

@alphapapa Spoken like someone who's never had to deal with online harassment.

See, this just boggles my mind, because you literally know nothing about me. I don't see how it's possible to have a reasonable discussion if you're going to make such speculation about me and then treat my point of view with contempt because of it. Regardless of whether I have or not, are you not excluding me and declaring my experience invalid? And isn't that the problem you're trying to solve?

No, what causes it is people like you who keep arguing for the right to exclude everyone who don't feel comfortable participating in a community that refuses to have rules against harassment and other bad behavior.

This also boggles my mind. Everything I've said has advocated for being inclusive of all, and avoiding excluding anyone.

There is something you don't seem to understand: if a person chooses to not participate in a community because that community doesn't have a certain policy they desire, that community is not excluding that person--that person is choosing to not participate in that community.

You're basically accusing this hypothetical community of excluding people because they refuse to exclude people. This just doesn't make sense. Anyone who chooses to participate or not does so of their own free will.

And by painting people who disagree with you as "arguing for the right to exclude everyone," you seem to be trying to vilify people who disagree with you and pressure people to take your side. It seems like some kind of extortion, saying, "If you don't have a policy that excludes people I don't like, you're excluding me."

That's nonsense. The only people it excludes are people who won't follow the code of conduct, and those are the people that don't belong in the community. Or to put it another way, anyone excluded by the code of conduct deserves to be excluded because they're persistently engaging in unwanted behavior.

The problem is that "unwanted behavior" is a matter of opinion, and interpretations vary wildly throughout the world.

Personally, I find it problematic when anyone takes it upon himself to say that someone "deserves to be excluded." Human beings share one universal trait: fallibility. We all make mistakes, we all do wrong things, and we all fall short of the standards to which we should aspire. We all "deserve to be excluded" because we all have done wrong. A greater value than exclusion is mercy; we should aspire more toward that.

And the rest of your comment continues to be full of complete bullshit. It's so twisted that I can't believe you actually genuinely believe this, and quite frankly I think you're intentionally making up this wild mischaracterization without any basis in reality. For example:

It's hard for me to take you seriously when you are so rude. Frankly, it would not be a stretch, were I so inclined, to consider your tone harassing--in which case, would you be guilty and therefore in need of sanction and exclusion? Do you see how quickly and easily it escalates? And who's to say where the line is to be drawn? You're illustrating the problem quite well.

Not even remotely true. I've been a member of many communities with various codes of conduct, and the code of conduct has never caused anything even the slightest bit like this. In fact it's quite the opposite, communities with codes of conduct are places where people can feel safe to participate, and where the atmosphere ends up being much more welcoming, inclusive, and tolerant than other communities.

Okay. I'm not declaring your experience invalid. Are you declaring mine invalid? Do you recognize that your experience is not universal? I would submit this discussion as evidence that trying to enforce codes of conduct can have negative effects.

Don't remove anything. Private harassment done in the context of this project should absolutely be grounds for punitive action against the harasser (could just be the project author saying "cut it out", or it could escalate to banning someone from the community). Obviously the project author cannot actually prevent the harasser from continuing the harassment, but they can make it clear that such behavior is not welcome in the community.

What does "in the context of this project" mean? Does it mean that any two people who participate in this project aren't allowed to vehemently disagree with each other in private email? Does it mean they aren't allowed to insult each other, or even hate each other, for reasons completely unrelated to the project? What business is it of the project's?

I just don't understand how creating a new repo on GitHub creates a responsibility or authority to monitor participants' private communication. Let's say that person A curses at person B in a private email because of prejudice against his skin color, and project A bans person A. Now person A is also a participant in project B, but person B is not. Is project B required to ban person A as well? What about project C, in which person B is a participant, but not person A: is project C required to preemptively ban person A from future participation? Should there be a global GitHub banlist? Should projects be required to use it? Who decides when person A is eligible to participate again?

If you explicitly choose to take out the mention of private harassment, the message that sends is that the community doesn't actually care about being a safe place for everyone to participate but instead only cares about the appearance of that. And that's not something I can support.

That's not the message I think it sends. I think it sends the message that the project is more concerned about policing participants' opinions and private communications, which are none of the project's business, than it is about making good software. Conversely, saying that private communications are the concern of nobody except the people directly involved, is to maintain a technical focus and, importantly, to respect participants' privacy.

Personally, I could not support a policy which assumed an authority or responsibility to violate participants' privacy.

Besides, the concerns about this are way overblown. There is no legitimate reason to think that having a policy that prohibits private harassment will cause any problem whatsoever.

You can dismiss opposing views as illegitimate, but that does not make them so.

I think this discussion illustrates the problems inherent in such a policy, and the project would be well-served to adopt a policy of "technically minding its own business." :)

MadcapJake commented 8 years ago

And not having a code of conduct does not explicitly exclude anyone. In fact, by not explicitly excluding anyone, it leaves open the door to the widest possible participation, i.e. the most inclusive community possible.

Conversely, having a code of conduct explicitly threatens punishment and exclusion from the community. And that is a clear deterrent against participation, especially as it implies discrimination against those who hold unpopular views.

Couldn't disagree with this more. Having a code of conduct ensures that your community will be inclusive, technically-oriented, and not maligned by bullies/trolls/those-with-unpopular-views.

ghost commented 8 years ago

@bucaran : since you've decided, you might as well mark this issue as closed, and maybe lock if you don't plan on changing your decision. I have a feeling that arguments over it aren't going to stop anytime soon.

ghost commented 8 years ago

@jrobeson Thanks. Yep. I was about too.

Alright, folks, thanks for this wonderful and insightful discussion. Multiple points of views is what make discussions interesting. If we were all simply repeating how the other is so right about that or this, it would be very weird.

We will keep the CoC.