Having an Open Source license is not enough to bring users and developers to your project. You need an active and supportive community too. This document looks at what makes a successful open source community. To discuss aspects of community development you can join the OSS Watch ["community-development"] mailing list.


Types of Community

User Community

Your user community is the one you need to nurture the most. Users are the lifeblood of any project, without them there is no project. However, they provide more than a reason for being, they also provide valuable feedback about whether the project is doing the right thing. You should give your users the opportunity to tell you what the requirements of the project are, which are the most important features to implement, which bugs are the most important and what strategy the project should adopt.

Users are also the best people to support other users. People who work on the code are often too involved to be able to give clear and concise answers about how to do something. However, those who are actually using the code on a day to day basis understand the frustrations of being a new user and have found the simplest way of doing things.

Finally, your users are important because they are your future developers. Their contributions may be in the form of documentation, or they may be in the form of bug features or even new features. If they do not have the skills themselves to implement what they need they may have the financial resources and sufficient desire to seek out a contractor to do the work as a paid employee.

Rule number one of community development is "look after your users".

Committer Community

A committer is someone who has shown commitment to the project. They have contributed to the project in some way other than asking for things to be done. That is, they have done more than report bugs that need fixing or make feature requests, important as these things are, someone has to actually do stuff. Committers show commitment through one or more of the following actions:

Project Management Community

Depending on the GovernanceModel of the project there may also be a project management community. This consists of those who are able to make decisions about the future of the project. In some projects the committer community and the contributor community are the same thing, in others the project management community is a subset of the committer community.

Attracting Community

Supporting Common Interests

Communities have common interests, one way of ensuring that new members become aware of your community, and to ensure existing members keep coming back, is to provide services supporting those common interests. This section describes how you can leverage other sites services to increase the offering to your own community.

Targeted Search Engines

Examples of Targeted Search Engines


Your community will undoubtedly be interested in events relating to their interests. Why not maintain a calendar containing these events?

Keeping the Community Informed

There are two types of community member, the user community and the committer community. Each requires different information, so each requires a different communication channel.

User Community

The user community is not interested in developer level discussions, however they are interested in how to use the software, how to report bugs, how to make feature requests and advances in the software since the last time they looked at it. Typically a user will expect to see:

Users who are moving towards being a committer will also expect to see:


The committers need to be able to keep track of what is happening in the project, what is changing and what people are working on. They will usually expect to see (in addition to user tools above):

Project Management

Project management should, in the main, be done using the standard committer tools. However, some aspects of management need to be carried out in private, consequently there will may be:

Lazy Consensus

Lazy Consensus is a governance/management technique in which action-takers publicly announce they will take a particular action after a specified time, unless someone objects. If objections are raised, other governance/management techniques are used to resolve the issue. If no-one objects the action is taken and those to whom the action was announced to are deemed to have consented to it. Lazy Consensus, also called lazy approval is common in the Apache projects.

Lazy Consensus explicitly gives power to those active in a project by giving action-takers a clear path to get community approval for an action they want to take which is unhindered by the need for the multi-party involvement of techniques such as consensus. Lazy Consensus is ideal for small, technical changes which the action-taker believes will have the support of the community. It should be avoided for large, controversial actions, particularly those which are irreversible.

See Also

Version Control Commit Mails

Most version control systems will send an email to a mail list whenever a change is committed. This can create a considerable amount of mail, however, it is a very useful mechanism for keeping your contributors informed. Once you get used to reading them they don't take a great deal of time to process. Also a good way to encourage committers use good commit comments, because people actually see the comments immediately.

My approach is outlined below:

For instructions on how to set up your SVN server to send commit mails see ["SVN_Commit_Messages"]

Tracking Community

It is important that you understand who your community members are and that you are providing the information they need. There are many ways of doing this, without doubt, the most effective is having a very open environment in which your community is encouraged to voice their concerns (and you listen to them). However, don't be disheartened by the proportion of negative against positive comment. People will complain, but they will rarely praise.

Another useful approach is to track your community members use of your web site. We currently use Google Analytics for this (we'd love to hear about open source solutions that provide similar tracking). However, it is important to not obsess about statistics. Set yourself a few simple goals and work towards them, tweaking a little at a time. We have a page for GoogleAnalyticsTricks that we find useful.

External Links

Creative Commons License
The content of this wiki is licensed under the Creative Commons Attribution-ShareAlike 2.0 England & Wales Licence.

OSS Watch is funded by the Joint Information Systems Committee (JISC) and is situated within the Research Technologies Service (RTS) of the University of Oxford.