Building Community with Open Source

Submitted by Brett on Thu, 05/28/2009 - 7:01am.

Jonathan Hedstrom, OpenSourcery

Any community, online or otherwise, is about communication between individuals. As such, when it comes time to create or grow an online community, tools that allow for and encourage communication and interaction are vital. There are two major hurdles that must be overcome for an online community to succeed: the selection of appropriate community (or "social-networking") features that make sense for the community in question, and, secondly, actually implementing those features in your online application. The first is often overlooked in favor of the more exciting second step. When this happens, the community rarely benefits from the resulting application.

Every community has unique needs that determine how they should select features, a topic for another (much longer) article. Once a community has determined its needs, however, utilizing open source software presents a more rapid, sustainable path to implementation.

The Kitchen Sink Social Networking Site

First, let's take a look at what can happen if we dive directly into the technology and overlook the actual needs of our community.

What do we want? We want friends lists, favorites, ranking with stars, and perhaps ranking like Digg does. Forums and blogs too! We want email alerts, RSS, and we want widgets that people can take from our site and stick into Facebook, MySpace, Google or anywhere else for that matter. We want thumbs up and thumbs down, and images. And speaking of images, we want to allow people to add notes like Flickr does. And videos! Lots and lots of video. We want all of the above on a map. Several maps! Custom maps, plus Google Maps, and Yahoo too! We want the current weather conditions for not only every user of the site, but for everywhere they've ever posted content about. Then, once we have all that working perfectly, we want to push it back out onto Facebook so we can get even more people excited about our community. And then, we want the kitchen sink. Oh, and jet-packs.

With open source (specifically, in this case, Drupal), all of the functionality is available already (except for the jet-packs and sinks -- those are still in beta). But this won't get us an online community. In fact, if we throw this Frankenstein of an application at any sort of existing community without considering how they might use it, we'll probably hinder that community.

Open source software reacts to rapidly changing technology

The ability to build either an everything-but-the-kitchen-sink or a carefully crafted and functional community site becomes much more straightforward with open source. Technology moves at a fantastic rate, and as applications on the Internet become more interconnected, it becomes harder to rely on or wait for proprietary solutions to provide access to, for example, the latest changes in Facebook's API, Flickr, or YouTube.

Drupal and other open source solutions are much more reactive to these changes, because when it comes down to it, anybody who knows what they're doing can make the necessary changes.

Not only is open source able to keep pace with current trends and applications, it also drives innovation by allowing any individual (or group, or community) with an idea and access to technological resources to create technologies never before anticipated.

Open source is a community-driven effort

At some level, every open source project is a community-driven effort. These projects grow and improve only through the coordination and efforts of many individuals, which requires (you guessed it) community-building tools. Because of this, any project under active development will have, in turn, a vibrant and active community surrounding it. This community will grow, attracting new talent and ideas, which all feeds back into the quality of the project.

Embracing the community aspects of open source will allow you to build an online community with the collective wisdom of existing communities. There are hundreds of regional Drupal user groups all over the world. This means there are probably people within your immediate area, getting together once or so a month to talk about (and geek out on) Drupal.

That obscure problem you're trying to solve? Somebody nearby has probably either already solved it, knows somebody who can, or is at least going through the same issue. This is by no means specific to Drupal. Every open source project of any significant size has groups of people united by a passion to see the project succeed and grow.

Open source fosters community collaboration

Since open source software is grounded in a philosophy of sharing, collaboration amongst disparate communities with common technological needs becomes possible. Banding together with organizations, either regionally or ideologically close, is a very powerful way to drive the development of new applications or features for community websites.

For example, a tool created to allow a community to map local water quality data can easily be re-purposed for a neighboring community, or one across the world. It can be functionally reworked to allow for mapping data about endangered species, a group's favorite hiking spots, or shelters for the homeless.

The idea of utilizing open source and in turn utilizing community was recently put into action in Portland, Oregon. Over a series of weekends this past winter, the Portland Drupal User Group banded together to create the Rose City Resource website as a tool and organizational back-end for a local non-profit. The project benefited the local community by providing online access to resources, and benefited our local Drupal group by allowing our community to come together, learn from one another, and see a site go from idea to reality.

Open source builds community, and community, in turn, creates open source

Communities need to be nurtured in order to thrive. Tossing every fancy new tool in the bucket into the mix will rarely work as desired. However, with an understanding of the needs of the community, utilizing open source technologies will make the implementation go much more rapidly, and be more sustainable for everyone involved.

Bio:

Jonathan Hedstrom has been developing software for over a decade, and open source software for over six years. He is the Lead Drupal Developer at OpenSourcery in Portland, Oregon, and goes by jhedstrom in the Drupal community.