How To Build an Online Development Community

Summary
This paper should really be called: HOWTO Build an Online Development Community in 2005 from scratch with around 20 people learned from growing Open Source and Open Content online communities such as Inkscape, Open Clip Art Library, CC Developer Community, and Gotmail.

Basics
Ideally there are a few components necessary to build an online community. First, there should be only one goal for the development community. Remember KISS, or keep it simple stupid. Do one thing well, or do a lot of things not so well. Second, is to setup the holy trinity of distributed online communication (setting up the network of social software).

The holy trinity of distributed communication is:
 * 1) 1 General Mailing List
 * 2) 1 Wiki
 * 3) 1 Chat channel

This is all that is necessary to build an online presence that is guided by the one principle which the community must build upon.

Any other extensions of these basic guidelines should be filtered through the primary goal of the community from step 1. The group should ask, "Does this move us closer to our primary goal?"

Only after these steps are accomplished should further goals be added. And, the group should allow various develops to grow naturally.

Other Corollaries

 * Remember to pick one good solid name for the community that maps to an easy-to-use domain name. For example, I am building a new community called Open Font Library. Thus, the project's name is openfontlibrary.org, which is a wiki, the mailing list is called openfontlibrary@lists.freedesktop.org, and the chat channel is called #openfontlibrary on irc.freenode.net. This corollary pays homage to the KISS principle, and is solid in order to provide standard consolidated branding.


 * The type of community atmosphere that is desired by the participants (and initiators) is setup in the first few days to a month of the existence of the community. Generally, it is amicable to be extra-nice, and cordial much like one would like in the real world. If a community starts out by cutting one another off, dissing ideas outright, arguing, and moving ahead without some kind of group consensus, then the community will more than likely end up with extensive flames, outrageous personalities, and little headway on the common goal.


 * If attempting to build a forward thinking and moving community with a positive atmosphere, if people on any of the communication channels acts in a way that is not amicable to the group, it is important for a core group member (develop leader), to nip this communication in the bud in a positive manner immediately. For example, if some new member comes into the group and decides to move the project's wiki without discussing this with anyone, then this should be corrected immediately. Similarly, if someone is in a project who is verbally abusive by saying comments such as, "Shut up, your idea is stupid," then this needs to be corrected as well with the type of comment as, "USER, that is not how we treat people in this project. Did you mean to say what you said in this manner? It is quite offensive." 99% of the time the user who made the offensive statement will realize how this is bad and will apologize. And, the project has not derailed off topic, as this is just one type of bump in group communication.


 * Also, personal problems between members should be dealt with offlist in a positive tone, much as would happen in the real world. You don't want to bring your dirty laundry into the group (office) right? Solve the issue, and move on! Since you are both working on the same common goal, which has been established, you must focus on this and on working in sync towards that goal.


 * Problems within the community should be dealt with in the community before bein publicly exposed.

Expansion of the Topics
In this section, the basic topics are expanded with reasoning and examples.

Conclusion
Generally, as the summary in the beginning of this document states, these community-building strategies were learned through various steps and missteps. Also, these steps are primary for getting a new project off the ground. As a project scales to different sizes, adds new goals, and members leave and enter the project, many of these rules change. However, there is one principle in online community development which seems to hold true: Keep the social barrier for participation as low as possible allowable by the size of the community. For example, never build a house for 20 people if there are just 2 that live in the house.