Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
A Case Study in Not Being a Jerk in Open Source (destroyallsoftware.com)
69 points by talonx on June 21, 2018 | hide | past | favorite | 51 comments


Linus seems like a jerk if you see him as an entitled engineer maintaining a popular OSS library.

But if you instead see him as a CEO, responsible for every single part of the Linux kernel, running on one billion machines, his behavior becomes natural. Even warranted, since, often-times the people at the recieving end of his wrath are not making some whoops-daisy technical mistake; they are trying to exert power and extend their influence through the code they write.

Remember how grsecurity tried to destabilize the Linux kernel?

https://news.ycombinator.com/item?id=14633163

Or how one core maintainer broke userland and refused to fix it?

https://m.slashdot.org/story/179833

Linus shut them down.

Linux keeps a thousand volunteers in line. The vast majority of whom are not subordinates, duty-bound to respect nice words. At this high level, with such enormous stakes, I wouldn’t want a weak willed leader who lets the children run amok.


Your sense of how leadership works is really screwed up. Nothing in TFA suggests being "weak". Quite the opposite, per the author's intent, and I agree: "It's still forceful and unambiguous." The most scathing responses I've ever written in my professional career contained zero profanity, zero ad-hominem attacks, or other attempts at verbal abuse. But they still had unambiguous and devastating impact. If your only concept of strength of leadership amounts to "be maximum asshole", then you have a really horrific concept of leadership.

Instead, I'll offer this. In my experience, great leadership is the skill of getting a group of people to take action on a cause without having/using authority over them. Instead, you seem to think leadership is about taking authority over people by being a jerk to them.

No one's saying that Linus shouldn't be a strong advocate for the kernel. This is entirely about his refusal to acknowledge or improve lousy communication skills that obfuscate his generally excellent technical arguments, and needlessly push away contributors who have actual self respect.


>> the stakes are enormous

This is the key difference between kernel development and other volunteer efforts.

Most volunteer efforts are worse off when people are scared away by strong language and pointed explanations of their shortcomings because their performance isn't really that important. It's not that big of a deal if you spill something at the food kitchen or goof up part of the set of the school play.

The kernel is not a typical volunteer effort. You can't show up with nothing but goodwill and be a net good. It requires skill and discipline, and people who don't have that but try to inject themselves into the process need to be told to go away for the good of the project. Pretending otherwise only causes people to get their feelings hurt. I wonder if there should be a different word for it than "volunteer", because the connotation of that word is that showing up and wanting to be helpful is enough.


I'm not sure why you think that skilled people who won't walk away and go devote their time to a project where they don't have to put up with an asshole boss and his army of apologists.


But is Linus actually telling anyone to go away for the good of the project?


Correct. The “volunteer” part means that Linus’s formal authority is actually quite limited.

In a company the Boss can fire the incompetent or malicious. Not so with Linux; The BFDL has to constantly poke and prod the community away from its impulses.

The truth is that leadership without formal authority is messy. It only gets messier as the problems becomes more important and as more people get involved.

The alternative to outbursts is hierarchy; for Linux to structure itself even more, endowing Linus with even more power, such that he could temporarily suspend the contributor at his discretion.

No insults, no screeds, just a silent squelch.

A far neater outcome that would also be anathema to the politically unconscious.


I don't like Linus's approach because it takes the conversation away from "how did this break, let's investigate carefully" and steers it towards blaming an individual for making a mistake.

As Mauro points out in the replies, the patch here was trying to fix an issue where one driver (uvcvideo) was returning error codes that didn't match what the majority of drivers were doing -- something that was also a bug and was also breaking userspace. The -ENOENT that Linus screams about is an internal driver error that accidentally was returned to userspace in one place.

No core maintainer was refusing to fix userspace (read the thread!), they just wanted to understand the breakage in question since the patch was intended to fix something else!

Software is hard and tricky. The correct response to managing this complexity shouldn't be calling someone an idiot for trying.

A lot of the widely-celebrated "Linus burns" have important, nuanced discussion behind them that is thrown out the window when it's reduced to swears and anger.


> But if you instead see him as a CEO,

Still seems like a jerk to me.


Don't you think Linus could solve those problems without being a jerk though? If he could, then maybe shitty attitudes are just superfluous or even impeding his objectives...


> Linus seems like a jerk

Linus is a jerk and he gets away with it entirely because apologists like you make excuses for him at every turn.

He's a dictator. he can say no and leave it at that. He can say no and explain. Acting like a jerk is not a necessary part of this process.


It's amusing to watch people defend Linus every time a post mentions his abrasive style. They always offer the same set of excuses: Linux is too important to leave to nice people! Linus only does this to people who should know better! Get thicker skin! Etc etc.

It's the same set of excuses that justify assholes in any profession, and it suffers from the same flaw: it's not actually necessary to be a dickhead to be good at your job. In fact, being a dick to others makes it less likely for good, qualified, and smart people to want to work with you.

Linus will continue being a dick to others because of who he is - that's never gonna change. But I wish people would stop sticking up for his bad behavior. I don't want people in other OSS projects emulating him.


>it's not actually necessary to be a dickhead to be good at your job.

The reverse is also true.


Write your own kernel and impose your own standards.


> I don't want people in other OSS projects emulating him.

This strikes me as a self-regulating problem...

Linus gets to Linus for a lot of the same reasons Jobs got to Jobs. Try to port those attitudes to other areas, less successful areas, and you're gonna hit human factors. Namely: people aren't gonna tolerate jerks without cause.

Linus is not a role model, he's running a highly important and specific project. He's not dealing with weekend coders, he's wrangling senior types IBM, RedHat, MS, and Google. If those corporate titans don't like how he writes on his mailing list they're welcome to fork off into the sunset ;)


If Linus had written the reworded email the author is proposing here, this author wouldn't be writing this blog post, and we wouldn't be clicking it on HN and reading the contents of Linus' points.

As to the actual detail of the author's proposed rewordings:

> I'm not talking about the changes themselves - I can live with them. But the _rationale_ is pure and utter garbage, and dangerously so.

becomes

> These changes look OK, but I'm not sure about the rationale.

This rewording imparts an entirely different message to the original. If I read the latter, as a programmer, I would get the impression that Linus thought the commit was "OK". He clearly did not. At no point in his email does he indicate that anything is "OK" about this commit in any way.

> The caps in "AND STANDARD" is another way to indicate frustration [...] None of these carry any meaning about the technical problem; they're just expressions of anger. [...] Most critically, it's possible to describe the danger of this code without

It's important to point out that the author says "it's possible to describe the danger of this code without". He's describing danger but his rewording removes all emphasis, urgency or import in the tone of the email.

> If you were in the "I'm afraid that being nicer would hurt Linux" group, do you think that this email is worse?

Yes.

I'm sorry, but while the argument that Linus makes excessive use of ad hominem and is disrespectul is a valid one, and he could/should temper that, this example is a failure to demonstrate how it would improve things. The final email draft in the blog post is milquetoast; I would forget it within minutes if I were on that list.


There's something weird going on with Linus vs the polite people, where Linus is far too rude, but his critics are asking him to adopt a conversational style with a dangerous amount of hedging and uncertainty that would be catastrophically bad for the kernel.

Consider These changes look OK, but the rationale is dangerously wrong. It doesn't require Linus to pretend he's "not sure" about a rationale that he obviously thinks is both wrong and dangerous, but it's less personally insulting, shorter, and more on topic.


It occurs to me that these rants of Linus’ would get him banned on this site. It also occurs to me that it only works because people give him a wide bearth, because otherwise it’s just people “screaming” at each other, the very thing that the rules of this site seek to avoid. The notion that emphasis, memorability, and clarity can only be achieved by acting like a child having a tantrum runs contrary to the platform on which this discussion is being had.

I don’t know if that matters, but it strikes me as odd that people who seem to appreciate how this site works think that Linus is some exception because of just how mission critical he is. I also think it likely reflects the lack of soft skills some here have that they can’t imagine a better way being as or more effective, despite the living example of HN itself.


Agreed, The author in summary states:

> It [the rewrite] has 43% as many words, but loses none of the meaning. It's still forceful and unambiguous.

Yet, I found the rewrite to be feeble and ambivalent.

> If you were in the "I'm afraid that being nicer would hurt Linux" group, do you think that this email is worse? Yes.

I wanted to add one additional question. Are there environments where ad hominem and disrespect are actually important cultivators of competency and reverence for the nature of the underlying task. Might there be instances where the collective is better off with Mr. Torvalds than Mr. Rogers?


People have done science to answer your last question. In general the answer is no.


Do you have any references? I'd be interested to read them.


I took note of the “Mr torvalds or Mr Rogers” example. It was clever and I think the truth underlying it is that for an idea to survive its circumstances, it must be shepherded by certain kinds of personalities.


Exactly.

I'll add, you accurately used the word shepherded and I thought, "I imagine there are times when sheep aren't too pleased to be handled by a crook". Maybe the Kernel Mailing List is Linus's crook...


Debatable. Linus’s original email is unclear. “I can live with them” is badly ambiguous between:

1. Bad, but I won’t swear at you.

2. I’m not sure what I think, might be ok but needs more discussion

3. Merge them, but I want to swear about the proposed reason, because it’s bad.

I think 3 is the least likely, but nothing in the email unambiguously rules it out. I think 2 is the most likely interpretation.

There’s something funny about people saying “Linus’s style is valuable because he makes things clear” in response to a post where we can’t agree on what he meant.


> I'm sorry, but while the argument that Linus makes excessive use of ad hominem and is disrespectul is a valid one, and he could/should temper that, this example is a failure to demonstrate how it would improve things. The final email draft in the blog post is milquetoast; I would forget it within minutes if I were on that list.

You'd really forget an email from the head of the project (the "CEO," to use another user's example on here) telling you you've messed up, just because the language was neutral?

I'm not sure I understand that. I don't think most people need yelling and raving in order to know something is important or understand what needs to get done.

Even so, I'm sure better versions exist. Do you have an idea of a polite-but-forceful rewrite of this email that'd be more effective?


Ok, so, maybe the revised email should be more forceful and say “this is a bad idea.” I have no problem with being told what I’m proposing is a bad idea.

As to the supposed “danger,” I think the author may be reading into it too much. Linus himself says he could “live with” the changes. That, to me, does not sound in any way dangerous. What he has a problem with is the reasoning behind why these changes should be made. “This is a bad idea” covers that.

Quibbling over wording doesn’t change the fact that he can effectively get the point across in half the words without insulting anyone or going off on a rant.


> If Linus had written the reworded email the author is proposing here, this author wouldn't be writing this blog post, and we wouldn't be clicking it on HN and reading the contents of Linus' points.

It is actually a positive rather than negative if author was not motivated to write his blog post by the Linus rant/abuse. It would have meant the Linus was able to get the message across with his abrasive style.


I agree. The revised email is respectful and courteous, but it is also woefully forgetful. While you shouldn't do it all the time, there are times when you just really need to drive a point home


Why do you have to insult people on a personal level to drive points home?


You don't, and I do agree the personal callout was pretty fresh, especially on a public mailing list. It doesn't dismiss the point though that you have to write everything like a HoA letter complaining about the color of your mailbox


Right. Linus and the author are both wrong. You can be forceful and direct with your language -- you just probably shouldn't be using ad hominem insults.


The author sounds like someone raised their voice at him once, and he swore he would never ever forgive the world for that insult.

Politically unconscious and otherwise inarticulate.


This must be a cultural thing.

There are plenty of people who happily interact like this daily. It is a personality. People talk and act in different ways, they are different people, I think it is reasonable for them to continue acting like themselves.

I don't find the way Linus writes offensive in the slightest. To me it is mildly amusing while making a point. I don't want to have all communications in a forced polite cotton wool tone, it becomes robotic. Further encourages people to act over-sensitive, making it harder to communicate.


>This must be a cultural thing.

Yes. Parts of the FOSS community have a culture that apologizes for jerky behavior.

>There are plenty of people who happily interact like this daily.

There are plenty of jerks, yes.

> I think it is reasonable for them to continue acting like themselves.

Being part of a team means accommodating your team members. We can argue what is a reasonable accommodation or what is not. But it's not too much to ask for Linus to stop typing in all caps, or accusing his team members of being morons.

> I don't find the way Linus writes offensive in the slightest. To me it is mildly amusing while making a point.

It's possible to be amusing and make a point without singling out a contributor for humiliation. Obviously, we have to be free to criticize other's work. But as the article shows, most of Linus's message isn't constructive criticism. It can be re-written to mean the same thing, yet preserve the dignity of the person he's criticizing.

We need people to contribute to open source projects. Being a jerk to others scares contributors away.


This is a fundamental disagreement. What you call a jerk is what i see as a interesting person. Carefully measured polite language is absolutely exhausting for many of us. It is much nice to simply tolerate different people.

People have cultures and personalities, many which are not understood by other cultures and personalities. I prefer us to exist side by side instead of banning one in favour of the other.


> What you call a jerk is what i see as a interesting person.

There's no accounting for taste, so you're welcome to find verbal abuse interesting. But the overwhelming majority of people do not like being treated with disrespect.

> People have cultures and personalities, many which are not understood by other cultures and personalities.

This isn't a cultural issue. Linus is from Finland. In Finnish culture, it's rude to imply your coworker an idiot. It's rude in most cultures to do so.

Linus is a fluent English speaker. He knows what "idiocy" means, and he knows that it's disrespectful to Andy. That's why he's saying it.

> Carefully measured polite language is absolutely exhausting for many of us.

Nobody is suggesting we use carefully measured language. That is exhausting.

What I'm suggesting is, just don't be a jerk. Watch how easy it is:

"Andy, what is the background for trying to push this idiocy?"

vs

"Andy, what is the background for trying to push this?"

The second statement isn't cluttered by polite language. And it actually takes less effort to say than the first. Yet it's far less Jerky.

> I prefer us to exist side by side instead of banning one in favour of the other.

In general, people should learn to work with people who are different from them. I work with people who have a different religion from me, speak with a different accent, or have different interests from me. And we put aside our differences to work together. It works well.

But there is one kind of person you can't work with, no matter how many differences you put aside, and that's a bully.


> Writing this email instead of the original email doesn't require any extra work

Really? I’m not going to defend Linus’s original message; Gary’s version eschews the unnecessary ranting in favor of more concise language. But the claim above strikes me as disingenuous at best.

There’s a reason we have quotes like, “I’d have written a shorter letter, but I didn’t have the time.” Clear and concise language often requires multiple revisions. I personally think it’s worth the extra effort, but it does require an effort.

I’d be astonished if Gary didn’t spend a lot more time on his version than Linus did.


Some issues with this rewrite:

* "but I'm not sure...", "I think that..." - these are weasel words that weren't there before and which change the meaning of the sentences. If the commit message is wrong, in the context of right and wrong of Linux kernel development, saying so is not Linus stating his opinion. The context of right and wrong might be based on Linus's opinions, but that's a different thing.

* the rewritten version loses the point about unclear standards language not being an argument, even though this is mentioned multiple times in the original. Perhaps because it often comes up as a rebuttal attempt, as indicated by "Don't tell me...".

* The conclusion of the original e-mail, i.e. its main takeaway, is that standards should be questioned. The rewritten version ends with "what are your other arguments?". In fact, the explicit point being made - that the standard should not be seen as an infallible resource - is now only implicitly present.

That said, I agree that profanity, name-calling and direct attacks are unnecessary and that the e-mail would be better off without it. But the author of the blog post also promotes changing clear and direct language to weak statements, which I do not agree with.


I'm still looking for the participation trophy that should come with the post's proposed edit.

Heres to you, Stuart Smalley! You're good enough, smart enough and.... doggone it, people like you!


This "Linus is a jerk" meme is old and tired.

The moral-superiority bullies are jerks too.

Same as people who use their position to push their politics.

Maybe we should all just be adults and focus on the work.


Read the article. The rewritten email was focused on the work. But Linus's email was mostly focused on humiliating a contributor.

So it is Linus who is not being an adult.


I only have one question to people arguing that "Linus should do this, Linus should do that": can you show me one person that does "this and that" in a comparable position that's successful? Is there any actual real world example?


There are many successful open source projects that are well-known and well-used.

Your question seems to assume that a prerequisite for a successful project is there being some sort of overlord that runs it.

That's not the only project management style. Many open source projects are instead run by collections of people who are capable of acting professionally to one another and to contributors. We don't hear about those individuals because they are happy to share credit for the project with all of the participants.

If "success" is measured on a personal level, then sure: bullies are often successful by marginalizing others for their own benefit.

Linux is an example of a successful project run by a bully. Here are some projects you may have heard of that have different management styles but are still, by my measure, successful _as projects_ in spite of that success not being attributed entirely to one figurehead individual:

- Python

- NodeJS

- Mozilla Firefox

- Apache HTTPD

- nginx

- Busybox

- Debian


> These changes look OK, but I'm not sure about the rationale.

That's a weaker statement to me.

"The changes look OK, but I strongly disagree with the rationale" sounds better.


You're right; I should've written the second thing. Too late to change it now, but I would if I could do it without causing confusion.


People are incredibly fucking thin-skinned. A few choice cuss words can get across points than paragraphs of inoffensive wishy-washy bullshit will obfuscate. And righteous anger cuts to the heart of a problem like Alexander through the Gordian knot.

If you can't point at shit, and say that it is shit, and it needs to be done better, then I don't want to work with you, or depend on your outputs. I am glad that there is someone like Linus helming the ship; Jobs was not different in kind, nor Gates in his day. It's a shame that we don't have more strong, extremely competent stewards like him.


You are clearly in the author’s group 3: people who say we should just tolerate this sort of thing. In that spirit, I could simply say you’re full of shit and move on, fully knowing you won’t be convinced by anything I say, but I won’t do that.

Instead, I offer you this: the revised email is half the length of the original, and still makes the case as strongly as the first based on the logical arguments. How would you rewrite it?

I don’t mind being told “no, don’t do that; it’s stupid,” provided it’s backed up with logic and an alternative way to proceed. In this case, the second email does this (the alternative way to proceed being just don’t merge the changes, or reword the commit messages).

I have no problem with cursing. I probably curse a little too much, in fact, and here it clearly gets in the way of the message, which is, in both cases “I can live with doing this, but your reasoning as to why we should is wrong.” Or, more bluntly, “no, don’t do this for these stupid reasons.”

What I do have a problem with is gratuitous abuse of someone who’s attempting to make a positive contribution and has, apparently, submitted a reasonable pull request.


I categorically disagree that the revised email makes the same case. The first sentence that Linus wrote indicates that he finds it questionable, but the revised statement puts words into Linus' mouth: "this looks ok but..."

That's not even the same sentiment. Okay versus Questionable.

Not sure why the Tone Police feel it's necessary to do this.


He clearly doesn’t have a problem with the code, otherwise he wouldn’t say he could “live with” the changes. This portion could be better worded to convey the “code is ok, but the rationale is flawed” message. How would you rewrite it?


Au contraire I think it is patently obvious that he does have a problem with the code as written, otherwise why spend the energy to rebut it so vigorously?


He wasn't rebutting the code; he was rebutting the claims about following the C standard, which were made separate from the code. You missed this because its' buried in all of Linus' ranting. Linus merged these changes a few minutes later with no further discussion.


Linus is like darwin, it eliminates weaklings like the author.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: