The road to a successful open source project: Learning lessons from Drupal

By almost any measure, Drupal, an open source content management system/Web platform, should be a poster child for open source success. The PHP-based CMS, the first version of which was released by Dries Buytaert in 2001, powers the Web presence of a number of major organisations, including, since 2009,

When it comes what other open source projects can learn from Drupal's success, Buytaert, who is now chief technology officer of Acquia and remains Drupal's project lead, says that although he doesn't have all the answers #8212; and that "there's no one right way" to do things #8212; there are some lessons to be learned.

Dries' vision for Drupal 8

Open Source Ecology: Can open source save the planet?

Python vs. PHP: Choosing your next project's language

On a technical level, one of the lessons to be learned is the value of a modular architecture; one of Drupal's strengths is the availability of thousands of contributed modules that add extra features to the core platform. "Drupal is a modular platform and that allowed me as a project lead to say 'No' to people," he says "No I will not include your change #8212; but you can build a module for it. So it's a way to mitigate forks. If you don't have a modular architecture, you can basically only say yes or no.

"If you say no, well then the person has only so many options. They could either choose to fork or they could they could sort of suck it up and do nothing. But if you have a modular architecture and you have a framework, such as a contributed module repository like we have, then people can go off on their own and still add value to the project [as a whole]."

Another lesson is to make sure that your audience #8212; which in Drupal's case includes not merely end users but a large number of developers #8212; has access to appropriate tools. For members of the Drupal community, Drupal itself functions as their key tool: "We use Drupal as our tool and it provides us all of the things we need to effectively work together; to share knowledge; to write documentation; to review patches and all these things."

Chief among the lessons to take away from the Drupal experience are importance of creating a strong vibrant community and the right kind of culture around a project, Buytaert says: "Let's face it: I may have started the project but today Drupal is successful because there's a large community of thousands active contributors and tens of thousands of developers.

"Building a community is something that I think everybody should attempt to do in the open source community and to do so you need to get a few things right."

He says that Drupal has "succeeded in building a culture where people are good followers, they follow other people, but at the same time it's also a culture where everybody can be a leader #8212; meaning it's not just me that leads the project.

"We have many, many great leaders. And I think our best leaders in the community are those that don't get in the way of the community; they basically let them run but they provide guidance and they inspire. I think that kind of model again lends to a community being created versus more of a top down approach, with strict roadmaps and all of those things. Drupal has always been a little bit open ended and chaotic in a way, in that people can bring forward ideas and every idea is considered…"

The growth of the community around the project means that it can sometimes take more effort to get consensus about Drupal development. "As we get bigger and as more people get involved, obviously there are going to be more voices, and there are more people raising ideas or sharing suggestions or bringing up things that they don't like…

"It doesn't mean we become less effective; it just feels like there are more people having opinions. At the same time we also have more people doing really great work… That's also why we evolve the way we work we have to right. We've always used consensus building as our primary decision-making process. So what that means is that five years it may have taken minutes or hours to build consensus because there were fewer people involved.

"Today on big topics it can take weeks to build consensus… It doesn't mean it's worse; in fact the fact that more people do give their input probably avoids us making mistakes."

After the release of Drupal 7 in early 2011, Buytaert says that the team "did a retrospective". "We looked back and said what worked well and what didn't work well with the goal to keep doing the things that worked well but then to try to fix the things that the community of developers thought we could do better."

One of the things to come out of this process was the idea of having a system of "initiatives", each lead by an "initiative owner". "It's a way for me to empower more people in the community and to delegate responsibility to other people." Leaders of these initiates "are kind of like project leaders responsible for a subsystem or some sort of chunk of the work".

"People complain about is they felt like we needed to have better priorities and so the initiates, and I've launched six or seven now, are very clear statements about what I think our priorities should be as a community. And so basically the idea of these initiatives is to help us fix a few of [the] perceived challenges [faced by Drupal]."

Buytaert says that open source projects need to "get it right at the technical level… and then also get it right at the social level. And I think especially the latter the social elements are hard. But it helps to have the right tools for your community and to build the right culture. I think you sort of need to check all of these check boxes."

Dries Buytaert will be speaking at Drupal Downunder in Melbourne, January 13-15 2012.

Follow Rohan Pearce on Twitter: @rohan_p

Follow Techworld Australia on Twitter: @techworld_au

Copyright © 2012 IDG Communications, Inc.

8 simple ways to clean data with Excel
Shop Tech Products at Amazon