Linus blasts again
lkml.org
lkml.org
There's a reason Linux is such an awesome system despite its hobbyist nature and previously low budget, and Linus is likely that reason.
EDIT: Linus explains the reasoning behind his method far better than I could: http://marc.info/?l=linux-kernel&m=137392506516022&w=2
I think a lot of people here seem to think that "being rude" is the same as "being Linus". But it actually requires a certain amount of skill to emulate. And if you don't do it properly, you end up being less than useless.
Dunno about his reasoning, though. If someone's attitude is too disruptive to the group, something has to change. Also, "acting professional" is more of a buffer to try to keep people's emotions from going too over the top. Linus seems to be able to control himself and keep the respect of people, but I think we can all agree that there are a good amount of engineers that, if not discouraged from doing so, would go a bit over the top in their actions, thinking they're just being "direct", when in fact they're just harming things.
Acting professional has always been first and foremost about separating issues from people. The clothes seem to help in that for some reason, who knows why. The lying and office politics is just human interaction.
Linus calling out the problem and expressing just how badly the people responsible have fucked up is the best coarse of action. If Linus was just randomly insulting people he'd be an asshole. However, these mistaken commits cost Linus hours of time and probably hours of time for many other people as well, and likely slowed down the release of the kernel.
If the problem doesn't get fixed, the whole Linux project suffers. The only valid management styles here would be removal of everyone involved from the project, or making it as clear as possible how bad the mistake was. Linus chose the second option - and I'd say that is a better option than the 'professional' option of passive-aggressive removal of commit privileges / disciplinary action and starting real problems.
Actually, the move Linus chose seems pretty "professional" in the "this is pretty good management" sense:
- The error was made public so that it won't be repeated
- The exposition was done in such a way to understand exactly how much he doesn't want this to happen again
The "calling it out in front of everybody" thing is.... I don't know how necessary/unnecessary that is. But he doesn't attack the person, he attacked the issue. That's the essential
People don't read 2 decades full of email history before committing to a repo.
The best way to prevent such mistakes is to provide the commit access only to a branch- run your test on top of it, and merge it with the main branch only if all the test cases pass.
>>The exposition was done in such a way to understand exactly how much he doesn't want this to happen again
You can say what you what you want to say, without insulting someone.
>>I don't know how necessary/unnecessary that is. But he doesn't attack the person, he attacked the issue. That's the essential
It doesn't work that way.
You are your work. That's now people take it. Doesn't matter how you want them to take.
And that's not just with programmers. Try doing that with someone like a doctor, or a teacher, or a painter or anyone for that matter. Try telling them, how something they do should be done otherwise and watch how they react.
If you want to talk cultural sensitivity, I'll join you. But my culture includes cursing.
http://marc.info/?l=linux-kernel&m=137391223711946&w=2
tldr: deal with it.
Actually, so-called polite-correctness is exaggerated. Of course, it is unacceptable to, say, constantly remind a person with some disability that he is somehow handicapped, comparing to other - he knows it perfectly well. But there is nothing wrong to point out to a healthy adult, who act like an idiot that he acts like an idiot - it is just an observation of what is.)
In case of a collaborative project, where an act of negligence or lack of attention could cause an unpleasant difficulties, such tactic is quite efficient, especially when you just cannot code-review everything.
Actually, it could be called a culture. Almost every, say, "primitive" community is using the tactics of mocking and languagely abusing each other to, so to speak, stay in a shape. A military unit or criminal gang are canonical examples.) Of course, some constructive feedback must be given, otherwise this would be regarded as offence and severely punished.
Psychology of lower classes isn't that sophisticated, and the methods they use are primitive but efficient to some extent. One could use /b/ as a working model.)
What's with the obsession with his process?
Perhaps the benefit (fewer commits like this) is worth the cost. I suspect it is.
Yes he does:
"now I'll have to call you perkeleen vittupää"
And according to other comments in this thread, it is apparently quite a foul moniker.
This sort of management style has been lauded on HN ("It worked for Jobs!"), but I have to agree with foobarbazqux's comment[1]; I just don't understand why folks are so eager to not only overlook, but to praise this sort of behvior.
Of course, if he also gets angry about not-the-product, he might be horrible to work with--but I've never seen this to be the case; Linus seems like a genuinely nice guy in every other situation.
"perkeleen vittupää"
> All his ire is directed at the commit.
If you made me dinner and I told you over and over that it tasted like crap, I would be attacking you, not the dinner. Plus there's this:
"you clearly never even test-compiled it, did you? ...I don't see how you could have avoided this honking huge warning otherwise."
People don't work like a fixed programmed rule engine. In the real world people have emotions.
an important lesson, learn it fast.
But whereas for most people this is "throw out all unfiltered thoughts, mixing the issue and the person". Linus' style is a lot more deliberate, where by using this direct style to really concentrate on the issue, and get rid of any illusion of passive-agressiveness towards the person.
I think he puts a lot more effort into these than he puts on, and is very aware of how it'll be interpreted. If you want to emulate this style, you have to think about this sort of thing as well.
It's not about being unfiltered, it's about filtering what's actually harmful (personal attacks) instead of what isn't really (your position).
The direct results are not the only things that matters, there's multiples indirect result that are not that great either. Psychological abuse is not acceptable.
You can achieve the same result without these verbal aggression.
If he was shooting people that submitted buggy patches, would you say that was awesome? Obviously not. How is a less violent form of abuse suddenly great?
Lots of shitty solutions are highly effective. Relying on them is the lazy and uncaring way of dealing with your fellow humans.
Our grandparents would slap you in the face for calling this an abuse. Try sitting in a trench with tanks rolling by and bombs falling from the sky during WW2, at 18.
I could go on with examples of what 'emotional abuse' is, but I think you get my point. The submitter fucked up and he got a slap on the wrist. And it was good for the entire community. The 'abused' submitter will probably triple check his commits and will be a better programmer as a result. Everyone wins.
Telling somebody that they are "so fucking sensitive" is abusive. I'd be offended by that comment if I was the recipient of Linus' wrath here.
http://marc.info/?l=linux-kernel&m=137392506516022&w=2
So as far as I'm concerned, the discussion is about "how to work together DESPITE people being different". Not about trying to make everybody please each other. Because I can pretty much guarantee that I'll continue cursing. To me, the discussion would be about how to work together despite these kinds of cultural differences, not about "how do we make everybody nice and sing songs sound the campfire"
This statement is also emotional abuse. Emotional abuse creates psychological pain. Psychological pain creates physical pain. That is all that happens. It's a biological process.
Why is it a problem if I say that I would feel pain in response to somebody's words? This is just a fact I know about myself.
Feeling offended is a buzzword way too often abused for selfish and discriminatory reasons, so don't be surprised many people refuse to accept it as an argument, especially the ones comming from different cultural backgrounds where they weren't indoctrinated by a political correctness bubble.
Yes, I agree that stating an emotion isn't an argument, because it is a subjective truth.
Yes... but even here, context matters.
I do martial arts, and when I get hit in the face while sparring, it's useful feedback and something I can learn from. If my training partners weren't willing to hit me occasionally, they'd be doing me a disservice.
It's normal to have expectations about human behavior, and it's normal to get upset when they aren't met. It's actually healthy to expect our superiors to treat us with civility when we screw up. We expect that from the cops, for example. If your underlings are continually screwing up, this generally indicates a problem with your process. It's similarly healthy to expect colleagues, friends, and partners to support us when an authority has misused their power.
I've sometimes wondered if a case could be made that a society needs an occasional war to put things in perspective.
A couple years ago, I read about a poll that was conducted before elections in some European country (I don't remember which) that found that a large fraction of young people though that the most important issue to them was that candidates would make it easier for them to download free music. This beat issues like unemployment, government corruption, getting out of recession, climate change, the environment, the tensions between immigrants and natives in their country, and their country's participation in things like the war in Afghanistan.
† The proof of this being that different cultures choose wildly different things to be offended about; nobody in America thinks "bloody" or "tabarnac" are offensive, even though we understand exactly the concepts to which the words refer.
- pushed some code that fired warnings all over the place and made the CI server go red on the main platform used out there
- developed said code in vague hopes that it is somehow useful, yet is admittedly "probably not" straight in the commit comment
hence time was 1. developer wasted time 2. team wasted time 3. boss wasted time
I'd expect 2 and 3 to be quite angry, and ultimately 1 to be angry at himself for having wasted everyone's time.
It's not perfect, but you get the idea.
"Your commit broke the build because it contained something you knew was probably not okay. This is costing us money because it wastes everyone's time. If you do it again I'm going to have to revoke some privileges, because it's my responsibility as CEO to keep us afloat. Is there anything I don't understand about what happened so we can prevent this from happening again?"
This is hypothetical of course, a less severe response may be called for, and obviously it would be more of a conversation. It isn't nice and friendly, but it isn't abusive either.
If I got a Linus style dressing down, I would be embarrassed. But I would not feel like I was being treated like a child. I'd feel that I'm being shown respect--it would mean he believes that I do have the knowledge and skill to do it right, and that I just for some reason was a complete idiot in this case, and so all he has to do is let me know just how much it annoyed him and I can take it from there. I would acknowledge that he was right, I was a fucking idiot, and make sure it did not happen again. We'd then both move on, with my only fear being that if I ever receive an award or am given a going away party when I retire or something like that where people might get up and tell embarrassing stories about me, I've given them one more.
http://marc.info/?l=linux-kernel&m=135628421403144&w=2
And here's a rewrite that is shorter, conveys the same information, isn't patronizing, and avoids the "sins" (quotes because we apparently disagree) of the original:
I'm unwilling to discuss this further. The first rule of kernel maintenance is that if a change breaks userland, it's a kernel bug, full stop. WE DO NOT BREAK USERSPACE.
Additionally, commit f0ed2ce840b3 is incorrect. ENOENT isn't a valid ioctl return and never has been. ENOENT is reserved for path operations. ioctl works on descriptors and not paths; the use of ENOENT in this commit is incoherent.
It appears that this same kernel bug has broken all the KDE media applications. As a result, I must apply the fix directly and immediately myself.
Your incorrect patch which broke userspace combined with the confusion you caused by blaming the breakage on some external program is frustrating, and I expect not to have to deal with similar problems in the future.
The two problems I see with the original are:
(1) It's pointlessly emotional to its own detriment ("shut the fuck up" actually carries less information than "I'm unwilling to discuss this further", because "shut the fuck up" lacks finality) --- and is in this regard written in a way that only Linus Torvalds or someone of his status could get away with. It actually diminishes Torvalds --- as does any tirade in which someone simultaneously uses the words "insane", "idiocy", "crap", "fucking", and then... "seriously". No, really, he really means it!
(2) It calls its target names (idiot, incompetent) and does so publicly in front of the whole team, which speaks to a management style driven more by fear than by a shared understanding of goals.
Honestly I don't care how Linus Torvalds manages the Linux kernel, but as a case study for how to manage a development team, this is interesting, more so because you (among the very most level-headed of HN commenters) appear to approve of it!
"What do you think of Linus' management skills?" would be an interesting interview question.
In a boss-employee relationship, the boss is not your friend, so they are an authority figure, much like a parent is an authority figure to a child. So it could be in the nature of the relationship. I wouldn't talk to a friend or coworker like that, I do see how that would be condescending.
It is not easy to lead a group. I used to be the object of similar attacks by a leader that I believe were unjust (because I believe that technically I was right) - but I still think that leaders sometimes have to use this power.
But yeah, I love his style too. It's certainly not for everybody, but he earned it.
According to Google Translate, perkeleen vittupää means the following in Finnish:
http://translate.google.com/?hl=en&tab=wT#fi/en/perkeleen%20...
Also, aren't they called 'Swedish Finns', as they are Finns (Finnish nationality) but speak Swedish?
I can second that as a Pole.
Stranger still, they air The Daily Show here uncensored.
Maybe someone who actually speaks Finnish can enlighten us.
"Perkele" is the archetypal Finnish swearword that's pretty much untranslatable without losing most of its power. "Fucking" seems too mild - perhaps "motherfucking" has some of the same weight behind it. It's not that "perkele" is particularly vulgar - those hard consonants P, R and K just carry some heavy emphasis.
"Vittupää" literally translated means "cunthead". "Vittu" is the most vulgar term in general use for referring to a vulva or a vagina - it is, however, more often used as a generic interjection with most of the semantics and versatility of "fuck".
Around 3 years back I worked under two very technically brilliant people, but their biggest problem was just the kind of stuff you see here. I remember the entire team would change every 6 months. The team was supposed to be some kind of an elite hand picked team from within the whole company, as they were supposed to focus on big revenue based projects. But I saw some awesome people, leave every 3-6 months of joining just because it was impossible to work with those two people. 'Do you know how he behaved yesterday with person X' kind of lunch/coffee table discussions were simply too common.
I recently happened to meet a guy who just left that team. He recalled the impossibility of working with those two people. Something that we both noticed, those two haven't seem to have anything substantial in the past decade. Almost any project that they touch crashes and burns and ever never proceeds anywhere beyond 30-50% mark.
The thing is plain and simple. You have no rights to behave that way with anyone(No matter who you are). Secondly, anybody who is good has no reason to put up with you, Why should they? So the net-net is these are team destroying activities.
If you are good, and then that is that. What can you do without a team in software these days?
Never resort to a impolite public engagement. Your best bet is to be calm(even in case of a big goof up) take the person to a room and explain to him the seriousness of his mistake and help him avoid making such mistakes in the future.
Some of the best lessons I learned was being chewed out by a manager. The magnitude of my stupidity or fuck-up would simply not have sunken in even if this manager had been factual and direct, without chewing me out.
The same goes for my youth. I remember some lessons mostly because they involved my father yelling at me. I recall very few lessons where he sat me down and provided a detailed, factual argument of why I was being a dumb-ass.
I don't get the impression that, in growing up, our ability to assess magnitudes of failure by factual analysis of the situation has improved enough to render 'chewing-out' pointless.
and they all got a good laugh with it.
yep, that's what i would guess... :+)
-bowerbird