Picking a Project
Read through the questions below, and use the answers to help you find a project.
- 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.
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.
3) For each of the 3 projects, evaluate if the project is active, welcoming, and used?
4) BONUS: For each project, try to find out the story behind why it was started, and/or why contributors are getting involved today.
5) Share the projects you found with your partner!