I've never seen such fast buy in and process change when something goes wrong if someone is polite. Just read the comments replying to Linus' post. All parties involved realized how bad their mistake was and changed their build testing to make sure it doesn't happen again.
There's a reason Linux is such an awesome system despite its hobbyist nature and previously low budget, and Linus is likely that reason.
I think it's important to note that Linus' style isn't resumed just in "being an asshole", because the narrative he builds usually makes the issues he has overtly obvious.
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.
I agree - most of the comments below are arguing over whether being an asshole is okay or not. I think that's completely missing the point as Linus isn't being an asshole here. Half the world runs on Linux. Hospital systems run on Linux. Peoples lives are literally at stake. If they're committing garbage with obvious errors because they want to head home for the weekend earlier, this is a serious problem that requires some serious action.
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.
>better option than the 'professional' option of passive-aggressive removal of commit priveleges
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
>>The error was made public so that it won't be repeated
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.
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