Many new internet startups and websites rely on building communities, many fail for various reasons but there are always lessons to be learned. I've been lucky enough to be put in charge of re-developing a site which already has an active community so I've spent some time trying to discern what makes or breaks an online community.
Don't rely on community contributions.
One of the major problems encountered are sites which do not function without contributions from their users. A catch 22 situation arises when the site will not be used unless there is content and the content is not present unless anybody uses the site. It's important then to consider how the site can be a useful resource with AND without the community's contributions. Look at pulling in syndicated data from external sources or partnerships with other data providers to make up any shortfall and ensure that you site doesn't die from neglect.
Motivate your users
Motivation to contribute is another problem for some sites. There needs to be selfish reasons for a user to invest their time and effort into adding to the collective data pool. Even Wikipedia has this in a less than obvious way. A user could write an entry for something that they want to promote, hence adding to the communal data pool for entirely selfish reasons. This selfish motivation is apparent in most of the successful online communities, whether it is building networks (myspace, linkedin) or showing off (youtube, flickr), the user gets somethng for themselves in response to adding to the whole community.
Bring them back with usability
A site which is difficult to use or understand will turn people off pretty quickly, a frustrating user experience is not something anybody wants to repeat. Simple and easy to use websites will make people feel good, if they achieve what they wanted to do first time without getting stuck or feeling confused, then they will consider it time well spent and probably return to get that feel-good glow again (and again and again... hopefully).If you are building a web-based tool, consider the benefits of spin-off tools such as Firefox extensions, IE bookmarklets and RSS syndication. These tools allow your service to extend beyond the boundaries of your website, I use the del.icio.us Firefox extension many times a day but probably only browse to the site itself once or twice a day. I use an RSS feed to keep an eye on my Basecamp projects rather than logging in on a regular basis. These web-services have become a part of my constant toolkit, whatever I am working on, not just things that I set-aside time to spend on keeping them up-to-date.
Learn to ignore feedback
Always allow users to tell you what they think, but don't react to every criticism or suggestion. Sometime the minority can have the loudest voices and try to force you into making changes that the majority don't want. In general, if people are happy with something, they are less likely to tell you that if they're unhappy. You need to ensure that any changes that you make will not disrupt the silent majority unless you are sure that it will improve the service for everybody.
This covers some of the major points that I've come up with during my research. There are many other considerations but I hope that if you are building an online community then they will help to improve things for the good of your users and of course for yourself.
David Kinsella is a Content Strategist for KMP Interactive Marketing & Technology and also blogs at Web Developer 2.0.