Dear Open Source Project Leader: Quit Being A Jerk
lostechies.com
lostechies.com
Programmers certainly do it. Laughing at noobs and being mean to them is pretty much the sole purpose of IRC, unless I'm mistaken. Surfers do it. Climbers do it. I've even seen rocket scientists do it.
The interesting thing is watching which members of a given group behave this way.
It's not everybody. There's a certain skill range where you find this behavior. Generally it ranges between "reasonably good" and "better than most people I know", and it grows exponentially in that range (though, again, only in people who are given to such behavior).
But there it stops. Once you hit a threshold of "better than pretty much everybody in the world, even those who have dedicated their life to this stuff", you don't really see this sort of elitism anymore.
I live in the climbing mecca of Fontainebleau, and can watch first hand as 7a boulderers from around the world descend and act like jackasses trying to scootch their butts off the ground on problems that are hard (but not world class) while scowling with superiority at the lowly rabble that might dare touch the holds of their project. It's best to simply wait until they give up before going over and doing the problem.
But occasionally you see a guy working an 8a. That's pretty stout by anybody's definition (even at font), but he's not shouting or swearing at it. He's just calmly doing his thing, uninterested in being the center of attention, and more than happy to talk to anybody who walks up without the least hint of snoot.
I think you find the computer programming equivalent of that guy from time to time too. He's the "bourne shell" guy that another comment mentions downthread, and he's above the elite.
The cool thing is that you don't have to be as good as him to act like him. All you need do is not be a dick.
Also I am rather jealous you live in Fountainbleau. Very.
It does matter to me, but I feel it shouldn't. Woe to me if I am ever the best at anything, I'm sure I'd be a paragon of intolerance for my lessers.
And yet, some of the smartest people I know, people who very well know their own ability, are the among the kindest people I know.
On the flipside, I know some "less gifted" people that are equally as kind.
They're competition.
On the one hand, you compete against them and how well you do will determine your life path. On the other, if you don't have any competition ... that's an even worse outcome, since you might be moving on a fruitless path in the wrong direction.
> It does matter to me, but I feel it shouldn't.
Well, to be perfectly blunt, that's the definition of insecurity. In other words, you're concerned you might lose the competition in some way or another. Money, social standing, happiness, you name it.
Everybody is secure and insecure in their own ways. For example, just using myself as an example ... I don't care if you're a better coder than me, but it'll bother me if you know more about how a kernel functions and works. I know or at least I think I know, very little about how kernels work. It might be true, it might be untrue, but that's how I feel. Would fixing that really change anything for me? Probably not. It's not directly applicable to my work. Which is why I don't do anything about that, it would be a waste of my time and I don't think I would enjoy it. But it's a "weak spot", so my mind dwells on it. Well, dwells on it is a bit much. Maybe passing thoughts when the subject comes up?
[1] I am probably an "above average" climber, having done 7c+ problems here in the States.
hm, what?
You are. In the IRC channels I frequent, the purpose is one of (1) being social, or (2) being helpful. Some channels tolerate wilful ignorance/trolls less than others though.
Of course, there might be other channels with nastier cultures, but the sole purpose of IRC is not to be nasty to noobs.
Some are like ##C which is a hive of scum and villainy.
Although the channels are meant for discussion about standard C/C++, in IRC it seems that many people actually try to master the standards of these languages and use that as a weapon to mock other people. It really feels like that at times. And it's understandable though - a question for which the answer can't be found in the language standard is off-topic. In such environment and "culture" it's inevitable that people start raging after the third "What is the best IDE/I mixed pointers and arrays and why not work they should be the same, no?" question for the day. At some point you just wish to kick these people off the channel the moment they voice their presence.
I can totally see why this would not be a case in a channel related to Haskell or Clojure where talking about anything related to the language is the point, rather than the point being the language standard.
The natural tendency at this point is to think "Yup, I'm a just a smart mofo" and pat yourself on the back. The key to moving up the chain of expertise/etc is to transcend that tendency. Humility is a skill, because you need to be willing to leave your comfort zone and listen to people.
* music
* typography
* movies
* food
* wine
* art
* fashion
And so on and so forth. Of course, there is always someone out there who is better than you with better tastes, and people sometimes forget to see this as a humbling fact.
That's such an astute observation. I can see how I do that in my own life.
It makes sense on reddit where people aren't encouraged to a one-track threaded discussion, but less so here where the discussion manages to flow pretty well at times.
Work with somebody who's recognized world wide? She's the nicest person ever. (Even though I clearly wasn't as good as she'd have liked me to be ;)
It's inspiring to work with people who don't have anything to prove to you, but have more than enough to show you.
PG wrote an article that describes this same phenomenon vis-a-vis nerds and popular kids in school:
If I remember correctly, the most popular kids don't persecute nerds; they don't need to stoop to such things. Most of the persecution comes from kids lower down, the nervous middle classes.
Also related is the "Dilbert Effect" where the incompetent get promoted to management so they can't screw everything up by doing actual work, so they get to just have meetings instead, while the competent workers continue working away.
When jasonkester says:
Generally it ranges between "reasonably good" and "better
than most people I know" [...] [b]ut there it stops.
I don't believe it's necessarily true. It has more to do with how they think they are perceived. Look at Kobe Bryant, one of the best basketball players to ever live. I've seen videos where someone will challenge him, "I'll get 2 before you get 10". Kobe takes that as disrespect. This person doesn't realize how good he is. He then goes on to dominate the 1-on-1, aggressively trash talking throughout. Try upsetting a doctor by calling him/her "mister"/"miss" repeatedly.I know a ton of CS PhDs, they never like to be called doctor or introduce themselves as Dr. So and So, are you talking about MDs?
The humblest, nicest, friendliest instructor I've ever had - in MMA-style kickboxing, generally a pretty macho area - was the one with multiple world championship belts.
It's frankly amazing how broadly consistent this behavior is, martial arts, weightlifting, video games, network engineering - across the board.
In fact, we use IRC a lot for PyPy development and I think we're trying to be welcoming to other people, especially the newcomers, but then again, it's a self-judgement.
What I've seen correlation is the age (although there is definitely no rule here either). Typically, while you're being 16 and you climb say 7B, you think you're the best and you look from above towards people who climb 7As. And there are some people climbing 8Bs I know who are as bad as when they were 16.
I know that I now love teaching bash shell and C. I know that I am not the most talented shell guru or C programmer, but a lot of my knowledge now comes from answering questions from beginners that I hadn't previously considered (in bash, e.g., how can I tell within a script if the standard input comes from a keyboard or a file, or in C why don't you require the argument to return to be in brackets?) Questions that aren't necessarily hard, but that I hadn't asked when I was learning and now need to figure out the answer to on-the-fly. I now love teaching beginners because there's going to be the chance that they ask a really interesting question and I'm going to learn something myself.
10 years ago I would have hated that, because I wasn't comfortable in admitting what I didn't know - partly because I was still finding out that I didn't know things on a daily basis. Learning has now become a delight, rather than something to be achieved to get to the next thing.
I'm not sure it works that way. I'm very good at one or two things myself, but I don't really find that any additional knowledge now cames to me from explaining the basics to newcomers.
Rather, it's one of these (depending on the person):
1) when you become really good, you realise how much you still don't know, so you don't find it insulting of hilarious that other people don't know even the basis...
2) people motivated and devoted enough to get really good don't really care for the politics and the elitism anyway. They just care about the subject matter, and have no problem explaining it to a newb (and some love their field so much, you can't get them to STOP explaining it!).
It's pretty difficult to explain things well and be a jerk at the same time!
(although my pope-hat's off to those that manage to do both ;) )
I also later had a chance to meet Jean Sebastien Roy, a slightly less famous but still top level rider, when he came to do a promotion for KTM. You'd never know from either of them how good they were until you actually saw them ride.
This contrasts heavily with some of the "experts" I ride with every weekend during the summer. I once had a competitor refuse to shake my hand and scoff at my attempts to introduce myself. It is a huge difference in attitude.
By the way, hello HN crowd. I've been a daily reader for several months but never found a topic where I felt I had something useful to post. I hope this has been relevant and useful.
P.S. I ended up beating the guy who wouldn't shake my hand, which gave me a petty feeling of satisfaction. Childish, perhaps, but I'm not perfect.
People who feel need to pick on noobs who actually trying to learn are scum. There are noobs that do not want to learn or absorb new things, yeah torture them if you want. but if someone is genuinely working on something and you put them down..
As a noob climber I can see the jerk types, not because they pick on me (I am so horrible that I am not worth the time) but because of how they get people react in two different ways. Some kiss their ass and other just exclude them (silence when they start talking to their peers working on a problem, people need to leave etc)
I'm not so sure. Consider Linus, Rob Pike, and others...
He'll say so to your face, too. So at least he's honest about not being nice.
That's what you want to believe. But really what sort of magical transformation do you suppose will happen once you cross that threshold? Why would a personality change?
No, what I think happens is this: A person with sufficiently high skill, better than anyone else and generally known to be, will get sufficient recognition and awe that they don't need to establish their rank in the pecking order. However, take away the recognition, and also a highly skilled person inclined to jerk-behaviour will again start kicking the lower ranks.
Some people are jerks. In some situations jerk-behaviour is more likely to surface than in others. But being extremely good at something does not necessarily improve one's personality. There's a difference between "I don't want to be a jerk" and "I don't need to be a jerk". The former is the better person.
It occurs to me that you actually see highly-skilled jerks quite a lot. They piss and moan and kick and often aren't very successful, even if they're highly skilled.
Even if someone's highly skilled in some area, if they're being a jerk we're going to value that skill lower, anyway. Even though, if you'd stop and think about it, social skills are usually not related to being extremely highly skilled in some other area.
Being successful is usually a matter of luck and/or social skills. If you're extremely highly skilled and successful, you're going to be known as one of the positive examples of highly skilled people in this thread. If you're skilled, but either unlucky and/or a jerk, your skill won't be valued for what it really is capable of (unless, again, you're lucky), and you won't be noticed. Confirmation bias does the rest.
Miguel de Icaza had a blog post on this I think. The problem with large opensource projects is that they have a lot to do, and simply don't have time to thoroughly follow up on all the small contributions that are ridden with naieve errors and plain formatting issues. Not to mention the big ones that come with architectural changes without explanations.
I think it's unfair to call these charity workers jerks, just because they are trying to make light of a dire situation.
Yes it can hurt if your contribution is coldly cast aside, and yes it would be much better if they warmly took you in and taught you in their ways, but if the OSS project leaders don't keep up the constant stream of contributions, improving the project all the time the project will die and all work will have been in vain.
On a side note: which project will you be contributing to this christmas? It is charity time after all and a bunch of hem could use a commit or two from your hands :) just be sure to read their code-style documents ;)
Perhaps I'm being naive, but doesn't fostering relationships with contributors promote more contributions? Or is it considered far too rare that a (somewhat) mentored contributor will continue to contribute?
http://smarterware.org/7819/my-codeconf-talk-your-community-...
But, if someone's first contribution had naive mistakes, and it took more of your time than it saved, I can sympathize with a leader who doesn't try to get similar contributions.
As that new contributor learns the ropes, though, that cost goes does. Eventually they hit break-even where they are adding more value to the project than they cost. But that requires the person to stick around long enough to get there. There's a pretty high chance any new contributor will lose interest and go do something else.
So whenever a maintainer gets a new patch from a new person, it's always an open question as to whether taking it in will ultimately be a win for the project. Unless you can predict the future, you can't tell if that investment will get amortize out and yield something useful.
I'm sensitive to this, really. I work in an embedded linux world where I end up submitting a bunch of patches to various projects as an "outsider" (often one who is still learning the project in question). And yeah, I get yelled at a lot. And it sucks.
I'd love these people to be nicer too. But honestly I don't see a "process solution" like you propose. We just need to find nicer hard-working ubergeeks. I'm not holding my breath.
Honestly, for any OSS project leader this should be easy.
All of us know the difference after sending a CV anywhere between:
-1) destroying answer (do not send us your CV anymore)
a) NO answer
b) Automated answer without politeness intent
c) Polite automated answer
d) Personalized, human-written answer
You cannot do d) always but you should certainly do c).
That's just not a recipe for fun. The "hair trigger rejection" filters are there because of all the junk that gets thrown at the maintainers. And either it makes them grumpy or is acceptable only to people who don't mind being rude. Either way, the "jerk" bit is a direct correlation.
The project leader won't be a jerk to you if you make a nice well-tested, style-adhering commit that only addresses a single issue without breaking other code.
Don't think for a second 'occasional contributors' combined efforts even come close to the contribution of even a single project leader.
If you're a young developer, or seasoned for that matter, and the urge to put down the work of someone else tugs at you, consider this;
I recently had the pleasure of meeting Steve Bourne, inventor of the Bourne Shell (as in, /bin/sh on every Unix system ever). Here is a guy who was literally sitting next to the guys who invented Unix WHILE THEY INVENTED IT. And all this time later he's surprisingly humble, friendly, and genuinely interested in what other, younger developers are doing.
If a guy who has earned the right to be smug several times over treats people with respect, what right do we have to do otherwise?
I consider people who are "the elite" to be folks like Larry Wall. Or Guido van Rossem. Or someone like Ian Lance Taylor (who has hacked on many things in the GCC/binutils toolchain). Their projects are known by a bit more than a mere "hundreds of thousands of people", and they are definitely not jerks.
The reality is if you want to be very successful, especially in a project where all of the contributors are volunteers, you can't be a jerk, because then people won't want to work with you. In the very early days of NetBSD, there were a quite a few people who were quite disagreeable to be around on the core team list. One of them was in my work and social circles, and it's one of the reasons I choose to work on Linux instead of NetBSD. But even NetBSD is known by more than "hundreds of thousands" of people.
And that's the key --- yes, being a jerk will probably be a strong negative factor if you want your project to be one of the really top, well-known, successful projects. But you can a jerk and still have a moderately successful OSS project. Because at the end of the day, for better or worse, people will overlook someone being a jerk if they have a good, solid product to offer. This is true outside of the OSS world as well, of course. As far as I'm concerned neither Larry Ellison nor Steve Jobs would win the nicest person of the year award. But their products were sufficiently good that people were willing to overlook their personality traits, and indeed even idolize them as positive examples of leaders in the Tech industry.
This is why I commit (no pun intended) to try my best to not be like that with any of my projects. Now, to be fair, none of the Fogbeam projects have a lot of outside contributions to date, but every time someone has contacted me, I've tried to respond in a polite, reasonable and appropriate manner.
One thing to consider, when interacting with people you don't know, is that you don't know what you're possibly getting. We got a request once, for permission to take our code, make it work with MySql, and use it for some academic research. Now that was already allowed by the license anyway, but I took the time to respond to the guy, and had a few chat/email interactions with him as worked on his project, even though I had no idea who he was, how important the project was, or if anything would ever come of it. A year or so later, I get an email saying "Hey, here's a pre-print of the paper we published, it's being presented at $PRESTIGIOUS_CONFERENCE, and we mention your project in the paper". That turns out to be a nice "feather in the bonnet" for us and helped get the project some visibility it would not have gotten otherwise.
Honestly, I don't see any value in being dismissive, insulting or demeaning towards anyone, just because they aren't already an expert in your project.
In my experience, most open source project leaders are very congenial and gracious that you're spending time on their project. I did some poking around and couldn't find any OSS leads that disparaged their contributors.
Not sure if the lack of examples was an attempt to not "name and blame" or if there aren't many good ones. OP, to be clear, this isn't merely leads saying "this code/feature/suggestion is inappropriate" to pull requests, but honest malice?
Well, there is always everyone's favorite grumpy uncle Linus. :) I think it ends up being 'ok' for him to do it because nobody questions the importance of a kernel being perfect.
The truth of the matter is, Linus doesn't really have time to respond to every hare-brained idea that people have for the kernel. Add to that he's been doing this for a while. If you feel maligned, you might want to consider a) Linus is probably right b) if you really want to hack on the kernel, you should know better and c) if you want due consideration from people more busy than you, you should give your idea due consideration yourself.
Edit to followup: until you've lurked on LKML for a while, or heard an interview, or, I dunno, maybe actually had a live conversation with Torvalds, you are probably being lead to believe he's an asshole by people with bones to pick with him (eg, people who should know better who he told off). As someone else pointed out farther down thread, how many times have we seen links to a single email/blog post by Torvalds without the context of the person he is responding to?
I am keeping this quote and will give you proper attribution.
In my experience the leaders of successful projects are nice because of the straightforward selection pressure for projects that don't alienate their users. Sadly it's the followers[1] that are often jerks, and they face no selection pressure (except that they gradually pollute the well for projects they support).
[1] Guys like Karunamon in this thread.
I ended up with the same result, however I will say that at least the jQuery team was very polite and respectful and was more than willing to discuss the issue at length, help explain the pros and cons of either scenario, and we were able to end up with a new, third workaround that should work with both edge cases.
Sorry that yours went the other way, but I found it spooky how closely your experience mirrored mine, despite a completely opposite resolution.
http://lesswrong.com/lw/kg/expecting_short_inferential_dista...
I like how you put that.
Any thoughts on the best way to respond when someone asks you for something that requires hundreds or thousands of hours of tacit knowledge?
The thing is that you should just always be sensitive to the possibility of large inferential distances when you're interacting with people of different opinions. "Don't ascribe to malice what may be due to stupidity. Don't presume stupidity when ignorance is as good an explanation. And try not to be too sure your opponent is the ignorant one until you can prove otherwise." That's very much in descending order of importance, but it's always good to keep the third point in mind if you can.
Constructive criticism is a great thing, but telling someone they will never work again in this industry because they make a small CSS error on their first ever post-college project is another.
I've been fired from one job for standing up in a meeting and calling the boss a self-important asshole & refusing to retract it.
Life is too short to let these type of people get you down, we are all just floating on a rock in space & going to die in a few years....what's important: http://www.reddit.com/r/pics/comments/14su4p/he_sang_to_her_...
Well, yes, that would cause some difficulties and a slightly chilled air around the coffee machine where I work as well.
There are ways of communicating the sentiment without making it easy for them to get rid of you...
My take on working is that my employer is renting my time & skills to complete a job, they have every right to expect value for their money - but they don't own me, nor can they tell me when I am allowed to take a phone call, go for a lunch break, shout at me or demand that I work extra hours for no extra money.
As the wolf says: "I'm here to help - if my help's not appreciated then lotsa luck, gentlemen."
The funny thing is that I end up doing a lot of work on my own time...
It wouldn't be surprising if some people left on their own after the incident.
The best way to respond to that is to politely request what you need and then ignore if they won't be helpful. ... but humans don't always respond in the best way: Another possible response is to respond harshly and critically in order to generate a hierarchy: "I am not here to serve you. Your patches may be accepted if it suits my fancy.". Neither extreme of being high and mighty nor of allowing people to simply abuse you is ideal.
I am glad someone is speaking out against it, because it sucks.
One of the major reasons people don't learn to be better developers is because of "elite developers" that have come before them that take pride in humiliating them.
This article is very on-point. I nearly stopped learning Rails because of the torment from #RubyOnRails on IRC. But then I remembered it is the internet and everybody is probably a dog.
I am glad I didn't stop learning - and I am very conscious of this with "noobs" now.
Who are these people? Are they socially awkward nerdy types, or are they more the "jock" side of the coin who understand social rules better than most but simply consider themselves above them?
My first instinct is to assume they're all 14 years old, because that was what everyone I knew was like when I was 14. Inevitably these people turn out to be in their 30s and have somehow assembled complete lives with jobs and houses and so on. The mind boggles.
By the way, #ruby on freenode is very noob friendly, with people going far out of their way to help beginning coders. There's probably a better class of noob in there as compared to #rubyonrails though.
In my experience, he certainly started off as helpful for me. But perhaps I didn't learn at the pace that he expects, he quickly turned into a power-flexing troll - belittling any question I had.
Left a very bad taste in my mouth, and almost exemplifies everything that is wrong with the community.
That's sad, because as I said...he started off very helpful.
Do I ask a ton of questions? Yes. But if you can't manage that, you shouldn't be the head of a channel designed to help people. It's that simple.
The article makes a good point - But there's a lot more we can take out of this, that being that for any community to succeed, it needs to be just that: A community. A place where others help each other grow.
The cocky contributor is usually a bad contributor in my experience and are both energy drains and time sinks. The belittled (or humble) contributor is the one I am that I really appreciate and value as they are willing to enter into a dialog about what needs to be in the pull request to get it in.
In the end is all about normal human social decency. Treat people badly and don't be surprised when they treat you as a leper.
Let me quote a recent example from IRC:
> XXXXX interesting how the number of new github issues went down since i started ignoring them :)
> XXXXX could be coincidence, but i suspect having a few open tickets discourages the more frivolous requests we usually got there"
Nice attitude there! After reading several such comments and some diatribe on github (following a bug report), I really had difficulties justifying the use of the software developed by this guy, especially after having been warned about this earlier by a co-worker ("the project is fine, XXXXX is the only problem with it") and not taking it seriously because I thought he was exaggerating (I'm not really into personality cult etc.).
I was on the receiving end way back in 2002. I'd just written an RS232 library for the .NET Compact Framework that ended up in the Microsoft .NET Compact Framework Core Reference[1]. It was also referenced by an MSDN article[2], so got a lot of attention.
I left a bug in there which broke anything that didn't use default settings. The abuse was astounding. It was the last code written on my own time that I ever published.
[1] http://www.microsoft.com/learning/en/us/book.aspx?ID=5960...
"stupid pull request of the day site:twitter.com" returns one result, and it isn't negative in any fashion.
I'm going to come right out and say this: Some people should not contribute to a FOSS project. Whether that's because they can't deal with other people or because they're not willing to put in even a modicum of effort to work effectively with other people. If you go up to a group of people who are used to doing things according to procedure X and you blithely ignore it, you really should not be surprised when your efforts are met with derision at best and hostility at worst.
While I understand the point the author is trying to make here, and even sympathize to a point, the mindset isn't going to change, nor should it. The bar to entry is a part of what make high quality projects high quality.
If that is the accepted behavior of the maintainers/contributors, then be 'open' about that too.
"If you have questions, RTF(src|wiki|docs|issues|blog|groups) then come join us in #herpderp on freenode where our chamber of @ cloaked elders will determine your fate; aid you, ignore you, berate you, or remove you."
You could at least dismiss them in a friendly/neutral way. "Sorry, can't accept this: check out procedure X in the docs."
Part of the "bar to entry" is that mindset. You don't get a pat on the back and warm encouragement for submitting crap code. You get told your code is crap with the expectation you'll improve before wasting the reviewer's time again.
Call me crazy, but I happen to love this environment.
with the expectation you'll improve before wasting the reviewer's time again When you insult people and act like a jerk I don't think you want them to come back ever again.
Also (no offense, you might be a real genius) but a lot of people who think they are above everyone else really isn't. I've seen people frown at the use of Java reflection because it wasn't type safe then go ahead and deliver brand new features written in pl/sql.
I don't understand why everyone's pussyfooting around this guy. Please? No offense? This guy is THE PROBLEM. He doesn't get a pat on the back and warm encouragement for providing crap people skills. People skills are part of a project too, just like code.
I downvote rude people on HN, and ascribe to the idea of not saying something you wouldn't say in person. But this guy? I'd say this and more to him in person, on a stage, in front of a million people. Go ahead, downvote me. It's all in a good cause.
Heal thyself, doctor.
This applies to any project. If one sees others being mistreated, one should vote with one's feet and leave. The defense of "but they're treating me fine" is the height of hypocrisy.
Stupidity is an aesthetic judgement. We all run into people it's too hard to help, people we might call stupid under our breath. When this happens to me I move on in silence, rather than turn my aesthetic judgement into generalizations that sully the forum (mailing list, irc channel, etc.) for everyone.
COPY AND FUCKING PASTE DO YOU SPEAK IT
This was something somebody suggested doing on the Joel on Software board, I think. They used it for fielding frequently-asked questions from trial users. Apparently people responded to it very well. Trial users have the potential of turning into paying customers, of course; open source contributors... not so much. Nevertheless, if you really want to provide the personal touch (and if you're spending time insulting people on the internet, clearly you do!), then this is a reasonable way of providing some simulacrum without too much effort.
You could just fill the text file with creative insults, if you prefer.
Be it doing a better job explaining the project and the requirement/skillset minimums, aptitude tests before they even contribute, or having a pre-defined list of responses to bad code (i.e. '294: Doesn't follow x standard, please see FAQ pg. 84'), there are better ways of handling these situations that encourage people to get better without making them feel worse. Just because bullying people has worked in getting the response that you want doesn't make it the right one.
Maybe the code is of high quality, but they usually end up stale and defunct from lack of contribution.
Derision of stupidity is probably one of the worst characteristics of hacker culture, because “stupidity” tends to be shorthand for “disagreement with my point of view”.
I have trouble making a cogent argument around the derision of stupidity because derision should be self-evidently bad. It should automatically file under “why would I want to do this to my own personality”. Derision and bullying are indistinguishable from each other, and the thought that a group as oft-socially-maligned as hackers (at least until the last 6 years or so) defaults to derision seems more a sign of imitating things we were subjected to than reasoned thought.
“If you go up to a group of people who are used to doing things according to procedure X and you blithely ignore it, you really should not be surprised when your efforts are met with derision at best and hostility at worst.”
What does blithely ignore mean? Say this is the first open source project I've ever contributed to, so I don't know what the norms are in terms of where to even look for guidelines. Or I contributed 30 minutes of my time because that's all I had, and I devoted them to this. Or I'm learning to program, and I chose to try to help your project.
I will posit that anyone who is trying to contribute to your project is doing you a kindness. They may be doing it in a poor way, and you are within your rights to point that out. But how you point it out is what we're talking about. You an politely point out that the project doesn't accept pull requests. You can politely point out that tickets can't be opened until there's been a discussion on the mailing list. Etc. You can even be curt.
Derision is not curtness. It is not impatience. It is explicit, intentional putting-down of someone because they aren't as good at something as you are or think they should be. And it is a poison. Unfortunately, if you take it frequently enough, it becomes habit. It becomes second nature. And you stop noticing it's poisonous. And so, unfortunately, it is an oft-enjoyed poison in intellectual circles. It doesn't help anything. It doesn't help you understand the world or other people. It doesn't really save you that much time. It simply makes you feel better about yourself.
Then it's not stupidity. That's not what this article (at least that I can see), or my post, was talking about. I was referring specifically to failure to RTFM as the big one, with a side order of bad commits and pull requests.
Ask any tech support monkey at the end of their day what they think about the average person. Then remember that this person is getting paid to do it. How do you think someone who rolls a project as a labor of love feels?
And anyways, if you have an open source project, and it's set up in such a way that commits have to be approved by one person or a group of people, then that one person or group of people are the only people who's point of view matters, at least when it comes to that code in that project. Don't like it? That's what forking is for.
>Derision and bullying are indistinguishable from each other
Disagree. Derision is a society's way of pointing out that you did something you shouldn't have. I have absolutely no problem with mocking stupidity. Stupidity is evil and everything wrong with the world, and should be mocked and driven out mercilessly at every opportunity.
And you'll forgive me for thinking that pointing at a silly pull request and saying "wat" isn't even on the same ballpark as "bullying".
>What does blithely ignore mean?
Okay, as an example: https://developer.mozilla.org/en-US/docs/Introduction
A well defined process and a very good guide to what you should do if you want to help. Ignore means just that, "ignore". If you got a pull request into that system, then you obviously got ahold of that information some way.
>I will posit that anyone who is trying to contribute to your project is doing you a kindness.
But if you're wasting people's time, then that effort is wasted, and having the opposite effect at worst. That time spent dealing with your question which is answered in the docs or telling you why your pull request isn't going to be committed could have been better spent advancing the project. Time is valuable.
The mistake so many people make is to let someone's lack of knowledge translate into “stupidity”, which is typically defined, and defined by you yourself, as an inherent, unchangeable trait. We toss around the word stupid, but it's got two meanings. One is the one I use with my friends when I talk about something who doesn't know as much about something I do. The other one is the one you use to justify derision. Besides not accepting derision in general, I think there are very very few legitimate instances where the other one applies at all.
“And anyways, if you have an open source project, and it's set up in such a way that commits have to be approved by one person or a group of people, then that one person or group of people are the only people who's point of view matters, at least when it comes to that code in that project. Don't like it? That's what forking is for.”
We're talking about whether people should change their behavior. That applies to current show-runners, not to whoever chooses to fork a project. Once your project is entrenched, you can feel like you have the power to say whatever you want because your community is vast. That's a problem.
“Disagree. Derision is a society's way of pointing out that you did something you shouldn't have. I have absolutely no problem with mocking stupidity. Stupidity is evil and everything wrong with the world, and should be mocked and driven out mercilessly at every opportunity.”
Literally, mocking is one huge component of bullying. There's no question about it, just watch a bully. Mocking is bullying. Derision is bullying. There are other ways to point out you've done something you shouldn't have, including stating it politely.
Pointing at a silly pull request and saying “wat” isn't in the same ballpark as bullying solely because it hasn't been done to you when you've been trying to do something you hadn't done before. Or because you hadn't tried to have a social interaction (as opening a pull request is) when you're generally nervous about such, only to be slapped in the face by a comment like that.
“If you got a pull request into that system, then you obviously got ahold of that information some way.”
Yeah, that blog post that mentioned pull requests were legit. Then I googled pull request with the project name and found where I do those. Then I opened a pull request with my changes.
Uh-oh, there was a guide I missed somewhere. Crap. Clearly the proper response to that is mockery and anger, rather than an understanding that maybe I wasn't intentionally trying to waste your time.
“Time is valuable.”
I have never heard a lamer excuse for being an ass (I'm not calling you one, by the way—I'm saying in general), sorry. Yes, time is valuable. You can be polite about pointing that out instead of being derisive. You can say “wat” or you can say “We can't really take this pull request; there's no reason to add this feature.” Or “unfortunately this pull request doesn't adhere to our code guidelines, and I'm afraid I don't have time to help you get it in line with those right now”. Something that acknowledges that maybe their time is valuable, too. Since these are people who want to become members of your community, and invest their own time in it as well.
In that vein I would look to point out this handy reference: http://www.catb.org/~esr/faqs/smart-questions.html which goes into depth about why certain reactions happen.
"What we are, unapologetically, is hostile to people who seem to be unwilling to think or to do their own homework before asking questions. People like that are time sinks — they take without giving back, and they waste time we could have spent on another question more interesting and another person more worthy of an answer."
Note: We are upset that people do not think for themselves and feel that they have to be spoon fed because they are special.
How is that a problem? What do you propose we do about it? Should be fine people for saying mean things? I don't follow, sorry.
As maintainer of a large open source project, this isn't entirely true. I would agree that derision is bad. But being blunt is good. Many people confuse bluntness with rudeness.
There is every benefit to being blunt with stupid people. The people who intentionally and wilfully ignore the documentation, who demand that bugs get fixed NOW, who refuse to follow instructions when they ask questions.
The benefit is that they go away. Rude people are toxic to a community. Stupid, rude people.. doubly so.
My personal approach has evolved over the past ~15 years doing this. I no longer try to educate them. Once they've made it clear they're intentionally stupid, they get told "shape up, or be banned from the mailing list / forum". Many do.
Others reply with hostility, curses, private emails denigrating my mental health, paternity, etc. They get banned permanently.
Banning toxic people is good.
While I try to be polite regardless, I have no strong issue with people who are blunt by default (I also happen to think there's a fine line between bluntness and rudeness, but that's a different topic altogether). I think the key of what you said is “once they've made it clear they're intentionally” doing what they're doing. That is what makes a person toxic. Missing documentation or contribution guidelines or what have you on the first try, less so. On the second try, I'd say bluntness is in order (“we've already asked you to do X, please keep that in mind in future requests” or somesuch). After that, you're dealing with a person who is dragging down both your community and your own time. That's a problem.
And still, it's more productive and beneficial to the community as a whole to be blunt rather than derisive.
Anyway, yeah, net net, I fully agree :)
I totally disagree with this. Yes, a lot of hackers may have an "intolerance of stupidity" but I don't know of anyone who has the right to define "hacker" who can say that the definition includes that. And never mind the fact that we are ALL "stupid" in some domain or other and we all do stupid things every day.
I have had a few drinks so it's hard to properly articulate what I mean, but maybe somebody else knows what I'm talking about.
This part struck me - as a college student who hasn't been involved in tech culture for that long, all I had heard of Linus is about his brilliance but his harshness and perhaps arrogance.
So, assuming my impression and Hahn's are both accurate - what changed? I think that the stress of life gets to us and we start to cut the pleasantries, tact, and niceties that seem to slow us down. We don't mean to be a jerk, but the fast-paced lives we commit ourselves to don't allow time for us to treat others as respectfully as we can. We're blunt because it is easier on us and we don't care about what it does to others.
Nothing. The only difference is if you're on a mailing list that Linus frequents, or if you're only reading a single post from that list bereft of context because someone sent you a link to the point where Linus puts his foot down.
Its like Zed Shaw, he wrote a great introduction to programming book I frequently recommend and even helps random people learn over twitter and email. But post some of his work on HN and you'll find a bunch of people still sore about a single angry rant he wrote a few years ago.
I think you have to remember that these guys are operating at scale, and until you've walked in those shoes...
Won't we be given some specifics so that we don't have to guess what famous OSS author actually typed "HAHAHA" at a pull request ?
That's, at least, a more intellectually honest position than your previous claim.
There are a lot of ways to reject a patch on the grounds of cleanness and efficiency that don't involve deriding the contributor's work as "BSD crap" that only helps people who "deserve to be punished".
Drepper was a monumental asshole, and he deeply hurt the glibc project for years.
Lighten up, Francis.
You think that calling someone's idea crappy is unacceptable? In what sense of the word? Are you saying that it should be illegal to make fun of someone's ideas?
This sort of behavior is childish and I would never be a part of a project with someone like this (or hire anyone with this sort of behavior).
Exactly, and that's why they do it to others! That may be their default (not consciously-chosen) behavior because it's what they got used to.
Edit: just found this example http://penny-arcade.com/2012/11/30
If people are acting like assholes, they deserved to be called out.
The point is here that it's assumed that the people making the pull request are attempting to make an honest contribution and the response they're getting is "look at what this jerk is doing".
I don't think it's possible to give real life examples without making it possible to find the people involved. Clearly the author isn't wanting to publicly chastise particular leaders; nor would they it seems want to draw attention to particular code that wasn't adopted and led to [over-harsh] dismissal of the contributor's effort.
This guy currently contributes to several OS projects http://mutedsolutions.com/about, https://github.com/derickbailey and has apparently been a developer for over 30 years in a range of environments. Whilst I don't find it impossible to imagine that he's made up the problem it seems doubtful on balance - what would he gain?
He says he's fallen in to the trap himself of making fun of others [apparently] honest contributions.
Yes, that's not an argument but this
>Without hard evidence, he's talking out his defecation hole. //
is fallacious reasoning. It is not the case that failure to present examples of pathological behaviour means that behaviour is a fiction.
If your position is true and indeed he is literally the only person to believe that sometimes OSS leaders have made fun of the code of other [attempted] contributors then it's interesting to speculate why that might be so.
One possibility of course is that those who deny it's a problem simply can't see it despite it being there.
Also, if we can accept him to be a "leader" then we now know at least one person that he's being critical of ...
If the author did that, we'd all be talking about how githubuserxyz is such an ass for belittling contributors and how dissimilar we each individually are from githubuserxyz.
It doesn't help the conversation - which is one that the community needs to have.
If a lot of other people are talking about the negative consequences of something you personally haven't experienced, generalizing outwards from your own experiences to conclude that something a lot of other people have experienced doesn't exist is a pretty wrongheaded way to approach life.
Maybe you've just been lucky.
Without evidence, it's just talk.
You're wrong. Generalizing from your personal experience and from verifiable facts while paying little attention to vague whining and anonymous accusations (of unnamed alleged perpetrators, no less!) is an excellent way to approach life.
For some reason, this reminded me of The Racist Tree. http://24.media.tumblr.com/tumblr_lzx6xxNlXV1qi049to1_1280.j...
Who was it that said, "I will tolerate anything but intolerance"?
I feel strongly about this because I was traumatized by interacting with Ullrich Drepper at an impressionable age :)
But then people like Duke Wellington started getting publicly mocked in the papers for engaging in duels and the practice died out almost immediately.
So, talking about how people in general ought to be nicer won't actually change how people behave. Calling out githubuserxyz for being an ass, though, will make people afraid of being mocked like githubuserxyz and so actually change their behavior.
Seriously, there's an excellent book called The Honor Code about how these things happen historically that I would recommend.
Has it ever occurred to you that many people strongly dislike it when others attempt to change their legal, nonviolent behavior? It's nosy, condescending, self-righteous, and creepy.
This leads me to think some aspects of personality and how we treat others are innate. Jerks can be talented and successful too, and just remain Jerks. It takes all kinds.
"you are wrong about this, because I say you are wrong." [turned out: he was dead wrong!]
"stay home if you want to answer phonecall from your dad." [knowing he is in the hospital]
"today you have been all day on the phone." [after talking with dad for 3 min 35 sec]
"stop pinging google to check if the net is working."
"ping doesn't tell you anything."
"I hate those Chrome tabs -- they are affecting my search results."
"I'm a CTO - I can be rude."
"Don't work here if you have family."
"If we succeed with this project [24-months period], we may get million dollars bonus" [perfectly knowing its impossible and simply not true]
"I fixed Asia!" -"Cool!" -"What did you do?" -"At 3am? I was with my wife and kids." -"Well, I hope that helped alot in your career." [next day, after he IT-supported Asia at 3am]
"You see my desk? Apple, Apple, Apple..."
"You are on a McDonalds French Fry Guy schedule, ha!" [after working 14 hours straight from 7am till 9pm]
"You work long hours and are not paid for those, because you are upper managment and should be proud of it". [after working 14 hours straight]
"Don't ask for that, you are not upper managment!" [when something failed to work and needed to figure the details to troubleshoot]
"You are upper managment, you should know this!" [when I didn't know something IT-related]
"You won't get the bonus, you are not upper managment!" [bonus question around Christmas time]
[email provider down; on the phone with support] "Why are you calling them? chat-support is faster!"
[days later, the same issue; on the chat] "Stop wasting time on chat, just grab a phone and call them!"
[after 12 hours straight work on 8hr schedule] "I completed the project, I am going home" -"Fine with me, as long as you are Symfony Framework specialist" [next day after staying extra 2 hours to understand basics of Symfony Framework] -"Never mind, we won't use them anyway!"
Those were the perks.. there were some better here and there, but honestly I started making notes way too late. But my tech-friends always loved to ask whats new with my CTO. They used to call him "Chief Toilet Officer", because frankly speaking he couldn't do shit right.
The idea of a canonical ruleset exists mainly so people don't have to make vague references to "common sense" and such.
And I just don't see a lot of bad issues/pull requests out there, but the system still needs a managerial overhaul that scales, though. Better to nip the problem in the bud, before it downright breaks GitHub.