I hope you didn’t take my position to be that yelling at people is always the right thing to do. There certainly is lots of yelling which is stupid, unjustified, and not useful in any sense.
The issue is whether yelling can ever be useful. You are saying that no, it can never be. I disagree.
No, the issue is whether Linus’s yelling is useful, or, whether yelling is generally useful enough in free/open source projects that it outweighs the costs. Specifically, whether “Let’s drive away people unwilling to adopt that “git’r’done” attitude with withering scorn, rather than waste our time pacifying tender-minded ninnies and grievance collectors. That way we might continue to actually, you know, get stuff done.” is good or bad advice.
Given this, I’m suspicious of claims that Linus’ way is “non-optimal”, especially if there is the strong underlying current of “I, personally, don’t like it”.
You should be even more suspicious, then, of Linus saying that it’s necessary and proper, given that he’s said that he, personally, does like it.
Do you think we have a basic difference in values or there’s some evidence which might push one of us towards the other one’s position?
That’s a pretty good question.
Hypothesis: I think some of it might be a case of the “Typical Mind Fallacy”. Maybe if Linus yelled at you, you wouldn’t be bothered at all. But I know that my day would be ruined, and I would be less productive all week. So I assume that many people are like me, and you assume that many people are like you.
I would be curious about a controlled experiment, where free/open source project leaders were told to act more/less like Linus for a month to see what would happen. But I guess that’s pretty unlikely to happen. And one confounder is that a lot of people might have already left (or never joined) the free/open source community because of attitudes like Linus’s. We could measure project popularity (say, by number of stars on github) against some rating of a project’s friendliness.
We might also survey programmers in general about what forces do/don’t encourage them to work on specific free/open source projects.
I’m sure there are studies available of what sorts of management are effective generally. I’ll ask my MBA friend. I did a two-minute Google search for studies about what cause people to leave their jobs generally, but found a such a variety of conflicting data that I decided it would need more time than I have.
These things could definitely influence me to change my mind.
I also think there might be a value difference, in that I do value fun pretty highly. That’s especially true in the free/open source world, where nobody’s getting rich, and where a lot of people are volunteers (this last is less true on Linux than on some other projects, but perhaps part of that is that all of the volunteers have been driven away)? But in general, I would like to enjoy the thing I spent eight (or twelve) hours a day on. And if even if this did make me somewhat less productive than I would be if I was less happy, I don’t really mind that much.
I think some of it might be a case of the “Typical Mind Fallacy”
Yes, I think the Typical Mind Fallacy plays some role in this. But then let’s explicitly go around it. Let’s postulate that the population of, say, qualified programmers, is diverse. Some are shy wallflowers, wilting from any glance they perceive as disapproving, some thrive in a rough-and-tumble environments where you prove your solution is better by smashing your opponent into bits. Most are somewhere in between.
This diverse population would self-sort by preferences—the wallflowers would gravitate towards polite, supportive, never-a-harsh-word environments (in our case, OSS projects), while the roar-and-smash types will gravitate towards the get-it-done-NOW-you-maggot environments. Since OSS projects are easy to create and it’s easy for developers to move from project to project, the entire system should evolve towards an equilibrium where most people find the environment they’re comfortable with and stick with it.
Now, that seems to me a fine way for the world to work. But would you object to such a state of the world, after all, there are some projects there which are “mean” and where you (and likely some other people) would be uncomfortable and unproductive?
I’m sure there are studies available of what sorts of management are effective generally.
Oh, there are piles and piles of those. The only problem is, they all come to different conclusions (with a strong dependency on the decade in which the study was done).
I also think there might be a value difference, in that I do value fun pretty highly.
Put yourself into manager’s shoes and consider the difference between instrumental and terminal values.
You, an employee/contributor, value fun highly. That is a terminal value for you. Being productive is a secondary goal and may also be an instrumental value (some but not all people are not having fun if they see themselves as being unproductive).
Now, for a manager, the fun of his employees/contributors/developers is NOT a terminal value. It’s only an instrumental value, the true terminal value is to Get Shit Done.
Do you see how that leads to different perspectives?
Since OSS projects are easy to create and it’s easy for developers to move from project to project
Creating projects is easy; forking is hard. And nobody wants to create a new kernel from scratch. Kernel hackers don’t really have a lot of options. So I don’t think your theoretical world has anything to do with the real world. Also, it seems to me that culture doesn’t end up contained within a single project; Linux depends on GCC, for instance, so the Linux people have to interact with the GCC people. Which means that culture will bleed over. I was recently at a technical conference and a guy there said, “yeah, security is perhaps the only community that’s less friendly than Linux kernel development.” So now it’s not just one project that’s off-limits, but a whole field.
I also don’t think there are necessarily any actual roar-and-smash types. That is, I think a fair number of people think it’s fun to lay a beatdown on some uppity schmuck. I’ve experienced that myself, certainly. Why else would anyone bother wasting time arguing with creationists? But I’m not sure there are a lot of people who find it fun to be on the losing end of this. This is an extension of Arguments as Soldiers. When you’re having a knock-down, drag-out fight with someone, it’s harder to back down.
Notice that the original example of a person in that category was Mannie O’Kelly—a fictional character.
Put yourself into manager’s shoes
[Linus]:
And I do it partly (mostly) because it’s who I am, and partly because I honestly despise being subtle or “nice”.
(later in that email, he does give a nod to effectiveness, but that doesn’t seem to be his primary motivator).
I think it remains an open question whether Linus’s style is in fact better than the alternative from the “get shit done” perspective. And the original quote implied, without evidence, that in fact it is. Not really sure why this is a “rationality” quote.
Forking is pretty easy—it’s getting people to follow your fork that’s hard.
I also don’t think there are necessarily any actual roar-and-smash types.
Well, there are certainly enough programmers who prefer to discuss code in terms of “only a brain-dead moron could write a library that does foo” or “why is this retarded object making three fucking calls to the database for each invocation”, etc.
And while people generally don’t find it fun to be on the losing side, this does not stop them from seeking and entering competitions and competitive spheres. Consider sports, e.g. boxing or martial arts.
[Linus]: And I do it partly (mostly) because it’s who I am, and partly because I honestly despise being subtle or “nice”.
Steelman this. I am pretty sure that in the North European culture being “subtle or nice” is dangerously close to being dishonest. You do not do anyone a favour by pretending he’s doing OK while in reality he’s clearly not doing OK. There is a difference between being direct and blunt—and being mean and nasty.
I think it remains an open question whether Linus’s style is in fact better than the alternative from the “get shit done” perspective.
As I said, Linus’ style is proven to work. We know it works well. An alternative style might work better or it might not—we don’t know.
I suspect you have a strong prior but no evidence.
[Linus]: And I do it partly (mostly) because it’s who I am, and partly because I honestly despise being subtle or “nice”.
Steelman this. I am pretty sure that in the North European culture being “subtle or nice” is dangerously close to being dishonest. You do not do anyone a favour by pretending he’s doing OK while in reality he’s clearly not doing OK. There is a difference between being direct and blunt—and being mean and nasty.
I don’t understand what you’re saying here. Are you saying that anyone is proposing that Linus to act in a way that he would see as dishonest? Because I don’t think that’s the proposal. Consider the difference between these three statements:
Only a fucking idiot would think it’s OK to frobnicate a beezlebib in the kernel.
It is not OK to frobnicate a beezlebib in the kernel.
I would prefer that you not frobnicate a beezlebib in the kernel.
The first one is rude, the second one is blunt, the third one is subtle/tactful/whatever. Linus appears to think that people are asking for subtle, when instead they’re merely asking for not-rude. Blunt could even be:
When you frobnicate a beezlebib, it fucks the primary hairball inverters, so never do that.
So he doesn’t even have to stop cursing.
As I said, Linus’ style is proven to work. We know it works well. An alternative style might work better or it might not—we don’t know.
There are many FOSS projects that don’t use Linus’s style and do work well. What’s so special about Linux?
I suspect you have a strong prior but no evidence.
I’ve run a free/open source project; I tried to run it in a friendly way, and it worked out well (and continues to do so even after all of the original developers have left).
I can also point to Karl Fogel’s book “Producing Open Source Software”, where he says that rudeness shouldn’t be tolerated. He’s worked on a number of free/open source projects, so he’s had the chance to experience a bunch of different styles.
The first one is rude, the second one is blunt, the third one is subtle/tactful/whatever.
We keep hitting the Typical Mind Fallacy over and over again :-)
Let me offer you my interpretation: the first one is blunt and might or might not be rude, depending on what the social norms and context are (and on whether thinking about frobnicating the beezlebib does provide incontrovertible evidence of severe brain trauma). The second one is not blunt at all, it’s entirely neutral. The third one is a slighly more polite version of neutral. Your fourth example is still neutral, by the way—there’s nothing particularly blunt about explaining why something should not be done (or about using four-letter words, for that matter).
To contrast I’ll offer my examples:
(rude) You are a moron and can’t code your way out of a wet paper bag! Stuff your code where the sun don’t shine and never show it to me again!
(blunt) This is not working and will never work. You need to scrap this entirely and start from scratch.
(subtle) While this is a valuable contribution, we would really appreciate it if you went and twiddled the bogon emitter for us while we try to deal with the beezlebib frobnication on our own.
What’s so special about Linux?
It’s only the most successful open software ever. Otherwise, not much :-P
A more direct approach might be: “no patches which frobnicate a beezlebib will be accepted”.
There are many FOSS projects that don’t use Linus’s style and do work well. What’s so special about Linux?
I would say the size (in terms of SLOC count), scope (everything from TVs to supercomputers), lack of a equivalent substitute (MySQL or Postgres? Apache or Nginx? Linux or… BSD?), importance of correctness (its the kernel, stupid), and commercial involvement (Google, Oracle, etc.) make it very different from most FOSS projects. Mostly I’d say the size, complexity and very low tolerance of bugs.
I have no idea if Linus’s attitude is helpful or not. I tend to think he could do better with more direct, polite approaches like the above, but I don’t hold that belief very strongly.
Posts like this encourage me to remark that I want to have a website where I feel free to respond to others’ actual words, not by how I’d rationalize those words if I were personally committed to them.
I think it remains an open question whether Linus’s style is in fact better than the alternative from the “get shit done” perspective. And the original quote implied, without evidence, that in fact it is.
I agree. My further comments shouldn’t detract from this fact.
Creating a project is easy—forking is hard. And nobody wants to create a new kernel from scratch. Kernel hackers don’t really have a lot of options.
I don’t agree. Every CS student and their mother wants to write their own OS. There are alot [of] projects out there.
As to the effectiveness of the community, there’s an important datapoint. BSD came before Linux, but Linux took over the world. I think this is generally attributed to a more vibrant community of developers.
I think some of it might be a case of the “Typical Mind Fallacy”. Maybe if Linus yelled at you, you wouldn’t be bothered at all. But I know that my day would be ruined, and I would be less productive all week.
The right comparison is to compare that to how much you’d be bothered if you had to clean up the mess left by an incompetent coworker. Or having to deal with an incompetent bogon in middle management.
The right comparison is to compare that to how much you’d be bothered if you had to clean up the mess left by an incompetent coworker. Or having to deal with an incompetent bogon in middle management.
Unsurprisingly, I’ve had to deal with both of these things. It has never seemed to me that yelling at someone could make them more competent. Educating them, or firing them and replacing them seems like a better plan.
No, the issue is whether Linus’s yelling is useful, or, whether yelling is generally useful enough in free/open source projects that it outweighs the costs. Specifically, whether “Let’s drive away people unwilling to adopt that “git’r’done” attitude with withering scorn, rather than waste our time pacifying tender-minded ninnies and grievance collectors. That way we might continue to actually, you know, get stuff done.” is good or bad advice.
You should be even more suspicious, then, of Linus saying that it’s necessary and proper, given that he’s said that he, personally, does like it.
Do you think we have a basic difference in values or there’s some evidence which might push one of us towards the other one’s position?
He has the huge advantage in that he actually delivered and continues to deliver. His method is known to work. Beware the nirvana fallacy.
That’s a pretty good question.
Hypothesis: I think some of it might be a case of the “Typical Mind Fallacy”. Maybe if Linus yelled at you, you wouldn’t be bothered at all. But I know that my day would be ruined, and I would be less productive all week. So I assume that many people are like me, and you assume that many people are like you.
I would be curious about a controlled experiment, where free/open source project leaders were told to act more/less like Linus for a month to see what would happen. But I guess that’s pretty unlikely to happen. And one confounder is that a lot of people might have already left (or never joined) the free/open source community because of attitudes like Linus’s. We could measure project popularity (say, by number of stars on github) against some rating of a project’s friendliness.
We might also survey programmers in general about what forces do/don’t encourage them to work on specific free/open source projects.
I’m sure there are studies available of what sorts of management are effective generally. I’ll ask my MBA friend. I did a two-minute Google search for studies about what cause people to leave their jobs generally, but found a such a variety of conflicting data that I decided it would need more time than I have.
These things could definitely influence me to change my mind.
I also think there might be a value difference, in that I do value fun pretty highly. That’s especially true in the free/open source world, where nobody’s getting rich, and where a lot of people are volunteers (this last is less true on Linux than on some other projects, but perhaps part of that is that all of the volunteers have been driven away)? But in general, I would like to enjoy the thing I spent eight (or twelve) hours a day on. And if even if this did make me somewhat less productive than I would be if I was less happy, I don’t really mind that much.
Yes, I think the Typical Mind Fallacy plays some role in this. But then let’s explicitly go around it. Let’s postulate that the population of, say, qualified programmers, is diverse. Some are shy wallflowers, wilting from any glance they perceive as disapproving, some thrive in a rough-and-tumble environments where you prove your solution is better by smashing your opponent into bits. Most are somewhere in between.
This diverse population would self-sort by preferences—the wallflowers would gravitate towards polite, supportive, never-a-harsh-word environments (in our case, OSS projects), while the roar-and-smash types will gravitate towards the get-it-done-NOW-you-maggot environments. Since OSS projects are easy to create and it’s easy for developers to move from project to project, the entire system should evolve towards an equilibrium where most people find the environment they’re comfortable with and stick with it.
Now, that seems to me a fine way for the world to work. But would you object to such a state of the world, after all, there are some projects there which are “mean” and where you (and likely some other people) would be uncomfortable and unproductive?
Oh, there are piles and piles of those. The only problem is, they all come to different conclusions (with a strong dependency on the decade in which the study was done).
Put yourself into manager’s shoes and consider the difference between instrumental and terminal values.
You, an employee/contributor, value fun highly. That is a terminal value for you. Being productive is a secondary goal and may also be an instrumental value (some but not all people are not having fun if they see themselves as being unproductive).
Now, for a manager, the fun of his employees/contributors/developers is NOT a terminal value. It’s only an instrumental value, the true terminal value is to Get Shit Done.
Do you see how that leads to different perspectives?
Creating projects is easy; forking is hard. And nobody wants to create a new kernel from scratch. Kernel hackers don’t really have a lot of options. So I don’t think your theoretical world has anything to do with the real world. Also, it seems to me that culture doesn’t end up contained within a single project; Linux depends on GCC, for instance, so the Linux people have to interact with the GCC people. Which means that culture will bleed over. I was recently at a technical conference and a guy there said, “yeah, security is perhaps the only community that’s less friendly than Linux kernel development.” So now it’s not just one project that’s off-limits, but a whole field.
I also don’t think there are necessarily any actual roar-and-smash types. That is, I think a fair number of people think it’s fun to lay a beatdown on some uppity schmuck. I’ve experienced that myself, certainly. Why else would anyone bother wasting time arguing with creationists? But I’m not sure there are a lot of people who find it fun to be on the losing end of this. This is an extension of Arguments as Soldiers. When you’re having a knock-down, drag-out fight with someone, it’s harder to back down.
Notice that the original example of a person in that category was Mannie O’Kelly—a fictional character.
[Linus]:
(later in that email, he does give a nod to effectiveness, but that doesn’t seem to be his primary motivator).
I think it remains an open question whether Linus’s style is in fact better than the alternative from the “get shit done” perspective. And the original quote implied, without evidence, that in fact it is. Not really sure why this is a “rationality” quote.
Forking is pretty easy—it’s getting people to follow your fork that’s hard.
Well, there are certainly enough programmers who prefer to discuss code in terms of “only a brain-dead moron could write a library that does foo” or “why is this retarded object making three fucking calls to the database for each invocation”, etc.
And while people generally don’t find it fun to be on the losing side, this does not stop them from seeking and entering competitions and competitive spheres. Consider sports, e.g. boxing or martial arts.
Steelman this. I am pretty sure that in the North European culture being “subtle or nice” is dangerously close to being dishonest. You do not do anyone a favour by pretending he’s doing OK while in reality he’s clearly not doing OK. There is a difference between being direct and blunt—and being mean and nasty.
As I said, Linus’ style is proven to work. We know it works well. An alternative style might work better or it might not—we don’t know.
I suspect you have a strong prior but no evidence.
I don’t understand what you’re saying here. Are you saying that anyone is proposing that Linus to act in a way that he would see as dishonest? Because I don’t think that’s the proposal. Consider the difference between these three statements:
Only a fucking idiot would think it’s OK to frobnicate a beezlebib in the kernel.
It is not OK to frobnicate a beezlebib in the kernel.
I would prefer that you not frobnicate a beezlebib in the kernel.
The first one is rude, the second one is blunt, the third one is subtle/tactful/whatever. Linus appears to think that people are asking for subtle, when instead they’re merely asking for not-rude. Blunt could even be:
When you frobnicate a beezlebib, it fucks the primary hairball inverters, so never do that.
So he doesn’t even have to stop cursing.
There are many FOSS projects that don’t use Linus’s style and do work well. What’s so special about Linux?
I’ve run a free/open source project; I tried to run it in a friendly way, and it worked out well (and continues to do so even after all of the original developers have left).
I can also point to Karl Fogel’s book “Producing Open Source Software”, where he says that rudeness shouldn’t be tolerated. He’s worked on a number of free/open source projects, so he’s had the chance to experience a bunch of different styles.
We keep hitting the Typical Mind Fallacy over and over again :-)
Let me offer you my interpretation: the first one is blunt and might or might not be rude, depending on what the social norms and context are (and on whether thinking about frobnicating the beezlebib does provide incontrovertible evidence of severe brain trauma). The second one is not blunt at all, it’s entirely neutral. The third one is a slighly more polite version of neutral. Your fourth example is still neutral, by the way—there’s nothing particularly blunt about explaining why something should not be done (or about using four-letter words, for that matter).
To contrast I’ll offer my examples:
(rude) You are a moron and can’t code your way out of a wet paper bag! Stuff your code where the sun don’t shine and never show it to me again!
(blunt) This is not working and will never work. You need to scrap this entirely and start from scratch.
(subtle) While this is a valuable contribution, we would really appreciate it if you went and twiddled the bogon emitter for us while we try to deal with the beezlebib frobnication on our own.
It’s only the most successful open software ever. Otherwise, not much :-P
I recently came across this, which seems to have some evidence in my favor (and some irrelevant stuff): http://www.bakadesuyo.com/2013/10/extraordinary-leader/
A more direct approach might be: “no patches which frobnicate a beezlebib will be accepted”.
I would say the size (in terms of SLOC count), scope (everything from TVs to supercomputers), lack of a equivalent substitute (MySQL or Postgres? Apache or Nginx? Linux or… BSD?), importance of correctness (its the kernel, stupid), and commercial involvement (Google, Oracle, etc.) make it very different from most FOSS projects. Mostly I’d say the size, complexity and very low tolerance of bugs.
I have no idea if Linus’s attitude is helpful or not. I tend to think he could do better with more direct, polite approaches like the above, but I don’t hold that belief very strongly.
Posts like this encourage me to remark that I want to have a website where I feel free to respond to others’ actual words, not by how I’d rationalize those words if I were personally committed to them.
I agree. My further comments shouldn’t detract from this fact.
I don’t agree. Every CS student and their mother wants to write their own OS. There are a lot [of] projects out there.
As to the effectiveness of the community, there’s an important datapoint. BSD came before Linux, but Linux took over the world. I think this is generally attributed to a more vibrant community of developers.
The right comparison is to compare that to how much you’d be bothered if you had to clean up the mess left by an incompetent coworker. Or having to deal with an incompetent bogon in middle management.
Unsurprisingly, I’ve had to deal with both of these things. It has never seemed to me that yelling at someone could make them more competent. Educating them, or firing them and replacing them seems like a better plan.