Contributing to Open Source

Over the last few months, I've heard a common thread in a number the various Open Source communities I participate in or watch:

How do I get involved with the Open Source Community?

When someone considers how to get involved, they always think first and foremost about code.  They believe that the only way to contribute or participate on a project is to write code.  Well, not quite, so the answer becomes quite simple:

It depends.  What are your skills and interests?  That's right, it's not all about code!

First of all, yes, a project needs code that eventually get released.  But code is just one part of the Open Source Community.  Yes, it tends to be what we talk about, what we spend most of our time on, what starts/encourages licensing arguments, and what eventually gets released, but the other aspects can be even more important.

Next, so you work in HTML & CSS and not code… How many Open Source projects have you seen that are just ugly?  Well, ugly is probably an understatement… maybe “painfully ugly” is better.  You get my point.  Why not give some help cleaning up user interfaces?

Okay, so you're not a developer or designer… Can you answer questions?  Most projects have a mailing list and/or forums.  Why not help others get up to speed?  Even if you only handle some of the “101 level” questions, that frees up other community members to tackle more advanced questions.

Okay, so you don't have time to contribute to the forums or mailing list… Odds are there's some part of the software that you know better than many simply by using it every day.  Why not help document it in their manual/wiki?  Why not write documentation or share (correct!) code examples?

Okay, so you don't know a lot about how some specific component works… Do you know how it should work?  Or maybe your skills are in testing and debugging?  Why not submit useful bug reports with steps to reproduce the issue?  Why not write the specifications themselves?

Okay, so you're not a documentation, testing, or requirements type… What about something a little more local and immediately beneficial to your company?  Why not investigate the tools, concepts, and projects out there and finding good ideas to bring inside your company?

It doesn't matter if you can code.  It doesn't matter what your available time is.  It doesn't even matter what your skillset is… You have lots of ways to contribute.

Of course, there's one more thing you have to do… and some people find it the hardest:

You have to show up.

Update 26 June: My friend and security-genius Ed Finkler (aka @funkatron) has just made a similar Call to Action for the Spaz Twitter client.  He managed to ship the first Open Source application for the Palm Pre… the first day the platform was publicly available.  Wow.  Congrats, Ed.

Last month just before the closing keynote of php|tek 2009, I had the opportunity to talk about this topic exactly…. You can see it in this recording at about 1:50 in this keynote recording.