Community Development for Eclipse Projects
Community and Eco-system development are two things that every committer should spend at least some time thinking about, and—hopefully—some time doing something about. Ultimately, it is difficult to call your project a success without these things. It is from the community and eco-system that you will draw additional contributions and other helpful input to make your open source project a success.
This page is intended to provide some helpful advice for attracting and retaining a community.
- Must have a clear and concise description of the project. Get help to determine whether or not the description is indeed clear and concise. The description on your website should be the same as the description on the project summary page.
- Must have a link to the Project Summary page.
- Must have a reasonable appearance. Make sure the page is rendering properly in (minimally) Firefox and IE. Make sure that the page, for example, isn't missing </div> tags.
- Must provide a "Getting Started" section with information to help adopters obtain and use the project output, and help developers obtain the code and configure their workspace.
- Should include one or more Team Project Sets or equivalent to make it easy for interested parties to load the code into a local workspace. For more complex configurations, consider using Buckminster.
- Should include links to articles, blogs, newsgroups, mailing lists, bug lists, and other sources of information about the project.
- Must provide link for help (e.g. link to a newsgroup)
- Should include a link to the project proposal, plan, IP log, etc.
- Should include a short presentation that describes the project in a "source" format (i.e. a PPT or ODP file) in addition to a portable format such as PDF.
- May include a list of the project committers, and mentors.
Project Summary Page
- Must have a clear and concise description of the project.
- Must contain as much information as possible about the project. Fill in as much detail as possible on the portal so that an interested party can find newsgroups, mailing lists, project plans, IP logs, etc.
Newsgroups, Mailing lists, Outreaching Forums
It is through newsgroups that adopters tend communicate with a project. Very often, it is the only real support channel provided for those adopters. Each project should have at least one committer monitor eclipse.newcomer to catch questions posed there and further extend the awareness of the project.
When your community asks questions, answer them as soon as possible. No question should go unanswered. Encourage all of the project committers to monitor the newsgroup, or—at very least—take turns. Of course all that support is a lot of work, and some people find it difficult to spend all that time on "menial" activities. Too bad for their misguided thinking, because it's a key to success. Don't leave your community out in the cold.
Here's a simple process you can follow for effectively and quickly dealing with your newsgroups (thanks to Ed Merks):
- Take a glance to see if someone else with appropriate skills is needed for the topic.
- If not, hit reply.
- Type in the person's name at the top to make it personal; try not to misspell, because it's rude.
- Type in "Comments below."
- Start reading and whenever a thought jumps to mind, type it in right then and there.
- Upon getting to the end, hope the question has been answered.
- If not, ask lots of questions so the person asking the questions has to answer yours instead.
- Rinse, lather, repeat.
- Avoid infinite loops.
When sensible, incorporate the answers into the FAQ or some type of wiki recipe. Repeat this process for as many newsgroups as possible (especially eclipse.newcomer), because Eclipse's overall success will be reflected in your personal success. Your dedication to high-quality service and support is the fuel for your ecosystem and the success of that ecosystem is the most effective way to achieve maximum influence with your limited individual capacity.
Adopter questions posed in developer mailing lists (and other "inappropriate" forums such as personal e-mail) should be answered politely. It is reasonable to recommend that the question (or future questions) be posed in the newsgroup where it can be "viewed by a larger audience as is more likely to receive a timely answer".
Avoid negativity, swearing, belittling, or other disparaging behaviour in your responses.
All of the answers don't need to necessarily come from project committers: empower your community to answer questions in the newsgroup. When community members do provide answers that require further clarification (either they are not complete, or are not 100% correct), do so politely.
The more welcome you make your community feel, the more likely it is that your project will be successful.
When your community reports a problem, fix it as soon as possible. Be sure to make a distinction between wish list items (I want more goodness) and actual defects (it's broken because it's not working the way it was designed to work). A list of 1000 bugzillas that looks to the community like a list of 1000 defects rather than like a list of 1000 wishes is bad publicity. Having no responses in most of those reports, is also bad news. Your community will interpret it as a lack of respect, and no pleas about your lack of resource will help offset that negative perception.
- Should have at least one Architecture Council mentor. Projects that predate this requirement should find a mentor anyway.
- Must have a publicly documented end-game.
- Should blog regularly
- Should aggregate project-related blogs on Planet Eclipse and other (possibly domain-specific) blog aggregators.
- Should have code.
- Should be making regular code contributions.
- Must be inclusive and responsive to community feedback. Input and patches contributed by the community should be given due consideration; ideas from the community should be integrated into the project.
- Should be diverse. Projects should work to attract committers from the community
- Must seek out and exploit forums (such as tradeshows, conferences, webinars, etc.) that provide opportunities to develop community.
Signs of success
Ultimately, everything above is about making it possible for a community to find out about your project and provide opportunity to get involved. Providing that opportunity is one thing, actually attracting a community is another.
You are successful if (not an exclusive list):
- A significant number of bugs raised against your project come from non-committers.
- Non-committers are blogging about your project.
- Articles, presentations, podcasts, webinars, etc. are being developed and presented by non-committers.
- You cease to be the center of the universe for your project.
Credit Where Credit is Due
Be sure to give appropriate credit to your contributors.