Open Source Development and "Barrier to Entry"

Categories:

Last week I had the opportunity to participate in my first "sprint". In a sprint, a bunch of people get together and work on an open source project for a few days. In my two days (and one night :p) of sprinting, I learned a lot, met some awesome people, and contributed to the start of a project. I highly recommend sprinting to anyone who gets a chance to do it.

However, one thing I noticed when sprinting was the difficulty of getting to a point where you can make progress on a project. For example, before you could work on my project, you had to download and install particular versions of six different tools. And then you had configure your system properly (set environment variables and run scripts and such).

If there were nice installers that worked for all platforms for the tools, maybe it wouldn't have been so bad. But there are often not installers, and all the tasks multiply -- you have to install other things to allow you to install the things you actually need. Here is the Windows install page for one of the tools my project required, for example.

(There are perhaps the most issues in getting set up on Windows, maybe because most open source developers are not using Windows so they sometimes don't bother to document for it and they sometimes don't have an easy way to test things on Windows. But I think this is a serious issue. Most people are using Windows. If we want anyone to be able to join open source development efforts, we have to make it possible for people to start contributing on the platform they already have.)

I was able to get the stuff I needed running after a few hours because there were people around who I could ask for help when I got stuck. And luckily my pretty-old (from before college) laptop did not collapse from the weight of the tools. But what about the person alone in their apartment who just wants to contribute? And what if they only have a dialup connection?

It's not like people who have trouble getting the tools setup don't have anything to contribute. But we aren't letting them get to a point where they can. I mentioned the issues in getting started to some other sprinters and they said "Yes, the barrier to entry for open source development is high." But no one mentioned anything that is being done about it.

What can we do to make it easier to contribute? Produce better documentation? (Lack of documentation is already a big problem in the open source world.) Set up more ways for programmers to connect to one another in person? Make better operating systems so tool setup goes more smoothly?