Contributing to OSS

I use a good deal of open source software in my day to day development and maybe I'm just lucky, but I tend to find bugs in a lot of that software. I'm also the kind of developer that loves to dig into unfamiliar code and figure out what is going on. This usually leads to me tracking down the issue and submitting a patch back to the project. In just the past couple of weeks I've submitted, and had accepted, patches to both the Apache POI project as well as the Firebug project. Now, I'm far from an expert Java or Mozilla developer, but to fix a lot of bugs you don't necessarily have to know the technology in question backwards and forwards. Far more important is the fact that you have found the bug in the first place and have the ability to reproduce it consistently. Once you have done that you can usually track down the one or two lines causing the issue and figure out a solution. This type of bug fixing has lead to my becoming a core committer on a couple of high profile CF open source projects. Having said that, becoming a committer isn't all that common, and you shouldn't necessarily assume your patches will be accepted by the project. I've definitely had more patches ignored or outright rejected than I've had accepted and included in projects.

So you may think, why should I take the time to try to figure out and fix a problem in someone else's software, especially if may not even be used? Well, beyond karma, working on an open source project can be an excellent learning opportunity. I can honestly say I learned more about software development in my brief stint as a FarCry commiter than I had in my previous 5 years of CF development. And my experience working on ColdFire has made me better JavaScript developer ten times over. I think the main reason for this is that working on an open source project gives you an opportunity to read a lot of code. Some of that code is good, some is truly great, and occasionally some is downright bad, but you learn from all of it.

I realize that you may not always have the time or skills necessary to debug an issue on your own, but you can at least report any bugs you find. A bug report with good test case which reliably reproduces the issue is the next best thing to a fix.

And contributing doesn't have to be limited to code. Posting on forums and mailing lists, blogging about the software, making suggestions for improvement, writing documentation, buying something from the developers wish list, or even just writing the developers to let them them know how much you appreciate their work, all of these things could be seen as contributions. So, have you given back to your favorite open source project or product lately?

Note: After re-reading this post I realize it may seem like I'm asking for contributions for projects I'm involved in. I'm not. This post was prompted by news of the release of my Firefox patch and the sense of pride I got out of making software I like, software used by thousands of developers, just a little better. I just wanted to let people know how rewarding contributing to existing open source projects can be.

Comments
Mark Mandel's Gravatar Couldn't agree more!
# Posted By Mark Mandel | 7/17/08 12:53 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.8.001.