Open Source Comes to Campus/Curriculum/Finding a Project

So you want to contribute to an open source project. With tens of thousands of options to choose from, how do you find one that's right for you? This activity is meant to help you narrow down your options to a few different projects you can pursue.

To get ready, all you need to do is take out a piece of paper, open up a text editor, or start an etherpad. You can use the template we've made in this etherpad.

Optional: find a friend or groups of friend to go through the activity with. They can help with each step. Maybe you'll even pick a project to contribute to together!

Step 1: Brainstorming Projects
Read through the following questions and think about what projects your answers suggest. Write them down on the etherpad:

What open source software do you use? For instance, if you use Firefox, are you interested in helping improve it? You can also consider related projects, in this case Firefox add-ons, or programs/libraries that Firefox uses to function.

Is there a project whose goals you find compelling? For instance, you might want to look at humanitarian projects like Sahana, or projects relating to a hobby of yours like music, videogames, or reading. If you're studying science or engineering, you might look for projects that are used by people in your field.

Are there any people you know who work on open source projects? Professors, classmates, friends? Getting to work with someone you like is a great reason to join a project!

You can also search through lists of projects and write down any projects that catch your eye. Here are some resources that list open source projects.

Contacting Projects
What open source software do you use? For instance, if you use Firefox, are you interested in helping improve it? You can also consider related projects, in this case Firefox add-ons, or programs/libraries that Firefox uses to function.

Is there a project whose goals you find compelling? For instance, you might want to look at humanitarian projects like Sahana, or projects relating to a hobby of yours like music, videogames, or reading. If you're studying science or engineering, you might look for projects that are used by people in your field.

Are there any people you know who work on open source projects? Professors, classmates, friends? Getting to work with someone you like is a great reason to join a project!

To find projects related to some topic, you can google “[topic] open source” or “[topic] free software” and see what turns up. You can also try the links listed here: https://openhatch.org/wiki/Project_sources

Finding the project & its tools

The simplest way to find the project's main website is to google it. A well maintained project will have links from the website to their source code repository, issue tracker, mailing lists and IRC channel. Sometimes this information will all be bundled together in a “developer guide”. Larger projects may have multiple mailing lists for different people (developers, users, translators, etc) and for different parts of the project.

Some code hosting services, such as Github, provide issue trackers as well. You can usually find a link to the issue tracker in the code repository and vice versa. Popular services include Github, Google Code, Bitbucket, SourceForge and Gitorious. Popular issue tracker services include Bugzilla, Github, and Google Code.

Evaluating the project

Is the community active?

When was the last commit? When was the last bug report? When was the last mailing list post? Is there anyone in the IRC channel? When was the project website last updated?

Is the community welcoming?

How do they treat contributors? Read through their mailing list – are new contributors welcomed and supported? Look through the bug tracker – do non-maintainers submit patches, and do maintainers work with them to get patches into acceptable form?

To what extent do they care about users? Does their project explain clearly what it does? Is there good help documentation and/or FAQ? Do they have large user group communities? A community that treats users well is more likely to treat new contributors well.

Is the project used by its target audience?

You probably want to work on a project that provides value to people, whether that's a small, niche group or a user base of hundreds of thousands. To figure out if a project is actually providing utility, you can ask: is it packaged in Debian, Homebrew, Ubuntu or Fedora? If so, it means at least one person on the project cares about getting the software to users. You can also look for “use case” or “testimonials” on the project website to see how the project has been used. For scientific projects, you can ask people in the field or see if the software is cited in articles.

Activity: Find a project for your partner

1) Spend a few minutes thinking about yourself and what kind of projects you'd like. At the end of those minutes, share what you've figured out with your partner., and they'll share what they've figured out with you.  You can write some keywords about their interests here:

2) Find 3 projects using the strategies outlined above.  For each, find the source code repository, the main developer mailing list, the IRC channel, and their issue tracker:

Project Name Source Code Mailing List IRC Channel Issue Tracker

For each of the 3 projects, evaluate if the project is active, welcoming, and used?

Project Name Is it active? Is it welcoming? Is it used?

BONUS: For each project, try to find out the story behind why it was started, and/or why contributors are getting involved today.