Are you going to program the next big thing? Do you already have a little code to get started, but need a lot more help from others? Do you like getting the benefits of the open source community as well as giving back to it? Then you need to start your own open source project, and it’s not quite as easy as you might think.
Choose a License
Before you get things rolling, there are a few things you need to do before you can let others start writing code for your project. The first item of business is to determine what the code will be licensed under. There are several open source licenses that you can apply to your own code, including the GPL, BSD, and MIT licenses. There are subtle differences between each license, such as the topic of whether other people or organizations can pick up the code and use it in a proprietary fashion (BSD and MIT vs. GPL).
Technically speaking you could even write your own license, but you’ll have to write your own legalese for it to be any good, and that will take a lot of time away from you. It’s best to just pick an existing license that aligns most to your own preferences and just move on.
GitHub demystifies the license puzzle and helps you out of the confusion with their Choose a License page.
Organize and Comment Your Code
You’ll need to go through the code you currently have and make sure that it’s well-organized and well-commented. If you want others to contribute to your project, they need to know what your code can do, and nothing does that better than good code comments and thoughtful organization of related functions into their own files and directories. If contributors get confused while looking at your current code, they won’t contribute.
Open A Repository
Now that you have your code and license in order, it’s time to create a repository for people to view your code and submit their contributions. The most popular site to host open source projects is GitHub as it’s free, easy to use, and packed full with features. Here’s how you can get started on GitHub – but there’s also BitBucket (which is considered by some as more flexible) and Gitorious if you’d prefer an alternative. These services all use Git for keeping track of code changes, which can be easily installed on any computer.
Pick a Name
Congratulations, you have your repository up and running! But how do you attract contributors so that you’re not the only one working on the project? For starters, you should think of a good name for the project. Not only should it be original, but it should also hint at what it does or what it’s related to. For example, a favorite open source project of mine is named jCanvas, which alludes to the fact that it works in conjunction with jQuery and it has something to do with canvases (aka drawing stuff). Take some time to think of a name for your project.
Write A Summary/Intro to Your Project
A good project name might grab someone’s attention, but what then? Potential contributors will be looking for an introduction or summary of your project to see what it’s all about. It should outline the end goal of the project, what technologies and languages it uses, and any other information you feel is necessary for people new to the project to know about.
Write Documentation For Your Project
Great, so you have an introduction written out. But an introduction doesn’t flesh out everything your code can currently do, nor is it something that an end user would look at. Instead, you’ll need to write out highly-detailed documentation that outlines everything that your code can do. You don’t have to go into code specifics, but you should talk about each and every feature and explain it as if you’re talking to an end user. What does the feature do? How can they use it?
If someone posts an issue or question about your project, it’s in your best interest to respond to them as quickly as possible. Speedy replies show that you’re keen on welcoming new contributors, being there for anyone who needs help, and generally seem to have things in order. If you take several days to respond to an inquiry or leave lots of open support tickets, potential contributors will be put off.
Review Patches As Quickly As Possible
Although there’s a lot of things that you need to keep an eye on, you can’t forget about the most important one: reviewing patches! All of this work toward attracting contributors finally pays off when you get your first several patch submissions, and you’ll want to make sure that they don’t just sit around. It’s best to review patches as quickly as possible so that changes to the project are actively occurring and that contributors know that they didn’t just waste a contribution to a late, dead, or uncaring project. It’s the same as with email inquiries — if you don’t act quickly on them, you’ll be giving the opposite impression.
Start a Versioning System
Finally, once you have a steady stream of patch submissions going, don’t forget to implement a versioning system. It’s much easier to track whether bugs are fixed or not when you know what version of your software a user has. It also helps users identify whether they’re using an older version and should update. What system you use for bumping up the version numbers is completely up to you so long as it makes sense. For example, one project said that they started out with version 0.1.0 (while it was still in beta) and incremented the middle number after each planned release. For every unplanned release (i.e. to fix important bugs), they would increment the last number.
Patience Is Key
Finally: try to have some patience. While it’d be lovely to have a line of contributors appear overnight, that is highly unlikely to happen. Instead, it may take 6 months or even a year before a project really takes off — this is normal. So long as you put effort in and actively try to attract contributors, they will come eventually. Until then, just continue making your own contributions. Potential contributors will reflect positively on your project when they can see you’re actively working on it.
Starting an open source project can be surprisingly difficult, but being able to recruit contributors in the long run makes all the effort worth it. Besides all of these tips, don’t forget to tell your project to your programmer friends and anyone else who might be interested in hearing about it. You never know if they’re willing to help, or if they can pass it on to someone else who will.
Have you started your own open source project? How did it go? How did you attract contributors? Let us know in the comments!