blob: d85f42c7fc565081fc4029e417520fd594ee2cb2 [file] [log] [blame]
[[community]]
== Community
The Eclipse Development Process is mostly concerned with engaging in
activities that grow community involvement. An Eclipse project is
considered successful only if a vibrant community develops around it
and the project team grows in diversity.
While the reviews and processes described by the EDP may seem onerous,
they are a necessary part of community development. You should
anticipate spending a significant amount of time responding to questions
posed in various forums ({forumsUrl}[{forgeName} Forums],
{mailingListsUrl}[mailing lists], and other places where your community
gathers. You should plan on attending conferences, presenting webinars,
writing papers, and more to support your project.
Community and Eco-system development are two things that every committer
should spend at least some time thinking about, andhopefullysome 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.
[[community-barriers]]
=== Lower the Barriers
One of the most critical aspects of running an open source project is
to grow user and adopter communities, invite contributions, and increase
committer diversity. All {forgeName} projects must work to 'lower the
barrier of entry'.
To attract and support contributors:
* Make it easy for contributors to find is the code, build it, and run tests;
* Describe and disseminate the contribution process;
* Maintain an open and transparent schedule of builds, milestones, releases, etc.;
* Capture important decisions in public forums and invite participation (be transparent and open); and
* Consider implementing a weekly phone call where you can discuss the schedule,
the on-going work, and also the more complex/controversial technical things
which would have not been easy to take care of by email.
When somebody does show up to do some work on your project, help them be
successful.
To attact and support users:
* Maintain a concise and clear description of the project on the website;
* Provide a five minute tutorial to help users understand what the project
does and why they should care;
* Make sure that they know where they can go to get answers to their questions
(e.g. a project forum); and
* Provide great documentation, with a lot of ready-to-go examples.
Include support for the website, and regular updates to your project documentation
and tutorials as part of your project planning.
[[community-forums]]
=== Forums
It is through {forumsUrl}[forums] that adopters tend communicate with a project.
Very often, it is the only real support channel provided for those
adopters.
ifeval::["{forgeName}"=="Eclipse"]
NOTE: Each project should have at least one committer monitor
{forumsUrl}/eclipse.newcomer[eclipse.newcomer] to catch
questions posed there and further extend the awareness of the project.
endif::[]
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 project forum(s), or--at very least--take turns.
When sensible, incorporate the answers into the FAQ or some type of wiki
recipe. Repeat this process for as many newsgroups as possible,
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 forum 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.
[[community-bugzilla]]
=== Bugzilla
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 1,000 bugzillas that looks to the
community like a list of 1,000 defects rather than like a list of 1,000
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.
Ideally, every commit in your project's source code repository should have a
corresponding Bugzilla record. Provide linkage to the record in the
commit comment so that somebody browsing the history of your code can
follow the links to find any discussion, or other useful information
related to that commit. Consider including bug numbers directly in
comments in the source code when the discussion contained in that bug is
particularly useful. This will help your community and committers better
understand why your code is implemented the way it is and give them a
pre-existing place (i.e. the bug) to pose further questions.
[[signs-of-success]]
=== 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; and/or
* You cease to be the center of the universe for your project.