Dealing With (Not Dealing With) the Open Source Assholes

Jumping into the open source and js world has been a surprising psychological crash course/nightmare for me. There’s something about open source and open forums that encourages socially-inept jerks to deride people and software. It’s especially prevalent in certain communities. It can make you doubt yourself, or even worse, force you to adopt a behavior you don’t want to.

This can be off-putting to say the least. Your world can turn into a crazy, competitive, self-questioning altworld if you’re not careful and there are some things I’ve learned about turning that around.

Go to the right meetups. Meeting some of the people in your community in person can actually be a relief of sorts. People that sound stern on the internet are usually way nicer than expected in real life. But don’t stick around meetups or conferences that aren’t welcoming or have an “Glitterati” feel, being physically in such a high stress environment does nothing good for you, and it’s unlikely your single presence will change anything.

Follow the right people. Twitter and Github are the best things to happen to open source since IRC. But as soon as someone says a software project is “retarded”, unfollow them. Seriously, you don’t need to hear that crap. Follow people that are saying positive things, giving constructive criticism, encouraging people, giving propers where propers are due.

Don’t let anyone cramp your style. Feedback is important and of course you should listen to it. If someone says something negative about your project in an unreasonable way, don’t take it to heart. There’s something good in every project (it’s open source, it already has one thing going for it), no single project is complete crap, keep the good things and learn from the criticism.

All this boils down to basically “surround yourself with good people”, it’s advice that applies to everything, but it’s good to remember that it’s just as important to apply it to your work and hobbies. Tina Fey (<3) sums it up in Bossypants (<3):

When faced with sexism or ageism or lookism or even really aggressive Buddhism, ask yourself the following question: “Is this person in between me and what I want to do?” If the answer is no, ignore it and move on. Your energy is better used doing your work and outpacing people that way. Then, when you’re in charge, don’t hire the people who were jerky to you.

If the answer is yes, you have a more difficult road ahead of you. I suggest you model your strategy after the old Sesame Street film piece “Over! Under! Through!”

Again don’t waste your energy trying to educate or change opinions. Go “Over! Under! Through!” and opinions will change organically when you’re the boss. Or they won’t. Who cares?

Do your thing and don’t care if they like it.

This brings an important point, sometimes you can’t avoid collaborating on a project with a smartass. Take the high road and don’t ever respond to snarkiness with snarkiness. If you get anything from this blog post it’s…don’t let it change you.

37 thoughts on “Dealing With (Not Dealing With) the Open Source Assholes

  1. Nicely written post. I know I sometimes point out problems with projects or technologies, but I usually try to frame it as trade-off or otherwise assume that the authors know what they’re doing (even if I don’t agree). However, please call me out if I ever slip.

    Also, this link may not explain any of the behaviors you discuss, but I think it’s a great read and there’s good insight in it:

  2. As far as ableist language goes, I wish this post hadn’t (correctly) decried use of “retarded” as pejorative, and used “crazy” as a pejorative, at the same time :-\

  3. Which is to say: I’m bipolar; I’d be sad if an open-source community decided I shouldn’t participate in it because I’m a crazy. I am, on the other hand, very happy not to use abusive and hurtful language. I think that associating abuse and harassment with mental illness does everyone a disservice, because besides othering those of us who have mental illness, it implies that harassing/hostile people can’t help it because they have a disease, rather than that they do it because they’ve failed to resist and question social power structures that give certain kinds of people a platform.

    1. I’m also bipolar, and I have to say that I’ve never twigged on “crazy” myself. I really do think it’s quite different from “retarded” in its usage and effect. I would certainly react differently to “my hair looks crazy today” and “mom made we wear this retarded outfit”, and I’m actually crazy!

      (I’m not sure it was even used as a pejorative here any more than “competitive” is, but that’s sort of beside the point.)

    2. Hey Tim, that’s a good call, I replaced “crazies” with “jerks”, which is what I really meant, an unfortunate word replacement to make /-:

    3. Hehe, I’m also Crazy! And proud of it! :D

      My psychologist thinks that I’ve got ADHD, Asperger and that I’m also Bipolar. My mom suspected that I had Asperger a long time ago, but I did not want to get stamped with that I’m different in someway. I’ve always fought my whole life to fit in, so guess what if I said I did not want to take any tests.

      But now I’m going to make some kind of test in January, if the world doesn’t end the 22nd this year ;D

  4. Ah, but Tim, you’re making an assumption that “crazy” is being used as a catch-all for mental illness. While there is no medical condition known as “craziness” (only a legal one), this is not the case with retardation, making its use a bit more inappropriate. I’m nitpicking for fun, though, your point is pretty fair.

  5. I’ve been thinking for a while (and sporadically talking about) that maybe it’s time Mozilla put together some sort of simple-but-real social contract that would form a baseline for acceptable & expected behaviour in our various communities.

    There are other open source projects that have implemented something similar, and it seems to be pretty effective. Maybe it’s time we started talking about this more seriously, because the hostile environment we end up in at times is a detriment — not only to the existing community, but to bringing new people into & growing our community.

  6. And my orders are to weed out all non-hackers who do not pack the gear to serve in my beloved Corps.

  7. ….and this is why many of us choose to write Ruby.

    * A kind and charismatic leader
    * A community that tends to be at the forefront on social issues (Dave Thomas: Why are there no women here, that’s bad vs. e.g. a certain PHP framework devs leader’s: “Hey women here isn’t my concern)
    * Vibrant meetups
    * Low tolerance for crusty trolls using volumes of crusty knowledge as ammo

    Or, succinctly: MINSWAN :Matz is nice so we are nice

    1. My experiences of both Ruby and Rails communities have been very different to what you describe here and are part of the reason I bother with neither.

    2. I considered looking into Ruby and Rails some time ago but decided against it after the infamous Pornstar presentation at Gogaruco 2009. More precisely, after the first few rounds of fallout. It’s possible I’m doing them an injustice but from where I’m standing they look like exactly the kind of pompous frat boys everybody in this thread seems to want to avoid.

  8. I don’t think this has anything to do with open source – social ineptitude like this is rampant throughout the world of software. It might be more noticeable in open source for two reasons: first, the devotees have sadly merged their political bias with their profession, so those discussions (which really come down to opinions and are relatively difficult to get to a clearly right answer) come up more. And second because from what little I can tell (never having directly worked on any open source projects but being aware of them for about 16 years) it seems like if you have the credentials of “believe in the philosophy” and “want to contribute” carry about as much weight as “are not an insufferable ass.”

    From what I can say directly about the world of typical, closed source software (where I’ve worked for the past 13 years) is that that last characteristic is often a dealbreaker for someone to work on a project. But it’s certainly on both sides of the fence.

  9. That looks like sound life advice, Ms Arthur, and I’m sure it helps get through the working day, but I’m not sure more mildness is what the world of computing needs. I’m in a bit of a different position to you. I’m not much of a developer but I’ve been peripherally involved in open source for over a decade and I’ve watched things get harder and harder to do and take orders of magnitude more computing power, and all the while the general opinion is the old way (of doing the things I wanted to do) was horrible and wrong!

    The big catch is the old systems *did* have serious faults, but the hotheads who call them retarded are following exactly the same path as the hotheads who made the old systems. Unfortunately these hotheads are the ones who promise and deliver short-term benefits. Other short-sighted hotheads then come along and, while calling some of the old stuff crap, proceed to actually build on other parts which are just as bad if not worse.

    If anything it’s even worse than that. It’s said if you want to be the next big thing in software, look back just 10 years or even less for an idea that failed then, and re-market it. It’s not like the computing world would be any better if you don’t, because it is constantly recycling ten-year-old failures anyway! This has been going on for a long time, so that very nearly all of computing today consists of a series of very poor quality layers.

    There are a few alternatives here and there, enough to show what we could have, but they take a real re-education to understand. Worse, to get away from the layers of crap you have to replace large chunks of infrastructure. Who wants to do that? And what’s the sense of any hotheads correctly identifying one little piece of the mass as retarded, anyway? What if what we have is the best we could have?

    Actually, there may not be much sense in what most of them are voicing, but there is a tiny little bit of sense in listening. There is always a small chance you will learn something which could make your job (or a future job) far easier.

  10. Thanks for writing this. I tried to say pretty much the same thing a couple of times but it never came out quite right and so I never published anything. From now on I can just link here. Nice.

  11. lollin at the crazy retards

    also waaaah people made fun of me so I have to ignore them instead of figuring out why they’re making fun of me

    (hint: it’s usually because you’re doing something wrong)

    1. I’m not talking about regular feedback. I know I respond better to “you should def do X instead of Y” than “Is Heather mentally retarded? Why the fuck would you do Y?”.

      People get defensive and are less likely to want to fix something if someone lambasts them because you’re proving someone right that you now don’t like.

      It’s not just programming or open source this applies to, but it’s put up with more in programming, a lot less in real life.

      1. The crux of your issue is that you apparently don’t consider programming real life. People say shit like that because they’re taking it seriously. Spend less time whining about their prose and more time being alarmed that your code pissed someone off that much.

      2. The crux of *your* issue is that you don’t consider *open source* real life. If you behave like the average open source jerk in a professional or academic environment you will be asked to leave. Actually I think that may be part of the proximate cause of the problem: people are forced to code in a dysfunctional corporate bureaucracy where even *useful* criticism is impossible. Then after hours it all breaks out of them. That, and the Greater Unified Fuckwad Theory of course.

        Also, this:

        > Spend less time whining about their prose and more time being alarmed that your code pissed someone off that much.

        makes me suspect you’re a noob. *All* code pisses off *someone*. If you make it concise people will call you stupid for how fragile it is. If you make it robust people will call you incompetent for how bloated it looks. If you make it tight you’re an idiot for not being portable. If you make it portable you’re a fag for being clumsy and slow. And of course you’re *always* using exactly the wrong language for the job.

        Anybody with any real experience knows that discussions about code are exactly like any other discussions: if you have to resort to invective it’s probably because you don’t have any actual arguments. That, or you’re a douche. I, personally, completely ignore assholey criticism. If only assholes criticize my code then there’s probably nothing wrong with it.

  12. Interesting. WordPress is informing me that

    You and null other bloggers like this post

    Regardless, I do like it very much. I agreed with the comment by Tim Chevalier. A diagnosis of bi-polar shouldn’t be called “crazy”. And I liked how pleasantly and appropriately you, Heather responded to that.

    Itinerary’s webcomic was cute.

    I had a programmer/ analyst who worked for me and said the reason she was surly, not productive and contentious every morning was because she was bi-polar.

  13. Dria, a couple parts of the mozilla community have been using / experimenting with statments about abusive behavior. dmose has done a bunch of this in the Thunderbird world, the Rust effort has a code of conduct. I’ve seen each of these groups issue reminders to people about their tone, and believe (though can’t personally vouch for it) that the Thunderbird folks have in fact banned some.

    Sounds like it’s a good time to start talking about adopting these more widely.

  14. Something like this should be shared with newbies to programming (and pursuits in a variety of other fields–take a look at advanced physics and/or math forums and it’s the same thing) so they know what they’re in for. When one is new to this stuff, one can quite easily surround themselves with a group of miserable and egotistical individuals.

    From my perspective, the worst part is not that this behavior is contagious, but rather that one often mistakenly associates the field itself with this negatively rather than the real culprit: the community. Regardless of whether or not the pursuit is a passion or just a career (or both), this certainly doesn’t help people stay interested in technical and/or scientific fields (some cultures certainly have other problems with encouraging participation in the sciences, but when I see the community itself discouraging it all the while condemning those who do not participate, it is very infuriating).

    Now, I’ve heard some people actually try to argue that this behavior makes people more thorough. This is bullshit. Criticism alone serves this purpose, and criticism can be provided in a way that is absent from such inflammatory aspects. When one finds themself under the constant weight of unforgiving and sometimes even malevolent criticism, out of fear one is less likely to keep an open mind and thus innovate.

    And then there’s the fact that this behavior simply makes life less enjoyable for everyone. Maybe this is the most important thing.

  15. The software world would be a better place if there was less software which deserves to be derided. The way I see it, there was legitimate derision when bad software ideas were introduced. The bad ideas persisted because many people prefered to believe in the promises of those ideas than look at the (hard to understand) reality.

    The intelligent people who first derided the bad ideas gained followers who were eager to fight but only thought they understood how to do it right. To oversimplify a little, different groups of these followers incorporated different bad ideas of their own and ended up fighting between themselves. Bad ideas continue to flourish and derision has become the norm.

    Today it’s hard to find either employment in the software industry or even an open source project where you can avoid working with bad ideas, and thus derision abounds.

  16. I noticed that big followers count often means “do not take this guy seriously, he’d probably mentally ill”. Popularity changes even very good people. Don’t give up and just do what you gonna do. We are here for coding and not for tweeting. When someone started tweeting negative instead of doing his job, that means he’s sick and can’t code.

    Proof for the last sentence is me. I just got dengue fever and can’t do what I often do (i’m writing some opensource javascript), and only can leave this poorly written comment. Normally I would like to not comment negatively about someone.

  17. This is nicely put and part of an overall pattern I see of people working to acknowledge and address these problems.

    I have an independent complaint: “Twitter and Github are the best things to happen to open source since IRC.”

    IRC is an open protocol. Twitter and Github are both PROPRIETARY! They are useful for various reasons, but they are not good for Free Software! (okay, you said “open source” and are talking about collaboration and perhaps ignoring whether it is a problem for freedom when we rely on centralized proprietary platforms, still…). Twitter and GitHub are not really great developments for Free/Libre Open Source. They are far more restrictive, locked-in and problematic than they would be if they were FLOSS.

  18. This article helped me feel better about my own open source project. I’ve spent 8 months on it and despite emphasizing it’s pre-alpha I hear things like “It’s too slow” or “It’s too generic”. They are critics of an unfinished product! I think it’s just popular insanity talking.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s