Why People Don't Contribute to OS Projects, and What We Can Do About It

Why I care, and you should too.

Many people know that when I can, I help Ed Finkler out with Spaz. I don't contribute to the code base, but I help with end-user support, and I help coordinate the efforts of other end-user support people. Many people also know that I work with PHPWomen and of our attempts to boost open source involvement with our members through the PHPWomen Partnership Program.

Interestingly, the issues involved with both of these groups overlap. As those in the open source community who either contribute to, use, or advocate open source projects, we understand the importance of keeping them vibrant and active. We understand how great it is to be a part of a growing project we believe in. We understand the benefits of being an active community member. We understand that it not only helps the good of those around us, but it helps us hone our own skills. So what can we all do to get more people to contribute? Even if you aren't a project lead on an open source project, you don't want to see it fail. The obligation to keep things going lies within us all.

I get curious about things sometimes, and when I wondered "where is everybody?" I wasn't sure of the answer. There are so many great opportunities in open source projects. Are people taking advantage of them? Do they even know about them? Do people even care?

What the "research" showed.

Naturally, my first thought was to ask Twitter. So in this completely non-scientific poll, I asked developers who weren't contributing to an OS project, why they weren't contributing. At the time of this post, there were responses from 264 people, and I allowed people to choose more than one reason. Of course this is by no means exhaustive, nor is it meant to be a substitute for any real research on the matter. But I think this does give a little insight.

Although there are many things that keep us from contributing (including one person who "thinks people like Ed Finkler are scary"), the top three replies, by far, were these:

1. Not enough time.
2. Not sure where or how to contribute
3. I'm not confident enough in my own skills.

Numbers 1 and 2 were no surprise to me. Funny thing about Number 3, though; I added that as an afterthought. It was one reason I personally always shied away from contributing, but I figured surely others were more confident in themselves. I found these results quite interesting, and I'm a bit relieved that I'm not the only self-conscious one out there.

So what?

How can we overcome these obstacles to encourage more participation in our projects?

Let's look first at Number 1: TIME.

It would be great to have more time. We all need more time. Nobody has enough time. Yeah, yeah. We get it. I don't foresee that changing anytime soon, so how can we work with this? Here are some ideas for project leaders/devs:
  • Break up big jobs into little jobs. If you need help with documentation, break it into smaller, more manageable chunks. Chances are, you'll have better luck getting someone to write a one-page doc as opposed to a 20-page doc.
  • Quantify time commitments. I tried being a member of our elementary school's PTA, but for some reason I didn't quite fit in with the other moms (long story; I'll tell you over a beer sometime.). While I still think those people are crazy, one thing I'll give them credit for is that they know how to recruit volunteers. They tell you up front how much time a task will take. Only then can volunteers make an informed decision about whether they can step up. Much like putting a monetary price on something, you are telling people how much it will "cost" them.
  • Keep time commitments minimal.. Something else the PTA does right, is that they've mastered the art of breaking things into 15 or 30 minute increments. They tell you up front "this task will take you 15 minutes" or "we need someone to take carnival tickets for 15 minutes." And really, who doesn't have 15 minutes in the day to work on something they care about? (Ok, there may be one guy out there; his comment on the poll was that "his wife would kick his ass for doing something that took away from family time without financial recompense." He might not really have 15 minutes to spare, poor guy). Even bigger tasks can be broken up per day; 15 minutes a day works out to almost 2 hours a week. Not too shabby.

What about Number 2? UNCLEAR EXPECTATIONS.

People aren't mind readers; they like to know what you need from them up front. Here's what we can do about this:

  • Define what exactly is needed. We've started doing this with the PHPWomen Partners - by explicitly defining areas where the most help is needed, you make it easier for potential contributors to see how they can help. Makes sense, right?
  • Make the "how to contribute" page on your project website clear as day.Help them help you. Don't make potential contributors search for or guess what you need help with.

And Number 3? LACK OF CONFIDENCE.

If we don't keep the cycle of contributing going, and include new people on a regular basis, inevitably the cycle will die, and the project will stagnate. We all have to start somewhere, and we all make mistakes. So what can we do to convince people that you don't need to be a super ninja coder to contribute to a project?

  • Save some low-hanging fruit for beginners. It's easy to do the easy things. But think about it, if you only have more advanced things on your to-do list, then your chances of attracting a beginner are much more slim.
  • Communicate that you have a welcoming atmosphere. We do this through the PHPWomen partnership program also. The goal is to encourage participation, and to reassure new members to the community that they will be accepted. Remember, potential contributors to your site are not mindreaders. If you don't tell them, they don't know.
  • Appoint an ambassador. Having one person that can help newcomers to the community understand how things work, what it means to contribute to open source, where to go for questions, and that sort of thing can go a long way in actively recruiting new participants.
  • Make it clear you have other needs besides code. Many projects are also in desperate need of design, documentation and support help. Many also simply need users of the software to help other users or to help spread the word.

The bottom line is, if you're involved at all with an open source project, you have a vested interest in seeing it thrive. In order to do that, you need to "sell" it. You need to sell how great it is to use, and also how great it is to work on it. You need to actively encourage people to participate by keeping in mind the three main obstacles above.

What other ways can we recruit new faces to our open source projects? I'd love to hear your thoughts.


9 Responses to Why People Don't Contribute to OS Projects, and What We Can Do About It

  1. 29121 scrogson 2010-03-31 16:47:13

    Great article! I for one find myself in the confidence category. I know that with more time of looking a projects source code and working on more complex personal projects will help my skills growth, which ultimately will boost confidence to squash some bugs.

  2. 29122 Dörte 2010-03-31 16:50:34

    Really, its strange. I quoted that there definately is a leak of time but also a leak of confidence. The one Project I would´ve contributed to is led by (sorry) assholes (ZF). The other is a big piece of crap and it would take too much (PMA) that others would´ve already fixed (frames etc) wich kind of shows me that changes in that direction are not whanted. So what?
    But thanks for unscrewing these topics, the Software World definately needs people contributing and you might have risen that number by now. If I somehow find a nice community with good coding styles, why not :)

  3. 29128 PHPGangsta 2010-03-31 17:11:44

    Thanks for that interesting poll and article, I really hope that more people will help the open source community, regardless how they do it.
    Take 3 minutes and think about a world without open source. What the hell...

  4. 29136 Ilia Jerebtsov 2010-03-31 18:01:58

    I haven't contributed to the community primarily because OSS development is a very social activity, and I'm no good at socializing. I have no idea how to walk into an established circle of people and start doing things.

    Most of the time I think about interacting with other people in the "community" I feel like I'm just going to be annoying. It's all rather intimidating. People don't know me from anywhere, I don't know them, they all know each-other, there are all these unwritten social protocols, and I know that human nature tends to make people defensive against "outsiders" that don't think along party lines, which is hard since you don't know what those lines are supposed to be. It doesn't help that most OSS stuff is very linuxy and I'm a Windows/.NET person.

    Naturally, since I don't interact that much, I don't have a good measure of my skill, nor a good idea about what kind of contributions would be valuable. These are symptoms, not causes, and I wonder how many people out there are like me.

    I'm working on getting better at this whole social thing, but of course there's the whole time constraint too...

  5. 29143 Colleen Dick 2010-03-31 18:45:57

    I can relate to the "did not quite fit in with the other moms" teaser. But Question: in this enlightened decade, why is PTA the realm of exclusively female parents. They might as well change it to MTA. But then that gets confused with the acronym for Mail Transfer Agent.... oh well.

    I haven't volunteered for an open source project since the one bad experience I had because I haven't found one where it is both social and a social fit for *me*. I do enough solo coding in my real life. If I'm gonna do it free after hours there has to be a sense of cameraderie / fun / friendship / acceptance about it and it has to work for *ME*. When both the project and the culture surrounding the project is narrowly defined in young USA male geek terms, (i.e. it appears you have to like a certain type of music or food or activity and speak a certain lingo to be accepted in the group) I'm just not inclined to put myself out there. There are just other things to do with my free time that are have better odds of being personally fulfilling.

  6. 29190 Morydd 2010-03-31 23:50:32

    I'm interested to learn more about how an OSS project can make itself more welcoming to people who are unsure of their abilities. Whether it's a lack of confidence or not being sure where they can apply their abilities. The project I'm involved in is, I think, very welcoming, but I feel like there is a lack of "easy" stuff for someone new to dive into. I also feel like we don't do a good job of attracting and guiding people who are interested in helping outside of the actual coding. I think it's not just the developers who have trouble figuring out how to fit into a community, it's also communities having trouble figuring out how to best use the talents they are offered.

  7. 29255 Jordi Boggiano 2010-04-01 05:49:24

    @Ilia Jerebtsov (and others): Honestly this is unfounded fears. I don't know if you had a bad experience or if you just made up that fear for yourself, but I would suggest you just try it. It might seem depressing that nobody knows you and some other people have big names etc. but we all start as nobodies. Programming isn't old enough that the human brain has built casts around it and that some guy can become known because his parents were big stars or part of the royal family, so it's all about what you do.

    I do understand your point about entering a social circle, but mostly if you get on IRC I think you can get a fairly easy first contact with some people involved in a project, most geeks are kinda easy to get along with. Besides, any open source persons with some sense will not tell you to fuck off if you want to contribute, contributors are so rare and precious that you can't afford that in my opinion.

    If however you're unfortunate enough to hit one of the pedantic morons out there, either drop the case and go somewhere else, or try harder if you really want to, but in any case please don't make a generality out of it and give up on contributing to open source because of it.

    Now.. when you begin contributing to a project, you should be ready to take some heat, it's definitely part of the open source business to be able to accept criticism of your work, no matter how good you are, but as a beginner you're more likely to receive bad feedback since you might not know the entire project too well. Again any person with some sense should help you rather than give you hell, so ask nicely for it.

  8. 29299 Gerard 2010-04-01 10:38:30

    Great blog post.

    I think these tips apply to any self-starting, community, volunteer effort, whether it be FOSS, the PTA, coworking, user groups, what-have-you.

    BTW, "his wife would kick his ass for doing something that took away from family time without financial recompense" that is hilarious. I did not write that but I totally could have.

  9. 29311 LornaJane 2010-04-01 12:12:50

    I find it easy to get involved with a project in terms of being on forums and helping out with user stuff - but I only started contributing code in the last 6 months. Even then it was only when I logged one too many bugs for joind.in and its owner, Chris Cornutt, politely suggested I might fix them myself. Without that direct approach I doubt I'd have done that.

Leave a Reply