So, I read through the list of guidelines, and while I have some minor quibbles with them, overall they seem fine and reasonable.
But what happens if someone refuses to be kind? What happens if that person is a major contributor? What would happen if, in some strange alternate reality, Linux was a GNU project, and Linus-of-2012 said he'd really rather not care about all this politeness nonsense, and would prefer to continue on the way he was?
The problem I see with your bees/honey comment is that there is no commitment here from the maintainers and leaders of the project. This is just a more verbose "Be kind to each other", but without any commitment from the leadership of the project to actually maintain a kind, welcoming environment.
A non-committal claim to be kind may be honey, but its on a flytrap, and many people recognize this.
This is just a more verbose "Be kind to each other", but without any commitment from the leadership of the project to actually maintain a kind, welcoming environment.
"Be kind, generous, and accepting, or there will be consequences!" is just a few steps removed from, "The beatings will continue until morale improves."
The conundrum with linux, was that it was organized in a self-contradicting way. It's fine to have a meritocratic leader who is exacting and demanding, even harsh. You just don't mix that up with an ethos of accepting all contributors in public. Instead, there needs to be a public tier which is concerned more with outreach, and only once people are ready for the next level, should they be given access to the level where they have to stand and deliver.
See my longer comment[1]. At some point, with some hopefully small fraction of members, the maintainer will need to make a call between keeping the member and letting other people suffer, or kicking someone out of the project. Stallman even mentions this:
>the appointed maintainer(s) of a GNU package can, if necessary, tell a contributor to go away; but we do not want to need to have recourse to that.
in his email, although leaves that out of the guidelines themselves. Why on earth is being forthright about the fact that abuse will lead to exclusion worse than being cagey about that fact? If the end result, you can be kicked out, is the same, why would you prefer that the circumstances be entirely up to each individual maintainer's discretion instead of a somewhat objective (and importantly, public and available!) set of criteria?
> why would you prefer that the circumstances be entirely up to each individual maintainer's discretion
Exactly so that the same judgement isn’t applied everywhere. Different maintainers will end up having different audiences. I see that as acceptable, maybe even preferable.
Why should it be any different? If people have different sensibilities does it not make sense for them to have separate communities? Sure there should be some baseline, but as said elsewhere what one person may take as abuse another may take as a joke. Maybe these people just shouldn’t play together.
Then you work as a group of not-socially-incompetent people to find a compromise solution that hits the local maxima of what can be done with the situation, or make a considered decision to move down from the local maxima in the short term to find a higher maxima in the long term.
Maybe discuss with that person the possibility of continuing their work but having a small group of other people between them and the general public as an interface layer that handles the less important work.
If you think that setting up such a compromise might either be too expensive, might risk burning out the interface people or has some other downside, maybe have a frank discussion with them about the benefits and costs of their contributions to the process.
Talking to people always works better than talking at people.
>Maybe discuss with that person the possibility of continuing their work but having a small group of other people between them and the general public as an interface layer that handles the less important work.
So you mean you want to unseat me from leading the project I'm in charge of? What kind of punishment is this for violating some silly guidelines? [1]
>If you think that setting up such a compromise might either be too expensive, might risk burning out the interface people or has some other downside, maybe have a frank discussion with them about the benefits and costs of their contributions to the process.
Wait, but I thought that this was a guideline. Are you saying that there's actually an implicit threat within this guideline that I might be removed from the project against my will? Why wasn't that stated explicitly? How am I, a valued contributor, able to make informed decisions if rules are arbitrary and decided on behind closed doors without any ability for public input, comment, or even knowledge?
In case my point isn't obvious here, an explicit CoC has a number of advantages over a document like this one when it comes to actually resolving conflict, instead of trying to prevent it. It makes value judgements, but only because at some point in the conflict resolution process, leadership will be forced to make value judgements.
Making those value judgements explicit, and public, is a commitment from project leadership to not favor the in-group over the outgroup either explicitly or implicitly, when resolving conflict. It allows people to cite a prior commitment from the leadership to act in a certain manner. You still must trust the leadership to resolve conflict in the manner they stated they would, but you can verify that their resolution was in-line with the process and commitments they provided.
This doesn't mean that a CoC prevents leadership from attempting to mediate conflict when it comes up, and come to mutually agreeable solutions in cases when that is possible. But it does mean that in those rare cases when it is no longer possible to assume good intent that everyone is aware of the values that leadership and the decision-makers opted in to, and can hold them accountable to making decision in line with those values.
With this, Stallman hasn't made a commitment. He's written some nice platitudes, but when it comes down to it, how am I supposed to know if (again, hypothetically speaking) I'd had bad interactions with GNU or its members previously, Stallman would really value my experience strongly enough to take action instead of just letting me suffer to maintain the status quo? How can I try to hold him accountable when I don't know his values, and it would be completely possible for him to write off my complaint as simply not assuming good intent on the part of other contributors?
I can't. That's the problem.
[1]: Note that in this little hypothetical, you're my "boss", so the suggesting to put someone between me and the people I lead can be reasonably interpreted as a demotion or attack on my authority.
>In case my point isn't obvious here, an explicit CoC has a number of advantages over a document like this one when it comes to actually resolving conflict, instead of trying to prevent it. It makes value judgements, but only because at some point in the conflict resolution process, leadership will be forced to make value judgements.
I disagree. Sociopaths weaponise hard and fast rules. It's better to not make rules that aren't required and stick to communicating as people rather than attempting to rule like computers. Don't choose to be a bureaucrat, choose to be a leader.
Put another way, there's no substitute for not being a horrible human being. Projects that have good people on them have no need for CoC's. Horrible people will not stop being horrible because there is a CoC there, nor will a CoC drive them away.
I don't really feel like getting into a roleplay with you about your specific Angry Project Lead scenario on hacker news, it's a bad forum for that since such discussions tend to be long and nuanced, but you should remember that when you have to tell someone their behavior is a net loss for their organization, it's never going to be a fun conversation. Obviously the person will protest, and depending on their personality that might range from pleading to outright physical aggression.
Everyone coming away from such discussions feeling unhappy is normal, what matters is that there is some form of resolution in the process. Yeah, the outcome might be a forked project, or it might be someone being asked to leave. Those are not comfortable outcomes but they are hopefully necessary, otherwise why bother to have the conversation? As long as you can bring the project to a state where you've moved past the obstacle and it's no longer at the forefront of peoples minds, you've succeeded. If people are still discussing your ruling and what it means for contributors months or years later, you've failed.
If resolution can be achieved without verbal, societal, technological or physical violence, that's the best that can be asked.
>I don't really feel like getting into a roleplay with you about your specific Angry Project Lead scenario on hacker news
FWIW, I don't really either, I mostly just wanted to illustrate that not having guidelines or policies about how issues will be handled can lead to problems (like arbitrary enforcement, or accusations of arbitrary enforcement or choosing favorites, etc.). Guidelines for enforcement help protect leadership from accusations of such from contributors, and help protect contributors from actual inconsistent enforcement of the expectations.
>Projects that have good people on them have no need for CoC's. Horrible people will not stop being horrible because there is a CoC there, nor will a CoC drive them away.
But being "good" or "bad" isn't a binary. Its difficult, if not impossible to classify people as good or bad. Actions can be good or bad, generally speaking, but people rarely ever fit nearly into one box or the other. Is Linus a good person or a bad person? Maintaining Linux is a good thing, but abusing contributors is probably bad.
A code of conduct may not itself magically drive toxic people away (although in some cases I think it will). But it does hopefully empower people who are not in positions of relative power in a project to call out bad behavior by those who would previously be protected, with an assurance that the maintainers will take it seriously (or the ability to call out the maintainers for inconsistently enforcing the guidelines).
Conflict resolution is difficult, but that means that the conflict resolution policy, which is in many was what a CoC is, should directly address what happens when there is conflict. "Be kind to each other" doesn't do that, nor does a list of suggestions to communicate kindly.
I think the best comparison is something like incident management policies. Sure, you expect that the systems you rely on will fail only very rarely, but you still have playbooks and systems in place to manage what happens when they do break. The Kind communications define an SLA for interpersonal communication, but don't describe policies to investigate or remediate when the SLA may be violated.
>I disagree. Sociopaths weaponise hard and fast rules. It's better to not make rules that aren't required and stick to communicating as people rather than attempting to rule like computers. Don't choose to be a bureaucrat, choose to be a leader.
Before anything else, I'll note that while abuse thrives on hard and fast rules, it also thrives on ambiguity. One must strike a balance when writing a guideline like this to both explicitly empower the agent of conflict resolution with the ability to resolve conflicts, and to not be so overly regimented as to allow abusive behavior to continue by claiming that it wasn't explicitly banned or whatever.
Transparency and consistency is an important part of leadership. If the people you lead can't trust you or hold you accountable, it becomes problematic. In work environments this results in all kinds of things, but in OSS it results in people silently leaving, or just not joining in the first place.
>If people are still discussing your ruling and what it means for contributors months or years later, you've failed.
That depends. Which people? Someone can kick out anyone who disagrees with them about anything and be left with an effective, if small if perhaps somewhat sycophantic group of consistent contributors. Such a project would likely pass this bar of ruling well, but the project is also likely toxic.
I don't know that I have a better solution, but I might suggest "In general people who don't get their preferred outcome are content to continue working on the project".
I'm in total agreement. Its not an easy problem to solve, and abusers will try to take advantage of the framework no matter what. My expectation though, is that this won't have the intended effect and won't be any better (and likely worse in a number of ways) that "conventional" CoCs which, despite the hate they get, appear to be one of the best solutions we have to this problem.
> "the appointed maintainer(s) of a GNU package can, if necessary, tell a contributor to go away; but we do not want to need to have recourse to that."
How much damage have Linus's snippy emails really caused, in light of how they have benefited us? I and many other people like reading them because they are fun, so you have to take that in to account. Different people like different things, and that principle extends to writing styles and personalities. Indeed, if you really want to have diversity you should have some emails that I like to read in addition to having emails that you like to read, which by necessity implies that every email thread needs at least a few glib comments. I have heard that Matz and by extension the Ruby community is nice, maybe that project needs to recruit a Linus to fill out their personality lineup.
It's not about whether you "like" to read them or not, it's about whether the people they're directed at (and the audience) read them and decide to withdraw from the project (or never join it).
good software engineering requires some minimal level of mental strength, and if a one cant take a snippy (in the one's opinion as in my opinion Linus' emails are very reasonable, precise and thorough explanatorial) email i'd question whether that one would be a valuable member at all.
yep. I think it gets the point - irreconcilable differences in the foundations and applications of intelligence - more efficiently across than the alternative of an attempt at long winded logical based explanation of that irreconcilable difference to somebody who just doesn't understand/share your logical apparatus because of that difference.
recognizing and accepting the difference between people isn't dehumanization. Not recognizing and denying people the option to be different is dehumanization.
I think that whole issue was, while it may be amusing to watch the drama unfold, that valuable contributors were being disaffected. No, its not about how entertaining the email chain reads. Its about getting work done?
And it's disingenuous to describe the vicious attacks as 'snippy' and 'glib'.
Different people saw those emails in different ways. In fact, some people are invigorated by strong words as opposed to being cowed and driven away by them. I'm not saying that you didn't perceive them as vicious attacks, I'm saying that the spectrum of human behavior includes people who think being harsh is fine, and give and take it freely. You can't just throw out everyone that behaves in a way that makes you uncomfortable, that's just xenophobia sneaking in through the back way.
What's really wrong is when someone consciously goes out of their way to target another person's emotions, but that has little to do with the average niceness of their writing (which is mostly set by their natural personality baseline).
Yes, in a public environment, we do censure and object to 'strong words' (i.e. vicious vitriol). Public places demand a sense of decorum, lest the devolve into vicious places where only the mean survive.
Its not xenophobia; its civilization. You can talk as you please to your mates. But people you don't know? Its a whole different topic. And conflating the two is dishonest.
I think you realize that at some point a line has to be drawn, given you called "targeting another person's emotions" wrong; and also that everyone's line is in a slightly different place and what's reasonable to some will be uncomfortable or hurtful to others.
Given that, why is it wrong for people to try and influence their community in such a way that it minimizes people's discomfort? Shouldn't every community have the right to self-determine what conduct they're okay with?
I've always believed that you should be liberal in what you accept but conservative in what you generate. It's fine to strategize your own behavior to come across well to as many people as possible (for example not eating meat in front of a conscience-driven vegan) but when it comes to other people's behavior you have to be very judicious about the difference between uncomfortable (but natural) signals and malicious actions.
In this case, I'm highlighting intent when I say "targeting." I shouldn't become upset when someone that always comes across as abrasive comes across as abrasive to me, but if someone goes out of their way to consciously be more abrasive than usual then that's a signal I should pay attention to. If someone who is usually very meek says something slightly harsh, then I should multiply it by a large factor to get back to their internal mental state (which is what I really care about). Likewise if it's a case where I should take what they say and divide it.
But the spectrum of harshness is like the spectrum of spicy food. While I may be content with spicier food than my mother is, if I forced her to eat some of the food I find palatable, she would cry.
So if I want to have a pleasant, welcoming, and accessible meal, I should probably cook it to her spice level instead of mine.
You’re both right. In any other situation we’d say “ok, these are the limits between which 2 SD of the population falls, outliers will just have to deal with it”. And that would work. Here however we can’t measure anything, so we have no idea where to place the limits, or even what the distribution looks like.
"In fact, some people are invigorated by strong words as opposed to being cowed and driven away by them."
Maybe. But I'm going to guess that those that are "invigorated" by seeing someone be told that they should be "retroactively aborted" are not demotivated by not seeing that, and that more people are demotivated by seeing that.
>How much damage have Linus's snippy emails really caused
Don't downplay how he acted by using words like "snippy." There are contributors who have either left the project or actively avoid directly talking with him. There is a reason why Linus admitted he had a problem. It wasn't productive or useful.
>But more importantly, I'd actually put some blame on a certain circle of folks that play a major role in kernel development, and first and foremost Linus Torvalds himself. By many he is a considered a role model, but he is quite a bad one. If he posts words like "[specific folks] ...should be retroactively aborted. Who the f*ck does idiotic things like that? How did they not die as babies, considering that they were likely too stupid to find a tit to suck on?" (google for it), than that's certainly bad. But what I find particularly appalling is the fact that he regularly defends this, and advertises this as an efficient way to run a community. (But it is not just Linus, it's a certain group of people around him who use the exact same style, some of which semi-publically even phantasize about the best ways to, ... well, kill me).
>for prioritizing social pacification over software quality.
Well quite literally it's doing the opposite. Social derisiveness does nothing for the community. That's just one example of many. And of course you had to nitpick about systemd instead of understanding what's being discussed. Missing The Point (TM) 2018. Linux itself isn't really a good example of sane kernel development and architecture. It's popular and it works.
If in a discussion someone brings up a tangent to the topic at hand, please keep the discussion on track by focusing on the current topic rather than the tangent. This is not to say that the tangent is bad, or not interesting to discuss—only that it shouldn't interfere with discussion of the issue at hand. In most cases, it is also off-topic, so those interested ought to discuss it somewhere else.
Systemd, invented by the guy you are quoting, is, however, objectively crap.
I am about to start a separate, new service and have wide leeway in how it will run. I am moving away from Linux towards a mix of BSD and Solaris/Illumos. And Systemd played a part in this technical decision.
Systemd objectively breaks Unix principles. That makes it subjectively "crap", because in your eyes (not in everybody's, and not in a demonstrated superior or inferior way) that's a bad thing. I'm not too sure what's complicated.
And as I was saying to the other poster, calling something "objectively crap" isn't just most of the time wrong, it's almost always inflammatory. "Don't do it" feels like a good rule of thumb here.
Please don't argue unceasingly for your preferred course of action when a decision for some other course has already been made. That tends to block the activity's progress.
But what happens if someone refuses to be kind? What happens if that person is a major contributor? What would happen if, in some strange alternate reality, Linux was a GNU project, and Linus-of-2012 said he'd really rather not care about all this politeness nonsense, and would prefer to continue on the way he was?
The problem I see with your bees/honey comment is that there is no commitment here from the maintainers and leaders of the project. This is just a more verbose "Be kind to each other", but without any commitment from the leadership of the project to actually maintain a kind, welcoming environment.
A non-committal claim to be kind may be honey, but its on a flytrap, and many people recognize this.