Linux kernel seems to me a quite well-managed operation (of herding cats, too!) that doesn’t waste lots of time on flame wars.
I don’t follow kernel development much. Recently, a colleague pointed me to the rdrand instruction. I was curious about Linux kernel support for it, and I found this thread:
http://thread.gmane.org/gmane.linux.kernel/1173350
Notice that Linus spends a bunch of time (a) flaming people and (b) being wrong about how crypto works (even though the issue was not relevant to the patch).
Is this typical of the linux-kernel mailing list? I decided to look at the latest hundred messages. I saw some minor rudeness, but nothing at that level. Of course, none of these messages were from Linus. But I didn’t have to go back more than a few days to find Linus saying things like, “some ass-wipe inside the android team.” Imagine if you were that Android developer, and you were reading that email? Would that make you want to work on Linux? Or would that make you want to go find a project where the leader doesn’t shit on people?
Here’s a revealing quote from one recent message from Linus: “Otherwise I’ll have to start shouting at people again.” Notice that Linus perceives shouting as a punishment. He’s right to do so, as that’s how people take it. Sure, “don’t get offended”, “git ’er done”, etc—but realistically, developers are human and don’t necessarily have time to do a bunch of CBT so that they can brush off insults.
Some people, I guess, can continue to be productive after their project leader insults them. The rest either have periodic drops in productivity, or choose to work on projects which are run by people willing to act professionally.
tl;dr: Would you put up with a boss who frequently called you an idiot in public?
Would you put up with a boss who frequently called you an idiot in public?
Actually, that depends.
Mostly that depends on what the intent (and context) of calling me an idiot in public is. If the intent is, basically, power play—the goal is to belittle me and elevate himself, reassert his alpha-ness, shift blame, provide an outlet for his desire to inflict pain on somebody—then no, I’m not going to put up with it.
On the other hand, if this is all a part of a culturally normal back-and-forth, if all the boss wants is for me to sit up and take notice, if I can without repercussions reply to him in public pointing out that it’s his fat head that gets into his way of understanding basic things like X, Y, and Z and that he’s wrong—I’m fine with that.
The microcultures of joking-around-with-insults exist for good reasons. Nobody forces you to like them, but you want to shut them down and that seems rather excessive to me.
I think it’s pretty clear that Linus is more on the power-play end of the spectrum. Notice his comment above about the Android developer; that’s not someone who is part of his microculture (the person in question was a developer on the Android email client, not a kernel hacker). And again, the shouting-as-punishment thing shows that Linus understands the effect that he has, but doesn’t care.
Also, Linus, as the person in the position of power, isn’t in a position to judge whether his culture is fun. Of course it’s fun for him, because he’s at the top. “I was just joking around” is always what bullies say when they get called out. The real question is whether it’s fun for others. The recent discussion (that presumably sparked the quotes in this thread) was started by someone who didn’t find it fun. So even if there are some “good reasons” (none of which you have named), they don’t necessarily outweigh the reasons not to have such a culture.
I think it’s pretty clear that Linus is more on the power-play end of the spectrum.
That’s not clear to me at all.
Note that management of any kind involves creating incentives for your employees/subordinates/those-who-listen-to-you. The incentives include both carrots and sticks and sticks are punishments and are meant to be so. If you want to talk about carrots-only management styles, well, that’s a different discussion.
The real question is whether it’s fun for others.
I disagree. You treat fun and enjoyment of working at some place as the ultimate, terminal value. It is not. The goal of working is to produce, to create, to make. Whether it’s “fun” is subordinate to that. Sure, there are feedback loops, but organizations which exist for the benefit of their employees (to make their life comfortable and “fun”) are not a good thing.
The incentives include both carrots and sticks and sticks are punishments and are meant to be so. If you want to talk about carrots-only management styles, well, that’s a different discussion.
For what it’s worth, I’ve never worked at a place that successfully used aversive stimulus. And, since the job market for programmers is so hot, I can’t imagine that anyone would willingly do so (outside the games industry, which is a weird case). This is especially true of kernel hackers, who are all highly qualified developers who could find work easily.
I disagree. You treat fun and enjoyment of working at some place as the ultimate, terminal value. It is not. The goal of working is to produce, to create, to make. Whether it’s “fun” is subordinate to that. Sure, there are feedback loops, but organizations which exist for the benefit of their employees (to make their life comfortable and “fun”) are not a good thing.
I would point out that Linus Torvalds’s autobiography is called “Just for Fun”. Also, Linus doesn’t have employees. Yes, he does manage Linux, but he doesn’t employ anyone. I also pointed out a number of ways in which Linus’s style was harmful to productivity.
For what it’s worth, I’ve never worked at a place that successfully used aversive stimulus.
Ahem. I think you mean to say that you never touched the electric fence. Doesn’t mean the fence is not there.
Imagine that someone at your workplace decided not to come to work for a week or so, ’cause he didn’t feel like it. What would be the consequences? Are there any, err… “aversive stimuli” in play here?
I can’t imagine that anyone would willingly do so … This is especially true of kernel hackers
No need for imagination. The empirical reality is that a lot of kernel hackers successfully work with Linus and have been doing this for years and years.
Also, Linus doesn’t have employees.
Which means that anyone who doesn’t like his style is free to leave at any time without any consequences in the sense of salary, health insurance, etc. The fact that kernel development goes on and goes on pretty successfully is evidence that your concerns are overblown.
Which means that anyone who doesn’t like his style is free to leave at any time without any consequences in the sense of salary, health insurance, etc. The fact that kernel development goes on and goes on pretty successfully is evidence that your concerns are overblown.
Um, Linux kernel doesn’t work like that. Linus doesn’t “add” anyone to development or “remove” anyone. And I don’t know if companies who pay the developers would be likely to fire them if the developers’ patches start to get rejected on a regular basis.
Oh, and you misquoted your source. It’s not 75% of developers, it’s 75% of the share of kernel development and, of course, some developers are much more prolific than others.
Certainly he and his team are less likely to accept patches from people who they’ve had trouble with in the past? And people who have trouble getting patches accepted (for whatever reason) are probably not going to be paid to continue doing kernel development?
It would surprise me if he’s never outright banned anyone.
Thanks for the correction, edited my comment above.
I don’ t think so—it is a difference in how the world works. Anyone in the world can submit kernel patches. The filtering does not occur at the people level, it occurs at the piece-of-code level.
Linus does not say “I pronounce you a kernel developer” or “You’re no longer a kernel developer”—he says “I accept this patch” or “I do not accept this patch”.
Ahem. I think you mean to say that you never touched the electric fence. Doesn’t mean the fence is not there.
No, I mean that touching the electric fence did not make me a more productive worker.
The fact that kernel development goes on and goes on pretty successfully is evidence that your concerns are overblown.
I’m not saying that Linus’s style will inevitably lead to instant doom. That would be silly. I’m saying that it’s not optimal. Linux hasn’t exactly taken over the world yet, so there’s definitely room for improvement.
It’s important to distinguish between Linux the operating system kernel, and the complete system of GNU+Linux+various graphical interfaces sometimes called “Linux”.
The Linux kernel can also be used with other userspaces, eg. Busybox or Android, and it’s very popular in these combinations on embedded systems and phones/tablets respectively. GNU+Linux is popular on servers. The only area where Linux is unsuccessful is desktops, so it’s unfortunate that desktop use is so salient when people talk about “Linux”.
Linus only works on the kernel itself, and that’s making great progress towards taking over the world.
Yes, I used to work for RMS; I am well aware of the difference. I should also note that most of the systems you mention use proprietary kernel modules; it would be better if they didn’t, and perhaps if Linus’s attitude were different, there would be more interest in fixing the problem.
Also, desktops are where I spend most of my time, so I think they still matter a lot.
I use GNU+Linux on the desktop myself, and I share RMS’s goals, although I’m willing to make bigger compromises for the sake of practicality than him. Linus does not share RMS’s goals, so my point is that from Linus’s point of view his management techniques are highly effective.
The only area where Linux is unsuccessful is desktops, so it’s unfortunate that desktop use is so salient when people talk about “Linux”.
Pure hypothesis: Linux being unsuccessful on desktops is not a coincidence, because Linux is written in a low-empathy environment, but writing UI for the general public means that you don’t get to blame users when they don’t like your software.
Possible test: Firefox is fairly good open source software for the general public. What’s the culture at Mozilla/Firefox like for the programmers?
Pure hypothesis: Linux being unsuccessful on desktops is not a coincidence, because Linux is written in a low-empathy environment
Um. The claim by novalis is that the Linux kernel is written in a “low-empathy” environment. The kernel has nothing to do with UI which, along with most applications, is quite separate. Linus has no influence over UI design or user-friendliness in general.
There are two main GUI environments on Linux—Gnome and KDE. I don’t know what the atmosphere is for developers inside these organizations. I think there is a fair amount of infighting and office politics, but I have no clue if they are polite and tactful about it.
It’s evidence in the same sense that the name of product like Repairwear Laser Focus Wrinkle & UV Damage Corrector is evidence that this face cream laser focuses your wrinkles and corrects your UV damage 8-/
“Ubuntu”, by the way, means a lot more than friendliness.
touching the electric fence did not make me a more productive worker.
How do you know?
Well, I can tell you that afterwards, I felt like shit and didn’t get much done for a while. Or I started looking for a new job (whether or not I ended up taking one, this takes time and mental energy away from my current job). And getting yelled at has never seemed to me to correlate with me actually being wrong, so I’m not clear on how it would have changed my behavior.
I’m saying that it’s not optimal.
How do you know? (other than in a trivial sense that anything in real life is not going to be optimal)
You’re making naked assertions without providing evidence.
Upthread, you linked to an article which quotes someone saying, “Thanks for standing up for politeness/respect. If it works, I’ll start doing Linux kernel dev. It’s been too scary for years.” I also pointed out, in my discussion of the rdrand thread, that Linus wastes a bunch of time by being cantankerous. And speaking of the rdrand thread (which I swear I didn’t choose as my example for this reason; I really did just stumble across it a few weeks ago), your linked article also quoted Matt Mackall, whom Linus yelled at in that thread: he’s no longer a kernel hacker. Is Linus’s attitude why? Well, he’s complained about Linus’s attitude before, and shortly after that thread, he ceased posting on LKML. And he’s probably pretty smart—he wrote Mercurial -- so it’s a shame for the kernel to lose him.
I can tell you that I, personally, would be uninterested in working under Linus, although kernel development isn’t really my area of expertise, so maybe I don’t count.
getting yelled at has never seemed to me to correlate with me actually being wrong
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.
The secondary issue is whether Linus runs kernel development in a good/proper/desirable/productive way. The major question here is the metric—how do we decide what is a “good/… way”. From your point of view, if you define a good way as “fun” for developers, then sure, it probably is possible to run the kernel in a more fun way.
From my point of view, the proof of the pudding is in the eating. Is the kernel a good piece of software? I would argue that it is, and that it is a remarkably successful piece of software. More, I would argue that Linus deserves a lot of credit for making it so. 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”.
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.
Bill Gates failed to create an organization that would thrive in his absence. We’ll see how Steve Jobs did in a few more years (it seems likely that he did better, but he also had the famous “reality distortion field”, which Linus doesn’t). Steve Jobs also got kicked out of his own company for a bunch of years.
Steve Jobs also got kicked out of his own company for a bunch of years.
During which time the company tanked.
In any case, your argument was that Linus might have better succeeded in “taking over the world” if he had used a less confrontational style. My point is that the people who did “take over the world” used the same style.
Note that management of any kind involves creating incentives for your employees/subordinates/those-who-listen-to-you. The incentives include both carrots and sticks and sticks are punishments and are meant to be so.
Punishments seem to have rapidly decreasing returns, especially given the availability of alternatives that are less abusive. Otherwise we’d threaten to people when we wanted to make them more productive, rather than rewarding them—which most of the time we don’t above a low level of performance.
This is a shift of topic—heaping scorn is one particular sort of punishment. Firing someone who isn’t working after having given them several warnings is a punishment, but it isn’t the same as a high-flame environment.
Punishments seem to have rapidly decreasing returns, especially given the availability of alternatives that are less abusive.
I don’t understand the point that you are arguing.
Basically all human groups—workplaces, societies, countries, knitting circles—have punishments for members who do unacceptable things. The punishments range from a stern talking to, ostracism, or ejection from the group to imprisonment, torture, and killing.
In which real-life work setting you will not be punished for arbitrarily not coming to work, for consistently turning in shoddy/unacceptable results, for maliciously disrupting the workplace?
Of course all societies have punishments, but that doesn’t address the point you were responding to which was that Linus was more on the power-play end of the spectrum. The ratio of reward to punishment, your leverage as determined by the availability of viable alternatives, matters in determining which end of that spectrum you’re on.
And that has implications for the quality of work you can get from people—while you may be punished for blatantly shoddy work, you’re not going to be punished for not doing your best if people don’t know what that is. The threat of being fired can only make people work so hard.
Linus was more on the power-play end of the spectrum. The ratio of reward to punishment, your leverage as determined by the availability of viable alternatives, matters in determining which end of that spectrum you’re on.
Um. How do you determine the ratio of reward to punishment for Linux kernel developers?
Also whether you engage in power play is determined by your intent, not by ratio or leverage. Those determine the consequences (accept/revolt/escape) but not whether the original critique was legitimate or purely status-gaining.
You bring up some good points. I would go so far as to say that given a) the amount of subjective interpretation from the observers, b) the limited number of first-hand witnesses, and c) the difficulty of comparing the small number of sample societies for which we have observers, that in the absence of evidence roughly the strength of a formal study, this thread may not be able to reach an agreeable conclusion for lack of data.
The claim, as I understand it, is that the culture trades off fun for productivity. A common example given is Apple, where Steve Jobs was a hawk that excoriated his underlings, and thus induced them to create beautiful, world-conquering products.
I don’t follow kernel development much. Recently, a colleague pointed me to the rdrand instruction. I was curious about Linux kernel support for it, and I found this thread: http://thread.gmane.org/gmane.linux.kernel/1173350
Notice that Linus spends a bunch of time (a) flaming people and (b) being wrong about how crypto works (even though the issue was not relevant to the patch).
Is this typical of the linux-kernel mailing list? I decided to look at the latest hundred messages. I saw some minor rudeness, but nothing at that level. Of course, none of these messages were from Linus. But I didn’t have to go back more than a few days to find Linus saying things like, “some ass-wipe inside the android team.” Imagine if you were that Android developer, and you were reading that email? Would that make you want to work on Linux? Or would that make you want to go find a project where the leader doesn’t shit on people?
Here’s a revealing quote from one recent message from Linus: “Otherwise I’ll have to start shouting at people again.” Notice that Linus perceives shouting as a punishment. He’s right to do so, as that’s how people take it. Sure, “don’t get offended”, “git ’er done”, etc—but realistically, developers are human and don’t necessarily have time to do a bunch of CBT so that they can brush off insults.
Some people, I guess, can continue to be productive after their project leader insults them. The rest either have periodic drops in productivity, or choose to work on projects which are run by people willing to act professionally.
tl;dr: Would you put up with a boss who frequently called you an idiot in public?
Actually, that depends.
Mostly that depends on what the intent (and context) of calling me an idiot in public is. If the intent is, basically, power play—the goal is to belittle me and elevate himself, reassert his alpha-ness, shift blame, provide an outlet for his desire to inflict pain on somebody—then no, I’m not going to put up with it.
On the other hand, if this is all a part of a culturally normal back-and-forth, if all the boss wants is for me to sit up and take notice, if I can without repercussions reply to him in public pointing out that it’s his fat head that gets into his way of understanding basic things like X, Y, and Z and that he’s wrong—I’m fine with that.
The microcultures of joking-around-with-insults exist for good reasons. Nobody forces you to like them, but you want to shut them down and that seems rather excessive to me.
I think it’s pretty clear that Linus is more on the power-play end of the spectrum. Notice his comment above about the Android developer; that’s not someone who is part of his microculture (the person in question was a developer on the Android email client, not a kernel hacker). And again, the shouting-as-punishment thing shows that Linus understands the effect that he has, but doesn’t care.
Also, Linus, as the person in the position of power, isn’t in a position to judge whether his culture is fun. Of course it’s fun for him, because he’s at the top. “I was just joking around” is always what bullies say when they get called out. The real question is whether it’s fun for others. The recent discussion (that presumably sparked the quotes in this thread) was started by someone who didn’t find it fun. So even if there are some “good reasons” (none of which you have named), they don’t necessarily outweigh the reasons not to have such a culture.
That’s not clear to me at all.
Note that management of any kind involves creating incentives for your employees/subordinates/those-who-listen-to-you. The incentives include both carrots and sticks and sticks are punishments and are meant to be so. If you want to talk about carrots-only management styles, well, that’s a different discussion.
I disagree. You treat fun and enjoyment of working at some place as the ultimate, terminal value. It is not. The goal of working is to produce, to create, to make. Whether it’s “fun” is subordinate to that. Sure, there are feedback loops, but organizations which exist for the benefit of their employees (to make their life comfortable and “fun”) are not a good thing.
For what it’s worth, I’ve never worked at a place that successfully used aversive stimulus. And, since the job market for programmers is so hot, I can’t imagine that anyone would willingly do so (outside the games industry, which is a weird case). This is especially true of kernel hackers, who are all highly qualified developers who could find work easily.
I would point out that Linus Torvalds’s autobiography is called “Just for Fun”. Also, Linus doesn’t have employees. Yes, he does manage Linux, but he doesn’t employ anyone. I also pointed out a number of ways in which Linus’s style was harmful to productivity.
Ahem. I think you mean to say that you never touched the electric fence. Doesn’t mean the fence is not there.
Imagine that someone at your workplace decided not to come to work for a week or so, ’cause he didn’t feel like it. What would be the consequences? Are there any, err… “aversive stimuli” in play here?
No need for imagination. The empirical reality is that a lot of kernel hackers successfully work with Linus and have been doing this for years and years.
Which means that anyone who doesn’t like his style is free to leave at any time without any consequences in the sense of salary, health insurance, etc. The fact that kernel development goes on and goes on pretty successfully is evidence that your concerns are overblown.
As of 2012-04-16, 75% of kernel development is paid. I would assume those developers would find their jobs in jeopardy if Linus removed them from development.
Um, Linux kernel doesn’t work like that. Linus doesn’t “add” anyone to development or “remove” anyone. And I don’t know if companies who pay the developers would be likely to fire them if the developers’ patches start to get rejected on a regular basis.
Oh, and you misquoted your source. It’s not 75% of developers, it’s 75% of the share of kernel development and, of course, some developers are much more prolific than others.
Certainly he and his team are less likely to accept patches from people who they’ve had trouble with in the past? And people who have trouble getting patches accepted (for whatever reason) are probably not going to be paid to continue doing kernel development?
It would surprise me if he’s never outright banned anyone.
Thanks for the correction, edited my comment above.
You are describing a (dubious) difference in word use, not a difference in how the world works.
I don’ t think so—it is a difference in how the world works. Anyone in the world can submit kernel patches. The filtering does not occur at the people level, it occurs at the piece-of-code level.
Linus does not say “I pronounce you a kernel developer” or “You’re no longer a kernel developer”—he says “I accept this patch” or “I do not accept this patch”.
No, I mean that touching the electric fence did not make me a more productive worker.
I’m not saying that Linus’s style will inevitably lead to instant doom. That would be silly. I’m saying that it’s not optimal. Linux hasn’t exactly taken over the world yet, so there’s definitely room for improvement.
It’s important to distinguish between Linux the operating system kernel, and the complete system of GNU+Linux+various graphical interfaces sometimes called “Linux”.
The Linux kernel can also be used with other userspaces, eg. Busybox or Android, and it’s very popular in these combinations on embedded systems and phones/tablets respectively. GNU+Linux is popular on servers. The only area where Linux is unsuccessful is desktops, so it’s unfortunate that desktop use is so salient when people talk about “Linux”.
Linus only works on the kernel itself, and that’s making great progress towards taking over the world.
Yes, I used to work for RMS; I am well aware of the difference. I should also note that most of the systems you mention use proprietary kernel modules; it would be better if they didn’t, and perhaps if Linus’s attitude were different, there would be more interest in fixing the problem.
Also, desktops are where I spend most of my time, so I think they still matter a lot.
I use GNU+Linux on the desktop myself, and I share RMS’s goals, although I’m willing to make bigger compromises for the sake of practicality than him. Linus does not share RMS’s goals, so my point is that from Linus’s point of view his management techniques are highly effective.
Pure hypothesis: Linux being unsuccessful on desktops is not a coincidence, because Linux is written in a low-empathy environment, but writing UI for the general public means that you don’t get to blame users when they don’t like your software.
Possible test: Firefox is fairly good open source software for the general public. What’s the culture at Mozilla/Firefox like for the programmers?
Um. The claim by novalis is that the Linux kernel is written in a “low-empathy” environment. The kernel has nothing to do with UI which, along with most applications, is quite separate. Linus has no influence over UI design or user-friendliness in general.
There are two main GUI environments on Linux—Gnome and KDE. I don’t know what the atmosphere is for developers inside these organizations. I think there is a fair amount of infighting and office politics, but I have no clue if they are polite and tactful about it.
You know what Ubuntu is named after, BTW?
Yes, I do, though I don’t see the relevance.
(Evidence about whether the Ubuntu people are ‘friendly’.)
It’s evidence in the same sense that the name of product like Repairwear Laser Focus Wrinkle & UV Damage Corrector is evidence that this face cream laser focuses your wrinkles and corrects your UV damage 8-/
“Ubuntu”, by the way, means a lot more than friendliness.
How do you know?
How do you know? (other than in a trivial sense that anything in real life is not going to be optimal)
You’re making naked assertions without providing evidence.
Well, I can tell you that afterwards, I felt like shit and didn’t get much done for a while. Or I started looking for a new job (whether or not I ended up taking one, this takes time and mental energy away from my current job). And getting yelled at has never seemed to me to correlate with me actually being wrong, so I’m not clear on how it would have changed my behavior.
Upthread, you linked to an article which quotes someone saying, “Thanks for standing up for politeness/respect. If it works, I’ll start doing Linux kernel dev. It’s been too scary for years.” I also pointed out, in my discussion of the rdrand thread, that Linus wastes a bunch of time by being cantankerous. And speaking of the rdrand thread (which I swear I didn’t choose as my example for this reason; I really did just stumble across it a few weeks ago), your linked article also quoted Matt Mackall, whom Linus yelled at in that thread: he’s no longer a kernel hacker. Is Linus’s attitude why? Well, he’s complained about Linus’s attitude before, and shortly after that thread, he ceased posting on LKML. And he’s probably pretty smart—he wrote Mercurial -- so it’s a shame for the kernel to lose him.
I can tell you that I, personally, would be uninterested in working under Linus, although kernel development isn’t really my area of expertise, so maybe I don’t count.
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.
The secondary issue is whether Linus runs kernel development in a good/proper/desirable/productive way. The major question here is the metric—how do we decide what is a “good/… way”. From your point of view, if you define a good way as “fun” for developers, then sure, it probably is possible to run the kernel in a more fun way.
From my point of view, the proof of the pudding is in the eating. Is the kernel a good piece of software? I would argue that it is, and that it is a remarkably successful piece of software. More, I would argue that Linus deserves a lot of credit for making it so. 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”.
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.
The issue is whether the person in question would have been a productive contributor.
Well Bill Gates and Steve Jobs have similar reputations.
Bill Gates failed to create an organization that would thrive in his absence. We’ll see how Steve Jobs did in a few more years (it seems likely that he did better, but he also had the famous “reality distortion field”, which Linus doesn’t). Steve Jobs also got kicked out of his own company for a bunch of years.
During which time the company tanked.
In any case, your argument was that Linus might have better succeeded in “taking over the world” if he had used a less confrontational style. My point is that the people who did “take over the world” used the same style.
Punishments seem to have rapidly decreasing returns, especially given the availability of alternatives that are less abusive. Otherwise we’d threaten to people when we wanted to make them more productive, rather than rewarding them—which most of the time we don’t above a low level of performance.
This is a shift of topic—heaping scorn is one particular sort of punishment. Firing someone who isn’t working after having given them several warnings is a punishment, but it isn’t the same as a high-flame environment.
I don’t understand the point that you are arguing.
Basically all human groups—workplaces, societies, countries, knitting circles—have punishments for members who do unacceptable things. The punishments range from a stern talking to, ostracism, or ejection from the group to imprisonment, torture, and killing.
In which real-life work setting you will not be punished for arbitrarily not coming to work, for consistently turning in shoddy/unacceptable results, for maliciously disrupting the workplace?
Of course all societies have punishments, but that doesn’t address the point you were responding to which was that Linus was more on the power-play end of the spectrum. The ratio of reward to punishment, your leverage as determined by the availability of viable alternatives, matters in determining which end of that spectrum you’re on.
And that has implications for the quality of work you can get from people—while you may be punished for blatantly shoddy work, you’re not going to be punished for not doing your best if people don’t know what that is. The threat of being fired can only make people work so hard.
Um. How do you determine the ratio of reward to punishment for Linux kernel developers?
Also whether you engage in power play is determined by your intent, not by ratio or leverage. Those determine the consequences (accept/revolt/escape) but not whether the original critique was legitimate or purely status-gaining.
You bring up some good points. I would go so far as to say that given a) the amount of subjective interpretation from the observers, b) the limited number of first-hand witnesses, and c) the difficulty of comparing the small number of sample societies for which we have observers, that in the absence of evidence roughly the strength of a formal study, this thread may not be able to reach an agreeable conclusion for lack of data.
The claim, as I understand it, is that the culture trades off fun for productivity. A common example given is Apple, where Steve Jobs was a hawk that excoriated his underlings, and thus induced them to create beautiful, world-conquering products.
Also that the culture selects for the people who find being productive fun.