Want Your Project to Succeed? Build a Strong Community
There are three parts to a successful open-source project: First, there has to be software. The software doesn't need to be great, but it needs to show some promise, solving a real problem that people have. Secondly, it needs to have an open-source license that encourages participation. There are several dozen sanctioned open-source licenses today, but the GNU General Public License and Berkeley license are two of the most common, because they are well understood and easy to understand.
A third critical component -- and in some ways, the most important of the three -- is the community. This is where things can get tricky; managing a large community can be difficult, both technically and socially. Encouraging newcomers to take part in the community, helping others or working on the software, takes a great deal of time, and exposes you to the (strong) feelings that other community members may have.
A strong community can take a good software package and make it great. (They can often take a good software idea and turn it into running code.) Apache, Perl, and and Moodle are but a few of the best-known open-source communities. Each of these communities has a large number of mailing lists, message boards, Web sites, and blogs, all of which point to one another, reference each other, and keep the conversation going even when people aren't directly talking.
Without a strong community, an open-source project becomes a hobby for either one person or a small group. Without a critical mass of users to report bugs, offer support, and improve software and documentation, a project will never get off the ground. This doesn't mean that the software will never be useful -- but it does mean that the authors will have fewer people on whom they can rely for help, as well as less of a core of people committed to a particular technology.
Everyone wants to have a strong community. What can you do to foster it? At least two talks at today's OSCon in Portland, Oregon, will address this issue. The "Community Anti-Patterns" talk given by Sun's Ted Leung will be followed by a panel discussion with PostgreSQL's Josh Berkus and other four other prominent open-source figures. Their comments are expected to focus on what open-source communities can do in order to succeed, using information from failed projects.
This discussion comes a short time after the publication of Clay Shirky's new book, "Here Comes Everybody," in which he describes the implications of living in a society in which exchanging information is easy, fast, and cheap. Shirky says that whereas groups have traditionally been of the form, "gather, then share," Internet-based groups turn that around, first sharing (and collaborating) with one another, and then forming social ties.
There is never a guarantee that a community will emerge -- but there ways to improve the odds. These two talks will describe some of those ways that you can improve the odds, and the "antipatterns" that you should watch out for, since they might well hasten failure.