Open Source: A Howto On Joining

It seems like pretty regularly, I hear from people – more often in person – asking one of two questions:

a) Why would someone get involved in an Open Source Project?
b) How do I get involved in an Open Source Project?

Both are pretty good questions, so here I go..

After a poorly timed layoff – is there ever a well-timed one? – I was looking for a job. I had some great experience with a handful of major Federal agencies and projects and had worked in a variety of roles ranging from developer to project manager. I had some experience on the commercial side of things with ecommerce, shopping carts, standard stuff. Despite all of this, I had nothing to show for myself. I could tell potential employers and other developers about the projects, but I had no code, no system architectures, and no database schemas to actually show. I had a handful of dated User Interfaces and that was about it. That's when it all clicked for me.

Contributing to an Open Source Project was a way to build up a public resume I could actually show people.

So how do you get involved? Well, unless you happen to have a name like Rasmus or an employer like Redhat, not many projects are going to let you join until you prove yourself. Luckily, for most projects, proving yourself is quite easy… you have to progress from being a passive user to an active user and then work for an invitation. I discussed these layers last week.

Start by testing new releases and reporting bugs, handle a few support questions, fix a few bugs and send patches, start making suggestions to make the tool better. Doing these things will let you become an active member of the community and help establish you as clueful. And it *is* important that you do things in this order. When a newbie comes in with lots of “good ideas” without actually having any understanding, the suggestions may be put on the todo list, but it's often near the bottom. Just remember that all of this is public information, so if you act like a fool we'll all know about it.

The smaller the project, the faster this will go and the sooner you'll be invited/can ask to join the core group. If the lead of the project is the only person on it, odds are he'd appreciate someone else lending a hand and being helpful. For a project like dotProject, it could take months and lots of work. For huge projects like Mozilla… well, your guess is as good as mine. I've never tried to join a project that large.

Finally, once some people start contributing to a project, some people go the “commit-whore” route. They work long enough to get commit access, make a few contributions, and then simply disappear. On Sourceforge, you'll find them as “contributors” to dozens of unrelated projects – which makes for an impressive resume – but is completely worthless. Personally, I don't think it's unreasonable to eventually drop these people if they haven't contributed in months or years, but I'm only one guy.

So the point is that joinging an Open Source project is great resume fodder. It gives you a public project you can discuss, share code from, and potential employers can actually review. Joining a project on the other hand takes time and effort, so make sure you choose a project that you find interesting and you'd want your name attached to.