Open source projects are becoming increasingly popular. More and more projects are being released open source online. However many fail to become popular or never get off the ground. If you look at popular open source project websites such as Sourceforge, you’ll find many projects abandoned. There are many reasons for projects failing, including marketing, resources, timing, or just lack of interest. For those that really want their projects to succeed in the open source world, the following are a list of ways to give you a better chance for success. The following will concentrate on the specifics of open source software, and will ignore more general software development problems. For example, marketing can be a problem regardless of the type of software you are developing and your choice of distribution.
This article won’t go into the details of what open source software is in this article. If you are unfamiliar with open source software, several references at the end of this article can provide more information.
Release Your Software To Open Source Software Sites
There are many popular open source software sites, such as Sourceforge, Google Code, Gna, Codeplex, and more. They will allow your software to be discovered more easily and gives other open source developers a familiar interface to the project.
Document Your Project
It’s easy to dump code online in the hope others will contribute. However, people won’t contribute if they can’t figure out what to do. Remember, as an open source project, there must be additional information such as compilation instructions and perhaps design documentation. As always, be sure to have documentation for end users as well.
Support the Project
Even with good documentation, you may have bugs or people requesting help. As an open source project, some developers may think users should fix the bugs themselves or figure things out on their own. However, most simply do not have the time to do so. In order to get the project to succeed, proper support for the project must exist. Setup a mailing list and help people who need help. Try to fix bugs in a timely manner. If someone submits patches or fixes to the project, help them integrate them into the project. If you don’t support the project, the community will move onto others.
Build a Community Around the Project
In addition to supporting the project, a community needs to be developed around the project to help support it and develop it. For example, even though one particular programing language or library may be superior for a project, if it is obscure and unpopular, it may limit the ability for others to help. Setting up a public mailing list and web site (via a open source software site) is a great way to develop a community.
Keep Communication Open
Communication is always important in any project. Unfortunately, with open source projects, it may be worse due to only e-mail communication. While it isn’t perfect, be sure to keep the communication open on bugs, updates, progress, and schedules. If a key engineer at another company has been reassigned, ensure that project leadership and roles can be re-worked appropriately.
Package the Project
Many people regularly scour the web looking for projects they can use. However, this takes time. Many will not have the time or desire to build and compile projects. Or if they are, they will give up quickly if there is any problem along the way. The best way to get someone to try your project is to package the project so that they can download it and install it immediately.
Clearly Identify Your Project License
There are many open source project licenses, such as the GNU Public License (GPL), Apache License, Eclipse Public License (EPL), and Berkeley Software Distribution License (BSD). However, many of these licenses conflict with each other. No matter which license you choose, be sure to clearly show what license your project uses so that other developers will not waste their time developing code that may conflict with it. Place headers at the top of all files and most documentation to indicate the license.
Jacon Wyans, “Open-Source and Free Software Models: An Overview”, associatedcontent
Dan Woods, “What Is Open Source”, onlamp