Developing a community around your project is hard work. But it’s worth it. I think that every open source project dreams of having a community… at least they should dream of it.
A community does stuff for you. As you develop a community of users, you’ll get feedback. Feedback is valuable to every project as it lets you know if you’re doing the right sorts of things. When you’re successful in developing a community, you’ll find that they do even more for you, including great contributions of ideas, code, tests, testing, and far more. A well-developed community is a great source for new blood into your project: new committers come from your community. If you’re fantastically successful, a community will do great things like answer questions about your project and technology for you on IRC, newsgroups, mailing lists, and other forums. They’ll write books, fill out documentation, do presentations, tell others, and more. In short, if you’re successful in developing a thriving community, your work gets easier.
You’ll know that you’ve been fantastically successful with community development when you stop being the center of the universe for your project. Unfortunately, many of us have hard time letting go of control.
Developing that community is hard work in the beginning. You actually have to get out there, find your community, and engage them. You have to deal with disappointment: some of your efforts to find your community will fail. You need to push through the disappointments and look for new opportunities.
One of the best things you can do is make easy for your community to find you. Make sure that your project’s web site is up-to-date. Make sure that you have a concise description of why it is that your project exists (make sure that the description is on your project-info page and that the project-info displays correctly). Provide links to your newsgroup. Actively monitor your newsgroup and answer the questions. Lurk on eclipse.newcomer and IRC (#eclipse on freenode.net). Be there for your community. When people try to engage you, engage them back. Turn those early adopters into ambassadors and evangelists for your project. Be aware of the landscape. Make connections with other projects. Avoid becoming one of those “not invented here” projects. Use other project’s stuff when you can. Leverage their communities by lurking in their newsgroups.
Help people get involved. Make sure your project plan is up-to-date. Make it as easy as possible for interested parties to get your code; provide Team Project Sets or Buckminster specs to make getting the code out of CVS/SVN simple. Provide a link to find existing bugs and a convenience link for creating new ones. Make sure your download page is easy to find.
Get out there. Developing a community requires effort, but the payback makes it worthwhile.