Lightening up collaboration
We're starting to see traditional code repositories complemented by new techniques that either layer tools for more casual contributors on top or that explicitly target lighter-weight collaboration from the get go.
One of the interesting threads within this year's O'Reilly Open Source Conference (OSCON) was a variety of collaboration tools and platforms aimed at what might be called "mid-weight" collaboration. Which is to say, collaboration that is something more than mailing lists or user forums but something less than the code repositories that primarily target a core group of developers.
Here's the basic issue. Some popular projects, such as the Linux kernel, have a pretty broad range of contributors. However, many other projects--even successful ones--are the product of a much more constrained group of people. With open-source software specifically, a big part of the problem is that it usually takes considerable effort even for experienced developers to understand a code base well enough to make useful contributions, And, of course, not many people are experienced developers.
Even beyond software development, as shown in the Gartner Group graphic in this post, only a small minority of any community is highly active. To use Gartner's terminology, "Contributors" and "Opportunists" significantly outnumber "Creators." (Unsurprisingly, the largest group are "Lurkers," which is to say basically users.)
Thus, the challenge is to harness the diffuse energy of a community in addition to the energy concentrated in a relatively small number of core individuals--the "Long Tail" of content creation if you would.
Here are a few examples of the work in progress.
JasperForge is perhaps the project that's most explicitly about harnessing the contributions of nondevelopers. The community here are those associated with Jaspersoft (Open Source business intelligence) and related projects. (There are currently 227 public projects and 70 private projects.) Individual projects setup a portal that includes only the components they need. For example, a documentation project could have a wiki and shared files but not a code repository.
Launchpad is the creation of Canonical, the commercial entity behind Ubuntu. It recently got a major redesign for its 2.0 release. For our purposes here, one novel feature is a Web-based translation and review component that allows contributors to provide translations of strings in the program into any of up to 265 languages. It also includes a community support component that lets users create FAQs and build a searchable knowledge base of previous answers.
Finally, Sun's Zembly--currently in private beta--is a collaborative tool for building applications for social media, such as Facebook. A lot of these applications are pretty small and simple and they often lend themselves to reusing code from other similar applications. For example, if you have a widget that displays a group of photos from Flickr, another widget that displays a different set of photos, but in a similar way, can pretty much just cut and paste a lot of the first widget's code. In short, it's oriented for the lightweight code sharing and reuse that characterizes many of this type of application.
The need for sophisticated version control and code repository systems isn't going away. However, we're starting to see those systems complemented by new techniques that either layer tools for more casual contributors on top or that explicitly target lighter-weight collaboration from the get go.