Whitehouse.gov, along with millions of other sites on the Web, is based on Drupal—free, open-source software, built by a global community of volunteers, that enables users to build websites even if they have little to no programming skill. The project has grown steadily since Dries Buytaert founded it in 2001, and more than a thousand people participated in creating Drupal 7, which was released in January. As the community gears up for work on Drupal 8, it is working to preserve an environment that will remain friendly to collaboration now that the project has outgrown the informal systems that have served it to date.
“Initially, I was able to understand all the code,” Buytaert says. “Now, that’s not necessarily possible for one person.” So community leaders are putting formal systems in place that they hope will make Drupal feel more accessible to new participants while giving potential users a clear sense of the project’s direction. Part of the challenge facing Drupal is that even though it is created by a group of volunteers, it must present a united front to the many companies and institutions that have entrusted their websites to the software—Warner Brothers Records, Penn State University, AOL, and Symantec, among others. (Drupal users also can pay for support from companies such as Acquia, which was co-founded by Buytaert in 2007 and helps enterprises with Drupal the way that Red Hat does for Linux.)
Though Buytaert maintains a leading role, it’s always been a priority for him to allow others to have a say in Drupal’s direction. “We’re working with volunteers, and it doesn’t work to be top-down with them,” he says.
At first, Buytaert could establish this environment in conversation with other developers. But to make this collaborative environment more formal, Drupal is switching to a new version-control system called Git—itself based on free, open-source software—that he believes will encourage the values he supports.
A version-control system like Git helps impose order on the strange and miraculous undertaking that is an open-source project, in which enormous pieces of software are often built and maintained at very high quality by a loose-knit group of volunteer developers working on what they feel like working on during their spare time. People write code and debate its merits, and ultimately project leaders officially release code that has passed the community’s test.
Most important for Drupal, Buytaert says, Git will allow small groups of developers to work on bigger chunks of the software. Buytaert can delegate management of these groups to leaders who can create miniature collaborative environments within their areas of specialization. “This allows me to scale,” he says, referring to the impossibility of managing it all himself. “It also helps the community scale, since it will give newbies a clearer sense of where to start.”
Git also gives clear credit to those who developed sections of code, which Buytaert says is very important. “Recognition is the currency in our project,” he says; giving people a sense of ownership over the work they’ve done is the way to create “passionate contributors.”
“We always used to do this,” he adds, “but it was sort of informal.”
The environment that the community is working to preserve has so far proved successful at bringing in new developers and engaging them.
Designer Jen Simmons, who is now a senior developer with the Chicago Web development firm Palantir.net, started out as a Drupal user. Two years ago, she went to a conference to learn how to use the software better and was surprised by the extent to which the community of Drupal programmers manages itself.
Simmons says that community leaders such as Angie Byron, who helps maintain Drupal 7, created an atmosphere that inspired her to get more involved. She heard them saying they needed more of the “themes” that can change the look and feel of a Drupal site, and she knew that she was well suited to work on the problem. At first, she wondered how to get picked—but, she eventually realized, that wasn’t how Drupal worked. “There is no picking,” she says. “[People say]: Just do the work. When you’re done, if we like it, we’ll put it in.” In practice, this means that any member of the community is allowed to make suggestions about a feature. In the end, a small number of volunteers are empowered by Buytaert to add to the core body of code, and they do so when a consensus appears to have emerged.
The realization that she could just go ahead with what she wanted to do, Simmons says, was “awesome, but also frightening and exhausting.” She started her project in early 2009 and followed it through July 2010, when it was added to the core after intensive debate with other members of the community.
What Simmons designed would eventually become Bartik, the default theme for Drupal 7 (named for Jean Bartik, who was one of the programmers of the first electronic computer). Until the day it was officially added to Drupal, she says, she didn’t know for sure if her effort would succeed.
Simmons’s experience matches researchers’ observations of how open-source projects manage collaboration. Projects tend to put out information about what needs to be done and volunteers step up and say they can help, says anthropologist Diana Harrelson, a user-experience researcher and designer for the Web hosting company The Planet, who studied the community behind the open-source project Fedora as part of her work toward a master’s in applied anthropology.
Collaboration in open-source projects “is not a top-down or a bottom-up approach so much as it is coming in from all sides,” she says. “You’re working with peers, mentors, and mentees who all feel they have something to contribute and want to contribute in any way they can. Otherwise they wouldn’t be there.”
The key, according to Buytaert, is to create an environment where “everyone is a leader and a follower at the same time.” As different as that is from the traditional corporate model, it’s undeniable that open-source projects like Drupal have resulted in software that rivals the best commercial products.