Linux kernel dev Sarah Sharp quits
networkworld.com
networkworld.com
I approached the IRC room for the distro I was using (this time from within Linux!), asked for a wiki or some website where they would recommend I post the quick-fix and got a disproportionate aggressive response from a few of the participants.
A few weeks later my brother got me a friends-and-family license for Visual Studio and I've been developing on Windows ever since - I found people always appreciated contribution (ironic) no matter how insignificant, and would give far friendlier (as a relative term) advice on how to fix problems with the contributions.
I praise Linus and the Linux community in general for their bluntness and honesty, but I don't think being honest requires being nasty to high school children.
Edit: I strongly recommend having a look at the Contributor Covenant[1]. It has some great guidelines for ensuring that any misguided contributions are guided toward success in a friendly manner.
I also find a bit of a contradiction between you praising bluntness and honesty while at the same wishing for not being nasty to high school children. It is kind of impossible to have both. I would prefer if people were cautious, not blunt.
Sometimes a contribution simply cannot be salvaged, calling the person an idiot has chance going to chase them away resulting in a net loss. "Sorry to make you try this again, here is a more appropriate approach" could result in a usable contribution and possibly future higher-quality contributions from that same person - a net gain.
That line of thought indicates that being nice is the most logical "contributor architecture" choice. Why do we have all these guidelines about how to deal with code, yet none about how to deal with people? It's insane.
Re: the Linux/distro split. It's true, an IRC room for a distro is not the Linux kernel group - however, it's not a vast stretch of the imagination to conclude that they learned that attitude from the kernel group.
"Your contribution does not fit our current guidelines. Please read CONTRIBUTING.md and feel free to ask if you have any further questions."
comes across very differently than something aggressive.
You're telling the contributor that his/her work does not conform to the project's standards without being an asshole.
I don't see where the difficulty of treating other human beings with some respect resides.
"Your contribution is inadequate. Try again." That's blunt. For one, it's purely negative. It doesn't say what to do instead, only that something wrong was done. It makes people feel like there's no hope for them to do it right.
Let's try it:
"I, speaking not only for myself, would be most grateful if, at least for a period of some number of years during which your already considerable skills continue to attain even greater heights of excellence, you might, as kindly as you have done here, bestow the favor of your well-considered patches upon some other open source software project. Should you be so obliging as to accommodate our wishes in this matter, you shall be rewarded with no less than a half pound sack of jelly babies, delivered to your place of residence by overnight courier."
Now that I look at it, though, not bad! Would it kill those kernel developers to use this friendly template?
Hostility is not avoidable in human interactions; the British have off-the-shelf reusable solutions that satisfy everyone involved with reasonable compromise.
I was recently working with a particular hardware module from a certain company. Their lead technical support person was also helping develop the ARM side of the kernel and merge their drivers into the tree.
The awful technical interactions and pretty much the complete lack of patience and empathy for a customer, made the whole thing a nightmare. Eventually I lobbied, and got, our company to drop them as a vendor and move to a competitor. That one developer created -$1,000,000 in annual revenue for the vendor.
I still don't think they realize what happened.
Basically your goal was to punish not to correct?
(Attempting to correct from the outside, the flaws of vendor bureaucracies seldom goes well.)
Since this was the business model this company deemed acceptable, I figured it was completely acceptable to do it in return. When all you receive to your questions is "RTFM, idiot", that's a punishment in my opinion...not a correction. And I'm the one holding the million dollar purchase order in my hand.
I could not (and would not) waste development time trying to reeducate this person into being a better customer support person. That's not my job - it's theirs. Sometimes you need to whack someone on the head with a 2x4 before they get the message.
Yes, it is possible: objectively. However, there exist people with whom you cannot be honest whatsoever without coming across as hostile to them. (Maybe via heaps of sugar-coated language, interspersed with all sorts of reassuring hedges.)
I am also equally fond of a sentiment I read somewhere that "Those who love brutal honestly love brutality more than honesty."
Real honesty reveals the genuine feelings beneath the PC surface. Those feelings can include genuine respect, caring, esteem, etc. It in no way is required to be cruel. If honesty involves nastiness, it tells you something about the person being "honest" in that way.
Granted, it can be hard to tell the difference at first blush, as it certainly isn't PC to be so honest.
That's not to say that I don't like IRC, quite the opposite. But like with Redit, you'll often meet few bored and outspoken individuals that will taunt you. But once you look past those trolls, you can usually still find a real depth and friendliness to a community. Sadly that sometimes requires interacting with said community via other mediums or portals.
[1] excluding YouTube's comments section. But that's a whole other level of hell.
Unrelated to your post: When you live and work intimately with people you know on a public mailing list it you will have friction. There are way to many people self inserting themselves as "victims" in online conversations without any knowledge about the relationship between the conversation partners.
And your experience is certainly not reflective of anything in the article, which is about Kernel developers. The LKML is its whole own world with its own set of problems (mostly volume and competence related) and very few downstream communities model themselves on it.
For example, Ubuntu and Ask Ubuntu both require their community members to follow the Ubuntu Code of Conduct[1] if they want to remain part of the community. That codifies being respectful into everyday tasks.
Edit: That's not to say that LKML is fine as is. It needs to retain developers and many don't enjoy being abused by seniors... It just has very little to do with your comment.
Interesting. What have you contributed to Windows and Visual Studio? (If you don't mind.)
And to paraphrase a local "saying": tween is a mentality, not an age.
It is a hard problem to solve, and the open source model greatly aggravates the problem. Within an open source project, no one is accountable for their actions, by design. This ends up meaning you can say whatever hurtful things you want, and unless you really cross a line, most people except for the target of the attack will ignore it. If you haven't been the target of such frequent negative reinforcement, it's easy to tell others to "shake it off" and learn from the experience. And maybe you can do that a handful of times. But it really drags to have the work you put a lot of effort into described as crap and yourself physically threatened for having dared to bother someone else with it. Eventually, you're not going to want to work on it anymore.
The reason it's a hard problem to solve, though, is that sometimes you do get crap code, or bad community members, and you need a mechanism for dealing with that, too. Open source means you effectively can't "fire" anyone from the project. The best you could do is ban them from all of the project communication channels, or make it extremely clear that they're not welcome, and well now you're back to negativity. On a project the size of the kernel, where do you draw the line?
I guess if your attitude is "software uber alles" then hounding and insulting submitters that aren't up to standard seems like a legitimate way to improve your product. But if you're more concerned about creating a welcoming and diverse development environment, then it's time to lighten up and dial down the vitriol. Those goals are at odds, and a balance needs to be found. Sharp's departure might be a sign that the current balance is wrong.
Just trying to understand why he behaves as he does.
It's not that. Rather, it's that they don't feel that basic politeness is a virtue.
Rather than having a different belief than you, they simply lack belief.
> Not fucking cool. Violence, whether it be physical intimidation, verbal threats or verbal abuse is not acceptable. Keep it professional on the mailing lists.
WHAT?
Thanks for injecting some actual facts into this. I was actually hoodwinked by that blogpost into thinking something was wrong here, but upon reading the actual conversation it's clear that this Sarah started any and all problems herself. Well, there goes my sympathy in this case.
Goes to show you should never believe anything without actually checking the source.
How so?
The stuff you mentioned above is a really flimsy basis for accusing her of an agenda of trying to impose a monoculture, however you may couch that accusation in words like "seems to be trying" and "I don't know but I wouldn't be surprised if".
May add some context to the whole thing.
> You may need to learn to shout at people.
That is, after all, the last line before her reply, according to this view of the thread:
https://lkml.org/lkml/2013/7/23/107
It's unfortunate that her response lists physical intimidation before verbal abuse, but I don't think she "started any and all problems herself." Her point is still valid.
If you were to read through Torvalds complete LKML log, likely a very small percentage would be harsh. And they in turn would be preceded by someone that should know better violating how kernel development is supposed to be done.
Torvalds have asfaik never woken up, put on his slippers, rolled a die, and started going after someone without cause.
Some people work better in harsh environments and some work better under environments where everyone's feelings are taken into account and you kill any behavior that could offend anyone.
The kernel dev community is not a place that censors rudeness. If you don't have the ability to read mean words, it's not a community for you.
As I read it, it seems a tautology: if one seeks change, it seems obvious that the initial condition has to be different than the target one.
Can you clarify?
That cuts out a major part of the population. I think I'd be very hesitant at submitting a patch or contributing in any way. Heavens, I might make a mistake!
The author herself spent years working on the Linux kernel without being a 'rude, abusive and arrogant' person.
However, her exit also shows the requirement of being able to work with 'rude, abusive and arrogant' people.
PS. This is an unspoken requirement of many development positions!
Is it right? Maybe. Maybe not.
Of course there is this line, where some people are doing it in professional context and are expecting it to be... professional. In every level. That I find a false expectation, as LKML and this "terrible" culture has a public track record of a few decades. Of course not everyone can choose what kind of work they do and which projects they attend to, but someone working in IT corporations probably isn't one of those unfortunates.
I don't find it amusing, that someone's feelings have been hurt. But on the other hand I find it a viable alternative for all that wasted time on correctness, when someone's idea or implementation is terrible, but no-one can tell it directly, that this really is crap.
It is possible to give honest, direct feedback without personally attacking someone, and I don't see why it would be necessary or desirable to include personal attacks in a technical discussion.
If an idea is technically bad, it should be sufficient to point out the technical flaws without defaming the character of the contributor.
*) quote made up
The entire reason for saying that was to make the commenter look good by making someone else look bad.
Torvalds, ironically, doesn't encourage this sort of thing. Unfortunately, he is also an offender - the "shut the fuck up Mauro" incident comes to mind.
"this dual locking implementation creates a race condition under circumstances X, Y, and Z" would be more accurate and probably more successful in achieving the purported goal of having a working dual locking implementation.
Still direct, but addresses the technical problem without insulting the contributor.
Also, one rule Torvalds holds kernel development to is "do not break user space". If a kernel patch exposes an API, the behavior of said API is fixed from that point onwards.
If a subsequent patch change the behavior, thus causing something in user space to error out, said patch is broken.
All this should be known to the person Torvalds is talking to, having doing this for some time. Yet when the issue is pointed out, he tries to pass the blame to user space.
It's a pity that some others have adopted Linus' loudness without also adopting his habits of grasping the issue and being right. Linus says "don't break the posix rules%@#$!$@#$", never "do as I prefer$#@$@#$!@#$". There's a big, big difference.
What would be the general level of frustration if something fundamental was broken?
More importantly, how frustrating it is to get back to the same kinds of problems?
(I remember a similar issue with ACPI where the kernel got into a 'fix/break/fix' loop until they decided to change the approach and not accept breakages anymore)
I'm not sure where this is coming from. Sarah's grievance is explicitly about people-bashing, not blunt technical criticism. And there's no hint of surprise here... She's been around quite a while, she saw what the community was like and tried to make things better, and eventually found it to be futile and draining, so she's leaving.
vs
"I disagree. In paragraph 3 you state X, but in paragraph 4 you contradict yourself with Y...."
The latter is direct, but not personal, and fully communicates the point. It is also shorter, and thus less of a time waste than typing out insults.
There is absolutely nothing stopping the Linux community from being direct, for evaluating technical solutions. You can do all of that without being vicious and being personal.
It's funny that you need to embellish a quote so much to push your political narrative.
Part of being free is having the freedom to make bad decisions.
> Of course, I'd also suggest that whoever was the genius who thought it > was a good idea to read things ONE FCKING BYTE AT A TIME with system > calls for each byte should be retroactively aborted. Who the fck does > idiotic things like that? How did they noty die as babies, considering > that they were likely too stupid to find a tit to suck on?
I actually support Linus' (and the entire kernel team's) decision to be the way they are. You're discrediting his wit by saying the OPs paraphrase was more insulting.
So far the only times i have seen an email where Torvalds direct it at an individual, it is because he already tried the calm and detailed approach and the person still didn't see the problem.
Please show me the technical benefits that arise from calling for someone to be put in front of a firing squad for daring to waste the code maintainers precious time, or just walk away with whatever shred of dignity you have left.
Which, could be considered to be murder, if it was possible (I think there is probably only one timeline, but that is beside the point).
But it's not "killing the person now, with e.g. a firing squad".
Not that that makes it better, just a distinction to be made.
http://www.urbandictionary.com/define.php?term=retroactive+a...
I think the term would make more sense if it meant what I said, but I guess it means however people use it to mean.
Shouldn't it have a word that means "after the fact/event" instead of like "affecting something that happened before"?
Or like, "(age *4 +3)rd trimester"?
Oh well, the way slang meanings arise is strange and inscrutable. Or not really inscrutable, but not understood by me personally.
It's fewer words, but more work. If you read a patch/pull-request and it's generally no good it is going to take a while to formulate a detailed response on why you're wrong and a possible fix. At this point you might as well fix the code yourself.
Sure you solution is more polite, helpful, and over all more productive. On the other hand random Linux develop X never promised to teach you kernel programming and given that just wasted his time with your bad code he/she might but be all that motivated to help you out.
Honestly I don't care how the Linux developers communicate, that's their business. There's of cause an issue with developers hired to do commercial Linux development, but that's something those companies need to work out, they aren't forced to use or develop on the Linux kernel.
vs.
> I'm sorry, I can't accept this patch because it's full of logic errors. Please fix them and resubmit.
Same approximate character count, same message, no coddling or doing someone else's work for them. But also no insults.
That is to say, if you're the target of hostility, it's likely because you've been written off by the community as an imbecile or some such.
Not saying this is the case here, but I'd avoid making big public displays of complaining about forum behavior, and "exit drama" exactly for the reason of attracting such suspicion on myself.
Does anyone familiar with the psych literature know if Linus' behavior here might be causal of quality? Abrasiveness feels like it might cause conformity[1] effects or similar, which sounds like poison for a tech project... but then again, some of the best software I've seen has come from "proving someone wrong on the internet" so maybe it depends on the type of person?
Any references would be appreciated.
[1] https://en.wikipedia.org/wiki/Asch_conformity_experiments
The experiment is so badly constructed http://www.simplypsychology.org/asch-conformity.html that it is hard to imagine one takes results seriously.
You see it a lot when Steve Jobs is discussed - as though he could have been as docile and friendly as Woz and still accomplished all the same things.
The truth is that the truly exceptional achievers are typically a-holes to deal with. Their uncompromising attitudes and relentless techniques for getting what they want rub many people the wrong way.
Personally, I don't have to be good friends with these people or approve of how they interact with others in order to appreciate their contributions to technology and society in general.
Digging into the psych here is a wild goose chase because you're starting without a useful impression of what the kernel community is like. Unless you're already a kernel dev, you only hear about kernel maintenance if the drama blows up big enough to wind up in your periphery.
The kernel community is about work, it's generally way too fucking boring for anyone other than Jon Corbet to report on. If you want to analyze the kernel culture, then the things that do show up on your radar are just anchoring your assumptions. Even if they turn out to be right, it's still bad craftsmanship to extrapolate from them alone.
Just sounds like a bunch of those "rockstar" programmers that we all dread working with, the ones who walk into your office and tell you half your codebase needs to be rewritten to use Node.js or whatever trendy thing is up at the time.
Honestly, looks like a whole bunch of guys who never got around to growing up. If an idea is that terrible as to warrant that level of criticism, turning it into personal attacks both trivializes the actual criticism you're giving and should be completely unnecessary. As they said in a Cracked video...people this obsessed with winning are usually losing in their natural state.
This lkml conflict would be addressed with statistics, that is: It would be so nice if we could give evidence that the culture improves the kernel's quality, or hurts it.
I have no opinion on whether it is or isn't "just basic human decency" or "the insidious threat of political correctness." I do think that if the kernel "succeeds" (for whatever definition of that) that we'll retroactively decide we defended against political correctness. And vice versa.
> within a developer culture that required overworked maintainers to be rude and brusque in order to get the job done
And I guess that's the root cause of it