All of this stuff is in service of getting the job done. If people can't usefully collaborate with other people because they literally never developed adult social skills (not uncommon in the tech world), then they're not going to be good contributors or collaborators. They won't know how to constructively criticize others, or take constructive criticism, they won't learn from their mistakes, and they might not even learn the right lessons from others' mistakes. The organization as a whole suffers, which is a lot worse than any individual not getting what they want.
One "adult social skill" that comes to mind is the ability to deal with people who haven't developed adult social skills. The vast majority of people in my own professional environment seem to do this even instinctively.
I totally agree. But at the same time, immaturity doesn't let anyone off the hook for being shitty to other people. It's not just on the Internet- it doesn't let them off the hook in real life either. The post I responded to was from someone who said they were so pissed off that people were telling them not to be shitty to other people, that they left the job a couple weeks later.
The Internet's a different beast- it's often an ignorance-not-malice situation when ugly things happen in places like open source project mailing lists. Electronic communication is notorious for not conveying nuance or irony or sarcasm. A CoC (in principle) seems like nothing more than an explicit statement intended to curtail ignorance that could be misinterpreted as malice, which in turn could derail a project.
I agree with that list of priorities, but I don't know what you mean by "feelings"- I wouldn't use that word in my own division of goals. I would just call it "effective communication", not "feelings". You're phrasing it as if the the scenario people are trying to avoid is some brutally honest truthteller vs. some hypersensitive weenie who can't handle the truth, and that people are claiming that it's more important, in that situation, to preserve the weenie's feelings than it is for truth to be expressed. That's not the intention of CoC's or workplace etiquette or professionalism.
Think of that truthteller vs. weenie scenario: in cases where one person is potentially hurting someone else's feefees over professional criticism, there is for sure some subset of those cases where that's exactly what's happening. One person is 100% correct, and is being brutally honest with someone else who is both incompetent and hypersensitive, and deserves that brutally honest criticism because that's the only way to get through to them.
That's a subset of those situations. I don't know how much of a subset- 25%? 50%? My gut says more like 1-5%, but my gut is naturally biased (like everyone's). But in 100% of those situations, I guarantee that the brutally honest truthteller THINKS that's what the situation is. In my experience, the brutally honest truthteller is expressing their own confidence in themselves far more often than they're expressing an objective measure of cold hard truth. Some subset of them are expressing cold hard truth that can't be ignored, but all of them think they are. If they had really truly done their homework and knew what they were talking about, they would have eventually learned humility and skepticism, and would be much less likely to jump into the brutally honest truthteller role in the first place.
Simple example of productive etiquette: when criticizing someone's work, it's generally much more effective to phrase it in such a way that it doesn't come off like a personal attack. Meaning, some variant of "this code is bad" works better than some variant of "your code is bad". In the latter case, natural and common cognitive biases (i.e., human nature) are such that people will almost always feel at least a little bit defensive, and are more likely to reject the rational aspects of the criticism because they sense that the other person is criticizing their work for personal rather than rational reasons. I'm totally aware of these biases in myself and I'm still almost as susceptible to them as anyone. It makes it easy to brush off the criticism as coming from an irrational place, on a subconscious level that never even rises into the conscious mind. Making it personal diminishes the credibility of the criticizer in the eyes of the criticized.
So, as a rule, I have found that it's much more effective to make an effort to phrase things as objective criticisms rather than personal attacks. This isn't tiptoeing around someone's feefees, it's literally just making an effort to communicate in a way that is most likely to produce a positive outcome (in terms of production, not feefees- the preserved feefees are just a pleasant side effect). In my experience, that's all that most CoC's or calls for workplace civility or whatever are advocating. Some people are used to working in large organizations full of big egos and unbalanced people from all over the world. Other people have spent their professional lives in much smaller bubbles, and never had cause to think about any of this stuff. But successful open source projects resemble the former much more than the latter, and can require similar social awareness to keep things running smoothly. Things like CoC's, ideally, just make sure that everyone's on the same page in as harmless and nonintrusive way as possible. I'm sure they've been misused or poorly implemented in specific situations, but in principle it all seems eminently reasonable to me.
I’m not OP, but I don’t think you need to convince anyone of your position.
This is not a problem that requires resolution in order to succeed. Different people have different ideas and philosophies. Build software with a group that’s compatible.
Done. Problem solved. There’s enough cool projects that if you disagree over something that one side of the argument thinks is trivial then you don’t have to stay married for the kids. (Or even get married in the first place)
It seems like a Jainist marrying a Baptist and then trying to really convince the Baptist to go veggie. It’s a big deal to the Jainist, part of their core beliefs, really important. The Baptist doesn’t care. Only cares because they’re married.
Now imagine it’s a stranger on the street that the Jainist is attracted to and goes into “quit meat so we can date.” The stranger is likely going to not respond. Eating meat is not an issue for the stranger, even though the Jainist thinks it’s really important (and millions of other Jainists do as well).
PS- Jainists are cool, and while I don’t know all Jains, I’m pretty familiar and never met one with such an unreasonable approach.
We agree completely assuming that the other less skilled programmer doesn't twist any code criticism into personal attack and that project leader cares more about project quality than about feelings.
When I review or comment the code I couldn't care less if you have three hands and a hump, in fact I am least gentle about my own code. When every dialog goes like Me:"This code is bad" -> Other guy:"Why are you attacking me" there is little room for staying completely politically correct.
I was actually suggested never to use 'this code is bad' in any form in the last place I worked, because that can scare away less skilled colleagues.
“then they're not going to be good contributors or collaborators.”
Maybe you mean aren’t optimal contributors or collaborators. There are obviously good contributors who lack what some think are adult social skills. I mean, you can look at Linux and see commits with “poor social skills” that do quite well.