Last week I attended OSCON, in Portland, Oregon. It has been many years since I’ve attended, but OSCON continues to have lots of valuable content, and good advice.
I spent much of my first day there in community talks. One of those talks was titled Harnessing the good intentions of others for your Open Source project, which was full of really great advice about helping people overcome the barrier to entry to participating in an Open Source project.
Lots of people want to help improve Open Source projects. Many of those people have specific ideas, and the skills to make it happen, but the hurdles are just too high. Setting up a development environment and writing the code is only a part of it. Submitting a patch, and getting you to apply it, can sometimes be too much effort, and what might have been a useful contribution ends up thrown away because it’s just too hard.
The specific solution recommended in this talk – pair programming with potential contributors, right away, while they’re passionate about their solution – is a great one, when it’s feasible. The speakers recommended that as soon as someone expresses interest in contributing, you get them on Skype and walk them through the entire process of submitting a patch. This brings them up to speed, makes them feel appreciated, and gives everyone immediate gratification.
It’s also incredibly time consuming. Which is fine, if you understand that you’re investing in the future of your project. But not all of us have that kind of time.
Other important recommendations were:
Don’t be defensive: All too often, when a fix is submitted, we get our feelings hurt, and rush to defend the way that we did things. Being defensive can often lead to missing a great contribution, or a better way to do something.
Ask: This was a recurring theme in several talks. People like to be asked. And they like to know specifically what needs done. If you ask for a specific task to be done, you’ve saved someone the task of pawing through the code and ticket tracker looking for something that’s in their skill set. We may sarcastically ask if someone really needs an invitation to participate in an Open Source project, but the answer is, yes. People are much more likely to participate if you ask them to, than if you don’t. I’m involved in Open Source because 15 years ago someone asked me to do a specific simple task, and I did it.
Indicate the easy things: Make a tag in your ticket tracking system that identifies entry-level tasks. Resist the urge to do them yourself, but offer them out there for a beginner to work on. You’ll be spared the boredom of an easy task, and someone will have the gratification of being able to do something that’s immediately useful.