On software communities, "Rock star" programmers, and... Linus
blog.samuellevy.com
blog.samuellevy.com
I just want to add that there are plenty of outstanding engineers with very high standards who lead projects without going on the kinds of abusive rants that Linus is known for. For example: Roberto Ierusalimschy (Lua), Matz (Ruby), Ian Lance Taylor (Binutils, GCC, Gold linker), Shawn Hargreaves (Allegro, works at Microsoft now), Jeff Dean & Sanjay Ghemawat (two of Google's most senior engineers), just to name a few.
These guys don't compromise their opinions or let crap into the code-base just to be nice. But they're all really nice guys who don't rip into people for being wrong. When you see messages from them on a mailing list, you get a warm feeling because you know they are going to be insightful, accurate, terse, helpful, and friendly.
Some people like the machismo that comes from people like Linus. It's like watching superhero movies and rooting for the guy who kicks ass against the bad guys. But I think ultimately this is not a healthy way to lead a community. If you speak in a way that triggers people's defense mechanisms, you make it harder to rationally evaluate the issues. If you ridicule people for their opinions, you aren't giving them an out that lets them change their mind later; a person is inclined to dig their heels in rather than look foolish.
Could he ignore it? Perhaps. I prefer that he'll let you know, in no uncertain terms, to go away.
These rants aren't actually that frequent, but you'd think that they were constant from the way you hear about them.
It's not really about having firm opinions without being abusive. It's about being called abusive for having firm opinions.
Avoiding coarse language does not mean you're not being snide or offensive, and people hiding snide commentary in nice prose is one of my pet hates.
Your interpretation of these sentences only interprets the basic fact being communicated and discards all the other aspects of the communication. Interestingly, if that basic fact offends you, then there is nothing words can do, if you aren't sensitive to what those words are intended to do: soften the impact of criticism. Nuances in words are only meaningless to insensitive receivers.
Also, the two comments I equate are the same in essence - both refuse to discuss the item citing poor quality. There is no real criticism in it, because there is no actual discussion of the merits. Where is the subtlety? What I'm pointing out is that his blanket shut-out without discussion is actually an offensive tactic - one I personally find more offensive than Torvald's direct 'that idea is stupid' style.
To be patronizing and demeaning require intent. You are reading intent in my comment that simply does not exist.
The article is low-quality because it does nothing but tear down strawmen. No one is arguing that people can't have opinions and defend them. No one is arguing that people should accept bad ideas or code just to be nice. No one is arguing that opinion is a democracy (!?). The whole thing is setting up a false dichotomy and then praising Linus and others for not being accommodating wet noodles.
Since the main premise of the essay is this false dichotomy, I noticed that my first sentence disproves this premise by counterexample. I didn't write this comment with a patronizing or demeaning attitude. I can see why you would take it that way, because I can see a person writing a thing like that with a snarky attitude, but I did not.
That intent need not be conscious. Second-class citizens the world over suffer from being demeaned without conscious effort.
What you should have said in your first comment is what you said here: why you think it's low quality. I do not agree with you about your several 'no one is arguing', because I think that they are. If you phrase it the way you do philosophically, of course people will say they're not doing that, but in their criticism of Tovalds (/RMS/whoever), many folks refuse to take content because of context. While no-one is saying he should take bad code to be nice, there is a sentiment of opinion-as-a-democracy.
Your counterexample is just as bad as that you decry because instead of Torvalds style (blunt but informative), you were just saying "I'm ignoring your comments without giving you any reasons". If I submit something and it's rejected, I'd much rather receive the former than the latter, because then at least I know why. Would people really prefer a stoic Torvalds that just stonewalled commits he didn't like without explaining why?
Snideness doesn't require an emotional investment. It does, however, require "slyly disparaging" remarks; you were quite direct.
A few years ago, oh hell looks like more than a decade ago, I was working with a brand new project manager. This guy was pretty fresh, saw the world "manager" and got all glossy eye'd. He walked around the office "cracking the whip" and liked to make statements such as "I'm not here to make friends" and "I'm here to get these projects done".
Do you think, if this was ProjectManagerNews instead of HackerNews this person would be idolized? Would be held in high regard? Would other ProjectManagers stick up for him? What if he led a successful project or two? Would that validate his decision to act that way?
...more importantly: Would you want to work for him? Is success a solid defense on being an asshole?
I'm perfectly happy to sit down and discuss a problem but I've got not time for assholes, tempers, or rockstars for that matter.
In traditional companies there are heirarchies and such to avoid a single person being in charge of so many underlings.
In open source arena, there are parctically no hierarchies and the communication can be initiated by anyone contributing to the project. Sometimes it gets repetitive, sometimes it is not relavent.
Sometimes you have to be an asshole to make the other person to do a bit of self censoring.
I don't think the Open Source model is broken. I actually don't think the Open Source model is any different from a "traditional company". Reputation is used were titles were but in the end, when someone with either says something, people just follow or disagree and leave.
Linus is clearly having a case of XKCD #386 (aka. Someone is wrong on the Internet). There's no excuse for being bored of repeating the same thing and loosing temper. It's still loosing temper. He could as well stay silent after expressing his opinion once. It actually sounds pretty stupid to imagine Linus replying to each email disagreeing to express his opinion.
Some people are talking about the fact that he is opinionated. I don't think so. Theo de Raadt is opinionated. Linus is referred to as "the leader with no personality" in several BSD circles and I can't help but seeing each of his "famous emails" as an attempt at building
The real argument should be "I'm glad <insert name here> is a jerk because it allows him to spend more time doing <insert cool thing here>."
Personally, I think the extra work is worth it, but I'm also not the hub of a project like Linux, a movement like the FSF, or a company like Apple.
Above and beyond everything else, the most interesting question is: Can you get into the hub position without being a prick?
I'm convinced that's a fallacy.
Is "[Github's] pull requests and the online commit editing, are just pure garbage, go file a bug report with them" that much easier to voice than "[Github's] pull requests don't provide the flexibility or formatting we need for the kernel, so please read up on the proper pull request procedure. thanks!"? Plus such courtesy eliminates the inevitable outrage of the anti-prick crusade.
Unfortunately, this behavior is very well established. To take a few random examples of Linus calling people morons (and mentally diseased, etc) before this:
http://lists.gnu.org/archive/html/gnu-misc-discuss/2007-06/m... https://plus.google.com/102150693225130002912/posts/1vyfmNCY... http://yarchive.net/comp/linux/hibernation.html
https://lkml.org/lkml/2012/1/12/13
The point at issue here is not whether Linus is right. Of course he's probably right -- he's Linus. The question is whether he's being civil. In the case you're referring to, pirtlj's comment was also out of line (although ironically apt to this whole discussion). Linus however did not have to respond the way he did.
I don't agree with making direct personal criticisms towards people, but I think it's perfectly acceptable to be very blunt when responding to a bad idea (or patch, or whatever). In my own work I prefer blunt and honest feedback rather than attempts to avoid hurting my emotions. Of course it's always better if that criticism is combined with a constructive suggestions on how to fix the problem.
Honesty and courtesy are not mutually exclusive. "Github pull requests simply do not work for a project the size of the kernel" is terse, blunt, and still polite.
If that's true then fair enough, and I think your version of the comment is a nice middle ground.
I've never actually used github myself, and was only commenting on his tone of voice. If something is truly pure garbage, I think it should be said so, but I guess that's not the case here.
In a field of tit-for-tat always-defect players no longer win.
How you treat the less-talented people is not terribly important (at least not in terms of how it effects the success or failure of your project in a direct fashion); and if you are someone who has very high standards, and someone who does not have very high standards but which insists on wanting to "help", it's not surprising if you will end up giving them a short, even brusque answer.
Dealing with incompetent people who pester you with github pull requests with crap code or crap commit descriptions is an interesting problem. It's not like a startup, where you can fire them, or put them through a very careful interview screening process and refusing to hire the less talented. So combine this tendency towards perfectionism, and interactions with someone who is more persistent than competent. What do you think will happen?
So in answer to your question: Can you get into the hub position while being a prick to talented developers? No, of course not. Do you have to be equally nice and perhaps have to show even more patience to the idiots? No, of course not. And if taking the time to try to educate every single idiot which crosses your path and wants to "help", means that you don't have enough time to push your project ahead, ultimately that can end up hurting the success of your project.
Psychologists have demonstrated that positive reinforcement causes lasting, long-term change, while negative reinforcement only impels temporary change.
Hiring the untalented can seriously demotivate the rest of the team; no company has the obligation to hire untalented people and hope they get better. As saying goes, "hope is not a strategy".
I also appreciate how near this piece comes to channeling Philip Seymour Hoffman's rebuttal to Robin Williams in "Patch Adams."
The two easiest examples to provide are probably Guido van Rossum of Python and Larry Wall of Perl.
On one end is that Linus is God and that he's untouchable. On the other end is that Linus is a asshole that tells everyone off.
The more reasonable middle being that Linus is a pretty smart guy with an incredibly history of accomplishment. He's should be respected and his way of conversing with people is particular to personality. Like, we deal with people with personalities all the time. I don't think Linus has ever, despite all his cursing, personally attacked anyone. He just attacks stupid ideas. I find his comments refreshing. You just need to give him some trust to understand why he is saying whatever he is saying.
I don't think that also implies that people should be unwelcoming or that people should have new ideas/opinions on what should be what. I think that Linus isn't some selfish jerk who doesn't want people to get involved with Linux. I think he just has reasonable expectations and isn't afraid to call you on your shit.
Cool post though.
What if you found out Mozart ate little babies. Some of you would say that his music sucks. Some of you would say "Well, Mozart had to eat babies, to fuel his creative genius!" Few would accept that Mozart was a flipping musical genius who ate babies.
From what I've read online, Linus can be a churlish little bitch, obviously ignoring the issue at hand when it suits him. Sometimes, he calls someone a moron, because they have done something he doesn't like, for some social reason.
But he's a damn fine programmer, and can logic it up with the best of 'em. Often, when you get the the moron blessing from Linus, you have made a grave technical error, and you should be called on it. I wouldn't use the same style as Linus, but ey, to each his own.
Just enjoy him for what he is, and leave the cult of personality stuff for others.
I don't remember when it happened exactly, but I've since grown to the point that I can separate someone's good qualities from their bad. I hate Ben Roethlisberger for his off-field behavior (and because I'm honor bound by being a Ravens fan,) but I won't let that delude me from thinking he isn't a quarterback that most teams would kill to have.
Maybe it's just seeing more and more of your idols fall away as it's hard to find anybody who honestly doesn't do something that irritates you in some way, and in just the way your closest friends do. Everybody put on a pedestal will eventually fall off, or failing that, die.
Anyway, I'm rambling at the moment, but your post touched a chord, and hopefully people can appreciate the truth in it before rushing to rationalize it.
Whatever the reason, the software industry repeatedly explains away debilitating personality flaws as a cute quirk or even a benefit. It reminds me of D1 football coaches defending players who behave like animals off the field.
There is almost never an acceptable reason for being an asshole. It may be worth it to hire an asshole but that does not absolve that person of being an asshole. It just makes them a smart asshole.
This certainly applies to RMS as well.
Somehow it seems that in the flow of news and information we turn all the individuals into characters from a sitcom. Not allowing information through when they are acting "out of character" or even appearing to be quite human.
In almost every instance I've seen, it really is a case that someone has been pestering them, or out to pick a fight, and by the time the argument happens, all the back-story is forgotten (or, in the git-hub pull-request case, deleted by the original author).
The end result is that we have these tabloid-esque articles showing up on blogs telling us that we should be shocked and outraged at the actions of these people because they're "role models" and "shouldn't act like that". It's insane; it truly is.
But if there is one advantage I see from the way he does it is that it drives careless and willfully ignorant people away from his project.
In my personal opinion, I think people are quickly judging Linus' personality based on some texts they see on their computer screen alone.
+1
So called "rock star" developers, particularly the really prolific ones, are busy getting s#!t done. Linux has no shortage off helpful community members who are not otherwise primarily charged with governance of (possibly) the most important open source software ever made.
People who occasionally behave idiotically are not idiots. People who repeatedly behave idiotically are the true idiots.
It's quite another thing to be an idiot. Calling someone an idiot is not OK.
But I've found certain individuals tend to have a disproportionately high number of idiotic ideas. My frustration builds quickly with said individuals, and I'm only human.
I insist, however, upon giving everyone the benefit of the doubt for the first few idiotic ideas, because I expect the same in return. I'm not immune to bouts of idiocy myself.
Arguing rethorics is a fallacy - if you can't prove someone wrong, you raise political correctness issues.
This is because the more I learn about them as people the more likely I am to be disappointed. They will say something stupid. Or, e.g., I find out they like some OS, application or language that I just cannot stand. And I'm like WTF? In short, they are just very different people. I may never meet them in person. It's probably better that I don't. The code I am using as a model might have actually been written a dog, posing as a person, like the one in the NewYorker cartoon. Who knows?
Trying to view these authors as "models" (versus seeing only their _code_ as a model) is just setting yourself up for disappoinment.
That said, some of my all time favorite "coder prose" is the netcat source. Let's face it, programming can be very frustrating. And you need a sense of humor. I wish he was still actively writing and releasing software. And that program still compiles as smooth as any, 15 years later. Great stuff.
I like Linux. I cannot stand Linus, and I'll avoid him at every chance. He relishes in being awful to people and, regardless of his technical contribution, he seems like a terrible person.
They are two tools to do different (even if similar in some ways) task.
So I don't need reasons of why SVN sucks if I have no problem with SVN and I'm not doing distributed develompent.
Just my 2 cents