I’ve been trying to scratch an itch with an allegedly Open Source project I’m working with. I’ve spotted a few errors that I should be able to easily fix and contribute back to the project, but I’m hitting a wide range of obstructions to my participation.
From an Open Source perspective, the ability for new users to become contributors (and then committers) is key to the health of any project. After all, people are more important than code – without people, the code will fall into disrepair. You have to take care of the community of users and developers around Open Source projects if you want them to succeed.
My first attempt to contribute something to this particular project was to try and start a discussion of the bugs I found. Unfortunately, this project uses web-based forums instead of mailing lists, which I personally consider a barrier to the healthy development of (technical) communities.
As a developer, I spend a lot of my time in email, and by now I’m efficient at processing it. Mailing lists are a push medium (messages are sent out to everyone on the list), whilst forums are pull (you have to visit the web site and trawl through the forums to find out what’s going on). There are many different web forum packages out there, and to learn how to use every one effectively is a time debt I’m not willing to incur. Web forums also require registration (and hence usually email address validation and additional usernames and passwords to remember), which can often take longer than mailing list subscription.
I’m willing to accept that web forums are the correct solution for certain communities, for example Moodle, and if I were to make a sweeping generalisation I’d say they are better for less technical groups of users. But I think for development you can’t beat a mailing list (with issue tracker notifications and SCM commit messages, ideally).
My next attempt at contributing was to try updating the project’s wiki to at least fix some of the documentation. I wasn’t able to edit any documents without first setting up a user account, but that’s standard practice. What really bugged me was that every time I tried to save a page I had to go through CAPTCHA validation eyetest. This is not a good way to encourage me to contribute!
My final attempt at contributing was to grab a copy of the source code, to build a copy of the latest code and then create patches to contribute back. Unfortunately the project’s subversion code repository has a very quirky non-standard layout (even though best practice is documented well, for example Subversion Best Practices and Choosing a Repository Layout). The project’s documentation explaining how to build the code was not up-to-date, and the build itself had undocumented dependencies that caused it to fail.
Given all these barriers, my project contributions will have to wait for another day. The worst thing? In most cases people won’t even have enough goodwill left to report this to projects, so projects silently drop potential contributors. Thankfully I happen to be in the same room as some of the project developers, so I can take a shortcut, but this is not usually the case…