Open source projects can be a good way to geek out and do what you love, and having a side project can help improve overall job satisfaction, keep you at the top of your hacking game, and can often lead to other opportunities. The problem is a lot of people have trouble making that first step because they don’t really know where to start. Here are 6 easy tips for getting started with F/OSS.
1. Get Involved With the Projects You Use
This may seem obvious, but don’t try to jump into a project that you don’t use and don’t know anything about. Make a short list of open source software projects you might like to contribute to based on the software you are already using. Don’t forget about the potential for contributing to libraries and modules – there are advantages to developing on a project used by other developers. Do you use a framework, file converter, graphing library, or build tool that is open source and in need of bug squashing, optimization, or new features? These are prime candidates for a first F/OSS project.
2. Do What You Love
Look for a place to contribute where you can do something you are genuinely interested in. If you have a special place in your heart for parsers, a compiler isn’t necessarily the first project you want to start with. Don’t rule out parsing configuration files in a webserver or build tool.
3. Learn the Tools
Every project uses different methods for version control, bug tracking, patch submission, coding convention, feature requests, user troubleshooting issues, building, and development discussion. Take the time to learn about them and how they work. A developer mailing list is not the place to ask how SVN works. A user forum is not the place to submit a bug report. Reading the developer docs and learning the tools saves everybody time and gives contributions a better chance of being accepted.
4. Watch the Project’s Social Dynamic
Aside from the technical considerations, it’s important to learn about the social dynamic of the project. Who are the core maintainers and how do they interact with people? Who are the more vocal people in the project’s community, and what kind of tone do they set for the project? Some projects have a reputation for being open and helpful to new contributors, and others have almost a tyrannical dictatorship mentality. Spend enough time lurking on the development mailing list, IRC channel, or wherever the devs go to get a feel for the social atmosphere.
The social dynamic may seem like a small consideration, but it can mean the difference between becoming a successful contributor and walking away in frustration. One of my first attempts at contributing to F/OSS, I wanted to improve the playlist format of a music player. So I sent off an email to the dev list asking the devs what they thought of the idea and offering to code something up.
Instant flamewar. When I came back to the list the next day, there were literally hundreds of messages – some in favor of the idea, many saying that the existing format is fine, and who is this new kid anyway? The whole thing had degenerated into a flamewar by the time I saw the responses to the original question.
I made the mistake of not paying enough attention to the social dynamic. Browsing the list archives would have told me that that particular project wasn’t generally open to ideas from people other than a select few core contributors, and especially from people who hadn’t already made smaller bugfixes first. Which brings up the most important tip in this list – start small.
5. Start Small
Start small both in terms of the contributions you make and the size of the project. Making smaller bugfixes and implementing smaller features helps build a reputation, and gives you a chance to get to know the code base. Both of these things will make it easier to get patches approved.
On a smaller project you can be productive much more quickly because it takes less time to learn the existing codebase and toolchain. You will also have better access to the core developers. Also, don’t forget that updating documentation and well-researched bug reports are contributions too.
6. Start Your Own Project
One of the easiest ways to get started with open source is to start your own project. A Firefox extension, WordPress plugin, or an Emacs mode are all good ideas for projects that are quick to write, but will often get a nice number of users with just a bit of promotion.
Before starting your own project, have a look around to make sure there aren’t any existing projects that do the same thing. You might be surprised at the number of projects out there that just need a little bit of love and attention to get them usable.
There it is. 6 easy tips for getting started with open source software. Happy hacking!