Open Source Development and "Barrier to Entry"

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?

cheryl jerozal's Recent Field Reports

It's not enough to be good...

The Washington Post got a world-famous violinist to play (unannounced) in a DC metro station to see what would happen. …read more

Shortsightedness

Have you ever done something quick and dirty even though doing things "the right way" would only take a little more time? Maybe you didn't have a little more time? Of course. Haven't we all? Here's an example. Recently, I was creating a conference registration form for a client on her Plone-based site. Ideally, the client would have created and maintained the registration form herself, since the tool we were using has a graphical form creation interface. However, the documentation for the tool we were using was out of date. I thought about updating the documentation at that time and then helping the client through it, but that would have required a lot more time than just setting up the form myself. Also, I was going to be out of town shortly (for the NTEN conference) and the client wanted to start accepting conference registrations as soon as possible. In the circumstances, it seemed a reasonable solution for me to create the form, so I did. Many form tweaks later, I think I have spent more time on updating the form than it would have taken to update the documentation, which could have helped others besides just this client. …read more

Open Source Development and "Barrier to Entry"

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). …read more

A quick note on usability

Am I the only one who doesn't necessarily always fill out online forms from top to bottom? The way some forms are designed makes it seem so. For example, visit the free Basecamp account signup page. At the time of this blog post, if you fill in item 3 and then fill in item 2 with something different (and then click in a new field to have the change to item 2 "sink in"), what you have entered for item 3 is replaced. …read more