For example: When the design team added 10MB of web fonts to the app, I said something like, "Users don't care whether the font is Open Sans or Arial. They care whether things load quickly and don't re-flow. This is a bad decision." I got nothing but condemnation for pointing this out. Today, every user downloads several megabytes of web fonts which have broken kerning and hinting on some platforms.[1]
It was a similar story when people wanted to change our build artifact to be based on RHEL instead of Alpine Linux.[2] This would have bloated the build artifact from 11MB to 200MB, introduced a host of security concerns, and drastically increased CI build times. In a meeting I said, "This decision seems totally braindead." I was immediately taken aside and given a stern talking-to by my manager. If that's not a braindead decision, then I don't know what is.
I also got in trouble for this comment[3] pointing out flaws in PatternFly. I was told that some of my coworkers felt insulted by my comment, and that I should be more civil and tactful. Who was insulted? What parts of the comment were insulting? I never got answers to those questions.
Encouraging civility sounds like a good thing, but in my experience the people leading the charge are doing it to suppress criticism.
1. https://github.com/openshift/console/pull/3 My bullet point about reducing the build artifact from 11.3MB to 7.6MB was incorrect. It actually reduced the build artifact from 40MB to 7.6MB.
IME there are only 2 reliable ways to get people to do what you want: you have authority to tell them to do it, or you can convince them that it's the best course of action.
People often treat their ideas like their children - and calling someone's child "stupid", or "braindead" isn't going to make you popular with them. Good luck convincing them it's a bad idea now - it's a matter of pride, and they'll obstruct you every way they can. Is this rational? No - but it's a reality of working with people, and denying it is futile. I've done it myself in the past, without being aware of my biases, and even then I'll probably do it again in future.
If you're actually working with people (and those people's bosses) who can't be reasoned with using facts and data, presented without calling the idea names, then the rational thing to do (which, it seems, you did) is to find a different team or company. Either you're wrong or they are, and time will prove someone right.
> Who was insulted? What parts of the comment were insulting?
I read the comment and my opinion is "It's a CSS framework! How can it take over a year to make?!" and "The speed and quality of development leaves much to be desired. For example: It took them five months to merge a TTY component. We wrote a similar component in two days." might have been the insulting parts.
Those comments could be construed as calling those devs slow and incompetent. I don't know if that was your actual meaning, but it's hard for me to read it any other way - sorry :-( maybe I'm missing some context.
Sorry also if any of what I said seemed rude. It took me years of insulting people to learn this stuff, and I'm still nowhere near perfect :-), but I thought I should share - it's possible I'm wrong. I also understand if you feel differently.
P.S. I checked out Floobits and it looks super-cool. I'm looking forward to trying it out sometime.
If a person has a political or other opinion and is very strident about it in every sphere (twitter, personal blog, facebook etc.) outside of the project, the convenant should explicitly allow this. That way, it sounds more like a "this is our house and these are the rules you should follow if you want to enter" vs. "you should be a certain kind of person in all aspects of your life to be allowed in here". The latter has too much overreach IMHO.
That is a different thing altogether from what you're saying.
You have decided to recommend counselling.
Who of the two of you is being "uncivil"?
That's Robert A. Heinlein, hardly known for being a social justice activist.
There's a big difference between reformatting the message and changing the message.
The result is that it spawned a new code language for HR people (there are dictionaries) that "translate" the review.
Everybody is polite..
For instance the level of praise in with the various points indicates a scoring.
Here are a few examples:
He showed understanding for his work. -> He did not do anything.
He did all the work with great diligence and interest. -> Eager, but not very efficient.
He tried to do his job justice. -> The will was there, more unfortunately not.
He has used his skills. -> He did what he could. That was not much.
Here is a Google Translated page about it: https://translate.google.com/translate?sl=auto&tl=en&js=y&pr...
"This code is wrong. We should not be doing things this way, and I'm rejecting the patch."
vs.
"You are a fucking retard for submitting this patch. Anyone who thinks like this should be retroactively aborted."
The first style is blunt and to-the-point. The second is unnecessarily mean.
But I'm sorry you are dealing with an unhealthy culture where "politeness and respect" require you to walk on egg shells. To my mind, that's not what should be happening.
I talk to my sons at times about the following idea:
I say "chair" and maybe my mind conjures up a wooden kitchen chair and the person I am speaking with envisions an overstuffed living room chair. Then we start to argue because we aren't even really talking about the same thing, but we think we are because we don't realize the word "chair" means something so different to each of us.
So I will suggest that some people here have experienced environments where communicating clearly was not "asshole" behavior and others have not experienced that. Such people can be equally convinced they are correct and failing to understand they really aren't talking about the same thing.
Growing up, I hated pineapple. But I had never had anything but canned pineapple and it was awful. While living on the West Coast, I began eating fresh pineapple, not canned. And it's incredible.
Sometimes, it's a bit like people are arguing about whether pineapple is wonderful or awful and not realizing that one party has only ever had canned pineapple and the other has only ever had fresh pineapple and neither side ever thinks to specify that detail because it seems like a given.
What is no longer acceptable is to personally insult a developer for breaking things, poorly designing an API/implementation, etc. By "personally insult" I mean call someone names, curse at them, sarcastically suggest they should have been aborted, and many other such tactics.
Judging from Linus' post, he agrees that stuff like that is unprofessional.
And there are plenty of examples of Linus' posts where he clearly called particular developer stupid, as opposed to calling their ideas stupid. I can provide examples if you've never read one of them.
That's a positive change. But it also ought to be possible to say "this is a dumb idea" or to engage in friendly ribbing when someone does something dumb. These are good, healthy mechanisms in normal groups of people. Eliminate all teasing, and everyone is friendly on the outside and bitter and resentful on the inside. People should be teased for breaking things. There is such a thing as attempting to be too professional.
Calling an idea dumb is candid, I'd consider it a breath of fresh air from corporate speak. I left my prior position for similar concerns, specifically 'Architects' who I'd called out (and rather abruptly so) when they quoted AWS as being 'not redundant and only have one DataCentre'.
We're not talking a conversation from 10 years ago either. This was June last year!
Comments or statements like that need to be shouted out of the room.
I feel there's a finesse to be drawn and understood here.
If some one states, AWS is single site and no one else in the room challenges the stupidity of the claim. Some one ought to. That guys/girl is a fucking idiot.
But some one who perhaps needs to be coaxed or massaged into a different angle because their code base will grow 90% in size? Depending on the context that might be for the best. Or it might not be.
Coming back to my earlier analogy. Hammers and scalpels are both honest. Different tools for different needs.
"Friendly ribbing" doesn't translate well on a public mailing list, especially one with an international audience.
> People should be teased for breaking things.
Again, that doesn't work very well on a public mailing list, especially one with an international audience. If people break things they should be told clearly and precisely what they did wrong.
> There is such a thing as attempting to be too professional.
Do you have an example of a current FLOSS project that is too professional?
"This seems stupid to me" is a considerably lazy statement. What's worse, it doesn't have any meaningful content beyond "I don't like it." I've yet to see anyone's feelings hurt with the following:
"I'm rejecting your proposition because I believe it will lead to X, Y and Z (problems)"
"Your proposal is not going to work because of X, Y and Z".
"I'm not seeing the benefit of this. Can you explain what we have to gain by it?"
And probably a dozen other direct statements.
At the workplace, I don't care who thinks what idea is idiotic. I care whether they can speak for or against it. And I care whether they are open or close minded about it. Saying "This seems stupid to me" is providing zero contribution to the process.
and
>I'm not seeing the benefit of this
are very indirect statements in my vocabulary.
Edit: Of course being constructive with your criticism is even better.
There are two pieces here: one is the message you intend to convey, and the other is the manner in which you convey it. The two are not the same. The idea that as long as you speak the truth it doesn't matter how you say it ignores that how (and whether) people will accept what you say depends on the vessel in which the message is carried. The idea that others should just take it because it's the truth is at its heart just naive and inhuman (not to mention inhumane), and ineffective. If being true to your inner self is getting in the way of you being effective, it's ultimately counter-productive to your own ends: it's not actually being true to your self.
Yes, lying (including white lies), is detrimental. So is bottling things up. I completely agree. However, this is not zero-sum, either/or. You can both express how you really feel and convey it in a way that others will receive your message in the manner in it's intended.
The fact is resorting to insults and name-calling is toxic. If you can't provide constructive, honest feedback without being an asshole, you need to work on yourself.
Talking about why something shouldn't be done or why another way is preferable is way better.
Saying something is stupid will only work if you have complete power. If you explain why you think one approach is better than the other you can actually affect change without just holding the power.
It's not even about caring about other people's feelings because it's the right thing to do or whatever. It's just a more productive work environment. Attacking people personally triggers defense mechanisms in their brain that almost always lead to bad outcomes. The overwhelming majority of people have brains that work like this, and denying that reality is not going to lead to anything good.
Have you been to a corporate meeting? It feels like soul death for precisely this reason -- nobody is saying the thing they want to be saying at all.
Tech/open-source was one of very few domains where people did say the thing they wanted to say. The culture selected for people who want to interact that way, and then encouraged that form of interaction.
Now that's dead. Codes of conduct, inclusion, and caring about people's feelings are lofty ideals, but if people can't say "it's a stupid idea" when they think "it's a stupid idea" the whole thing will disintegrate into a dilbertesque nightmare along with the rest of the corporate America.