They not only slow down the progress of a project by often causing unneeded busywork, from simply not halting bad ideas, they often slow my learning progress down by not telling me I’m wrong.
If you see something stupid, call it out. If I’m doing something stupid or say something wrong, call me out!
There’s obviously a happy medium somewhere in there, and Linus isn’t it, but I would much prefer working with a Linus than someone polite. From the history I’ve read, he’s not holding grudges, or necessarily attacking people, he’s attacking dumb approaches and ideas, which happen to be authored by people. At least that’s how I’ve always interpreted his rants.
What people really want is to just know technically and precisely what is right and what is wrong so they can improve — leaving out all of the personal crap, positive and negative, except in the ways that people working together have normal human social relationships. So, like we can chat about our lives in downtime, water-cooler talk, and we can get to know one another. Extra politeness doesn't do that, it's just superficial.
This is what I'm saying: https://www.npr.org/2018/06/04/616127481/when-everything-cli...
...but that can be done politely, or not(†). In my experience, being polite doesn't add a high cost to calling someone out, makes the person being called out less upset on average, and generally improves the quality of ensuing answers/discourse (because those involved aren't burning emotional energy on pushing their anger to the background). Both of those latter two things are good.
Sure, there are some people who can take a flaming load of unfiltered criticism to the face and remain unfazed, but assuming that that's the _norm_ doesn't seem especially realistic.
(† = Or in between - "polite" is not a boolean. It's not even a numeric measurement; one can be polite/rude in different sorts of ways.)
I think a better word is "respectful." You can be direct and blunt, as long as you're respectful.
I mean there are really two axes here, right? You can be rude+vague, or polite+precise, etc.
Precision
^
|
|
Rudeness <-----|-----> Politeness
|
|
v
VaguenessTo me, at least, polite in a code review is, "This commit is bad because of [X]"
Brilliant assholes are the the second best to work with because they give the information polite coworkers do concatenated with ", and that's because you are a completely incompetent engineer and should rethink your career" or something similar.
The kind of polite you are referring to would be one of two people.
Option A:The sociopaths trying to control their image in an organization so they can gain more money/power
Option B:Actually incompetent people trying to protect their job because the brilliant asshole who is the leader would rather fire anyone who annoyed them instead of mentoring them
For instance, Bob is just starting out as a junior dev. He gets pulled in by Carl. Carl is project lead and everyone admires him. Carl is smart, quick, and insightful. He's seen as a bit of a hard-ass, but he's never wrong. He cuts through bullshit. So he pulls Bob in. And he tells Bob, "I've reviewed your last commit, and here are problems X, Y, and Z with it. X causes this. Y is deprecated and B is how we should be handling the issue now. Z gives the wrong result for this set of cases."
And Bob leaves and Bob feels bad. He feels just reamed. Seemed like nothing he did was right. So he gets this impression in his head that Carl really laid into him. Fast forward 10 years and Bob is now a project lead and he wants to emulate Carl. Because despite how hard Carl was, Bob learned a lot. He's a lot better than he was back then. Now, he doesn't think he'll ever be Carl, but he's still good.
And Bob is reviewing Dave's code, and Dave's code is just as bad as Bob's was 10 years ago. So Bob calls in Dave. And he lays into Dave, "Just what the fuck do they teach in school now? Look at what you did here. You fucked it up. Don't you know about A? Or B? You have to do better."
And Bob feels good, he gave a "Carl"-style rant and now Dave will get better.
But reread how each approached their junior. Carl didn't attack Bob at all. He focused on the code itself. Bob internalized the criticisms of the code and took it personally. So when it was Bob's turn to criticize, he made it personal. Of all the lessons he was given that day, he missed the most important one.
So, you see "This commit is bad because of [X]" as polite, because you aren't the type to internalize criticism of work as criticism of you. People who do internalize it, see it as one and the same and feel that comment as "brilliant asshole".
The kind of brilliant asshole you describe, aka Bob, hangs on a bit longer because he's not bad at his core job, it's just that he has a tendency to handle people poorly.
LOL. I think you mean you can't stand working with people who don't get right to the point. I'm guessing anyone reading HK agrees.
The problem is that people who prefer direct non-bs communication are also usually more emotionally mature and better at adjusting to others. They will keep quiet or look to move somewhere else but will rarely complain. Meanwhile easily upset and less stable people complain more readily and usually louder to force others to adopt their preferred style of communication (which often comes down to "don't criticize me and use the kind of language I prefer")
> The problem is that people who prefer direct non-bs communication are also usually more emotionally mature and better at adjusting to others.
I would argue this is entirely false. If they can't adjust to others finding their behaviour offensive by not being offensive, they're not "better at adjusting to others". Yes, this is a two-way street, but that doesn't automatically mean everyone has to be comfortable with the guy who swears at you and calls you an idiot for writing a patch they didn't like.
We can have technical discussions without personal attacks, without rude language, without racial or sexist slurs. We manage it at my work all the time, although I for one think I could still do this better.
It's difficult when we grow up in a culture which glorifies violence and "macho" behaviour, where most of us in the field are male and have been told all our lives that we're expected to be strong and independent and assertive.
And honestly, if you can't find a way to explain why an idea is bad on a technical level without offending someone, maybe you don't have a good enough reason to criticise it, or you need to think about it some more to figure out why you don't like it apart from your initial reaction.
That's the ideal. In practice there are always people, a minority, who can't or won't separate criticism of their work from criticism of themselves regardless of how nicely it's put. And then you have a problem.
Fortunately these people are mostly outside the technical realm, where direct criticism of work is very rare.
I think this sort of special snowflake attitude is part of the problem. There are plenty of other fields where people's work gets directly criticized. Tech is not uniquely (or even unusually) rational or meritocratic.
Yes, obviously in some fields tough peer review is also common.
It's rare even for basic things like spelling errors or typos to be pointed out, let alone more serious problems like a presentation containing statements that are wrong or vague, meaningless, etc. If people get their work criticised so easily why are there so many spreadsheet errors around, why are there so many vacuous PowerPoints and business processes that go round in circles leaving behind furious customers?
I've witnessed all this first hand. I've also seen what happens when programmers and non-programmers in a tech firm get accidentally mixed together: the programmers start pointing out mistakes in the non-programmers work and cause an "incident" because the others aren't used to being peer reviewed like that.
No, no, no. Why do you think that?
Example: a central part of artistic practice in art/design schools and professional work is what is known as "the crit". It's where they gather and show their work to each other and then proceed to shred the fuck out of it (with widely varying degrees of politeness).
Similar kinds of things happen with writers, marketing and film-making.
The only place where this stuff doesn't happen is perhaps some business/finance domains where outcomes are strictly evaluated by some ROI measure and maybe compliance.
To receive the sort of criticism I'm talking about, you need to produce things that are objectively good or objectively bad, and you need to be forced to accept when you produced something objectively bad on a regular basis. Criticism that can be easily written off doesn't count.
Go look at most people in a business, and the most or all of what they produce is ultimately evaluated by other people. It's not something the laws of physics have any say in. Whenever work is being subjectively evaluated by other people the standards and levels of criticism involved are way, way lower than anything engineers get subjected to. I've only very rarely seen business documents get put through the wringer in the way complex code reviews are every day.
I chose Art as an example simply because it was the farthest thing from a technical field and thus refutes the assertion that "direct criticism" in non-technical realms is rare.
All I am stating is that criticism of work is a central component of art (and other non-tech domains). It is not "rare".
You are saying that art criticism is "subjective" and that therefore it "doesn't count"-- that's your personal opinion that I don't care to argue about. Subjectivity is as much a part of the human experience as anything else.
Is there really such a big difference to criticizing a software design? Or a UX decision? Most creative work takes places in areas where taste/style/culture and craft/precision/technique meet.
In practice there are always people, a minority,
who can't or won't separate criticism of their
work from criticism of themselves regardless
Sure, absolutely.But consider the topic at hand. We're talking about Linus referring to people and/or their work as "brain dead" and things like that. It really doesn't take one of your snowflakes to take something like that personally.
There are a lot of times (in sports as well as software development) when I've received harsh feedback and been 100% fine with it. But it's not always appropriate.
I prefer direct, but polite, communication. I've not taken any sort of test to measure my "emotional maturity" but if my career has been any sort of measure I'm reasonably emotionally mature (more years spent in leadership than not, plenty of folks following me from one organization to the next).
My take: I think a lot of this is a cultural thing, particularly relating to showing respect. You either grow up in that sort of culture, or you don't. Or otherwise, you lack the emotional EQ to pick-up up the commonly accepted cultural mores. How do I know this? Share some of your exciting exchanges with friends and family and see how they react.
When I share what I consider to be some of the more abrasive experiences with folks that I grew up (or are otherwise friends outside of the industry) they're always curious how it doesn't come to fisticuffs. We just never talked to one another that way. Where I grew up, it's fucking rude to talk to one another the way Linus and others like him do. Give respect, get respect.
- Abrasive: This idea is the dumbest ever and you are an idiot that deserves to die.
- Constructive: This idea have problems X, Y and Z.
- Polite: Thank you for the effort, but I see problems X, Y and Z with the idea in its current form.
A lot of the discussion here is confusing the question of competence with the question of tone. You can be competent and have a nice tone and you can certainly be incompetent and have an abrasive tone. I can understand not having the patience for politeness, but personal insults are obviously counterproductive.
And the resultant debate might well be polarising or destructive by itself.
Without knowing what the parent experienced to cause their take on this type of politeness I'm just guessing, though.
It is interesting because I think I see a cultural thing here too: in some cultures "I feel" and "I see" and "currently" are as firm as "unacceptable until it changes" - just worded in a way that conveys respect for the author. But in other cultures it is read as vacillating. Dunno. Guesswork, as I said.
As I said, some people will interpret directness as rudeness. Those are the ones that expect for the language to be couched. But, in my opinion, it's better to be seen as occasionally rude than allow for those other negative behaviors to occur.
What they see is a chance to convince you ("I see...") or refactor ("... in its current form"). What you see is someone who is being stubborn and just not making the changes. So, it leads to a lot of friction and talking past each other.
Of course, it might also depend on that person's reputation and my previous interactions with them. If I have had 50 negative interactions in a row with them, getting such feedback might make me want to throw my laptop into the toilet.
But in most cases I think it would be a good way to phrase feedback.
- Someone injects an obviously inferior idea for political reasons (e.g. the recent TLS 1.3 debate). Then, a rude response might be your best option to deter the opponent. I think, some of Linus's attacks from the past fall in this category.
- Someone is just inexperienced and proposes a bad idea with good intentions. Then go for factual "This is flawed, here is why".
- Someone proposes an idea with flaws, but you see potential beyond the current proposal. Then, one should politely point out the current weaknesses, and at the same time encourage the proposer to improve on it.
As successful leader, you need a repertoire of responses.
In some cultures, direct comment on an idea is the norm, but in others it might be very rude. Even engaging in what you might find to be polite critique can be a challenge; even the most well intentioned comments might not transit cultural boundaries unscathed.
Worse, there might be some context you're missing that causes you to trigger someone without any intent to cause offense.
Example:
A new, senior developer transfers to my team. He puts up a CR and asks me for review. As I comb through it, I find a couple small bugs and take the time to explain why they are bugs, thinking perhaps he did not understand a subtlety in a library we are using. This same library has tripped up a number of developers on occasion, as there is a state that is being manipulated, but under certain circumstances it can be put in a state that is not intended. It's part of a language standard library and not something we can wrap in a safer way, sadly.
He apparently knew about it but just didn't account for it, and he took my explanation to be very patronizing and condescending, given that he already knew the problem. He then read into the rest of the review a hidden malice.
This is partly my fault; perhaps I didn't need to fully explain how the function works, though with the misuse I thought it could be a chance to teach. I probably should have taken more care in some of my verbiage; I tend to be somewhat direct, which comes across stronger than I intend it to. Not "You're a moron, delete this bad code" but more "This function call will not do X, Y, and Z. It will do W instead. Why not use ABC instead?"
Personally though, it also really irks me when someone carefully explains me something I already know, so I understand the mindset.
Hence denying the author the possibility to improve. Eventually the author will be let go, and they will have no idea why or what they did wrong.
This is called "being polite."
The guy himself admits that something is seriously wrong, and for years he clearly has attacked people, personally, and folks have quit, and many have called him out for it.
This is a positive change. No need to convert it into an slam on politeness. It's not like the world is being overrun by well-meaning polite people being ineffectual. Assholes who don't know when to stop, on the other hand, that's a serious problem!
A big part of the problem with many projects, or even companies, is that leadership is too soft and so you end up surrounded by incompetent individuals who either through delusion, or Dunning Kruger, have difficulty assessing their own ability. This results in incredibly inefficient and 'noisy' (as in signal:noise ratio) working environments. 'Hard' leadership gets rid of the slack and is willing to tell people when they're screwing up. This means you're going to be surrounded by the best, and anybody that's not carrying 100% of their weight is going to get removed. Of course you can have a problem there if the leadership is brutal and incompetent, but brutal and competent is a phenomenally desirable mix -- and that really sums up Linus, perhaps to extreme on both sides of the equation.
And in my opinion that really sums up many of the most successful leaders, both past and present. Though of course one huge difference between a Steve Jobs and a Torvalds is that Linus' work and behavior is, like Linux, completely open. Steve Jobs' was able to keep his persona restrained to within corporate avenues, with the rest of the world shown an extremely sculpted and fake image, the depths of contrast between the two only coming out after his death.
Woz seems like a nice guy and Warren Buffet likewise. Both seems to have worked in small teams.
Since we're talking about the open source world, how about Guido van Rossum?
Paul Graham seems like he's probably a direct yet civil guy. http://paulgraham.com/safe.html
Elon Musk isn't abusive. He extremely driven and demanding but that's not the same as abusive.
I could expand the list quite a bit if you want but do you really believe it'd be a challenge for me to list important leaders who aren't assholes? BTW, I don't know these people so I might get it wrong regarding some of the people I'd list.
---
As an aside, this is all very reminiscent of politics. We collectively claim we absolutely hate politicians who give nonanswers or focus tested and completely 'fake' responses to practically everything. Yet oddly enough, these people make up very near 100% of all politicians elected. Why might this be? It's because when we find a politician that does actually give his honest view on things we freak out and look for somebody 'better'. And who's better? The liar that tells you what you want to hear, instead of what he really thinks. And we get people that are smiles and honey on the surface, and two-faced corrupt liars on the inside. And then we act confused about why what they do and what they say don't match up.
[1] - https://www.businessinsider.com/googlers-say-larry-page-is-a...
The real issue isn't about any one or two individuals, though, it's the principle. The question is are there good leaders who are direct yet exercise self control? The implied question is do you have to be an asshole to succeed? I can list more examples if you think the ones I chose were inadequate, or you could acknowledge that I have a point. This isn't a contest. We are all here to learn.
So what can we judge Page/Brin on? Due to stock structuring they still have disproportionate control over Google and so Google's actions are going to be heavily attributable to their personal views and values. If you think the direction of Google is 'good' then that ought reflect accordingly upon your view of their values. And similarly if you think the direction of Google is something less than 'good'. There are numerous issues there as well of course but lacking superior alternatives, it's better than nothing.
The assertion is that there are a lot of examples of strong leaders who did not abuse those who worked for or with them. The subtext states that abusive behavior is not a prerequisite or driver of sucess. It's the dark side of ambition. We could talk about Steve Job's rocky career where he was his own worst enemy setting his own vision back years.
I can give examples of abusive leaders chasing away key players, setting back projects with rippling consequences felt for years, recovering slowly, never quite getting there. These leaders accomplished a lot but ultimately left with a sense of a partially realized vision. Unfinished business.
These same leaders also often hurt those closest to them who actually did need them, neglecting or even abandoning children, a reprehensable act for any reason but even more so to gratify ego. This is just not how a man acts.
At the same time, you likely don't see the succesful leaders who became fully realized adults. I coud list 50 and you'd pick out some to fixate on because of their flaws. This tells me that your opinion is received truth. You defend it with the sophistry a partisan uses to defend an ideology.
And, critically, no matter how hard you try to maintain a perfect public facade, the truth comes out eventually if you're abusing people.
Anyway, I think we can agree to disagree on this whole topic. I enjoyed discussing this with you and I don't expect to convince anyone I'm right on anything.
And yet you're dismissing the opinions of those with apparent first hand experience working with said leaders, while having no first hand experience yourself.
For instance, Page one told someone that what they did was boring. Eccentric or abusive and jerkish? Probably the latter. What about the time he suspended work across the entire company and told everyone to work on latency because their products were fat and slow, and there was no higher priority than latency? Probably not offensive because it was targeted at the whole company? But if the same feedback had been given to an engineer one on one, maybe offensive.