Among the many open source projects on the upswing is Drupal, a content management system written in PHP; Drupal has attracted a lot of attention from developers and mindshare among end users. This week, when Drupal 7 was about to go into Alpha test, I spoke with Dries Buytaert, creator of Drupal and also the founder of the Drupal services company, Acquia. We discussed several topics, from community building to Drupal's role in e-government to lessons that other open source communities can learn from Drupal's success.
This first blog post highlights our conversation about Drupal and the decisions in creating software; the blog post to follow will share Buytaert's views on community building. (Sign up for my blog's RSS feed or follow me on Twitter, so you can learn when it's published.)
First, a short definition is in order for those who aren't familiar with content management systems (CMSs). As the term implies, these web-based software systems let people manage all sorts of online content, from articles to video to calendars. (The word "content" is only slightly less specific than "stuff," because it's meant to encompass anything you might slap up on a website.) Because content can be anything, the CMS software category is pretty wide, so at one end a CMS could be extremely simple blogging software, and at the other extreme are enterprise-ready customizable systems that (in proprietary realms) easily cost six figures. Among the features that distinguish one CMS from another are security capabilities, workflow (that is, Kerry enters an article, and it's automatically routed to Kim for approval before being published), and social media connectors — as just a start. (CMSWire has an exhaustive list of applications.)
Most CMSs (beyond the most basic build-a-website ones, I mean) have at least two audiences. A CMS can be both an end-user product to build static "brochure" websites, and also a framework that developers use on which to build dynamic web applications (which respond to user input, rely on databases, and other sometimes-fancy stuff).
Like other open-source CMSs, though, Drupal is also something else: It's a community of people.
Buytaert's attention primarily is on Drupal 7 right now; the community has been working on it for two years — with this week's Alpha release a significant milestone — and he's very proud of the results. "We made hundreds of changes," he says, which impact end-users, site builders, and developers. His favorite new features for end users are "some massive usability improvements," Buytaert says. Acquia hired well-known usability experts, with the result of look-and-feel improvements, additional navigation features, and better underlying information architecture.
Site builders, people who (as Buytaert describes) "click sites together," will see the greatest changes in the Drupal Content Construction Kit (CCK), the most important Drupal module, which has been moved into the Drupal core. "We rewrote it from scratch based on what we've learned," Buytaert says. Developers who use Drupal as an application platform will be most affected by the community's adoption of test driven development in shaping the next version of the Drupal core. "It's already been tremendously useful," Buytaert says. With thousands of functional tests and unit tests, he says, "It gave us big speed ups in velocity and allowed us to focus on the architecture of a patch rather than what [the patch] might break."
For more about new Drupal features, see Tom Geller's article at Peachpit.com on Top Ten Changes That Make Drupal 7 the Best Version.
One unique part of Drupal's architecture is that its core code is relatively small; the CMS depends heavily on add-on products to provide functionality. On the upside, the many modules available gives users and developers plenty of choice. But, I asked, how do you manage the upgrade path?
That is a weakness. "The upgrade path for a Drupal site has never been really easy, to be honest," Buytaert says. "We do break backwards compatibility. It's a little bit painful because it requires all of the contributed modules &mdash and there's 4,000-5,000 of them — to make changes."
But, he adds, that isn't necessarily a bad thing. "Innovation is key. Backwards compatibility limits innovation," Bytaert contends. You don't want to drag a lot of legacy code around with you for performance reasons, he points out. "The rule we have is: We'll break the API if it makes a better API, and if it allows good innovation and progress to be made. Also: The second rule is that we'll never break people's data. We'll always provide an upgrade path for the data."
You do have to wait for all the contributed modules to be upgraded (that is, the ones your Drupal site relies on) before you can safely upgrade. Sometimes it takes hours or days. Or, sometimes, the module updates can take many months away; people can be stranded.
Upgrading may not be quite so simple for Drupal developers who are, shall we say, less than expert with the software. "We have a saying: Don't touch core. But a lot of people go and hack," he says. "We do have a way to make it easy to upgrade. There will always be a little bit of work involved because some APIs may have changed; but There are good ways to do it and bad ways to do it. Unfortunately, a lot of newer Drupal developers start out with the bad way and they have to learn the hard way. The second time they do it properly because they've learned their lesson."
It's a tradeoff between innovation and upgrade pain, he says.
Drupal isn't only improving its code base, though. It's working outside the open source community to, ideally, improve the quality of life. In particular, last week Acquia launched a new "Social Publishing for Open Government" program to help agencies meet requirements of the Open Government Directive. The directive is part of the Obama presidential administration's effect to be more transparent with the public. Every government agency must take specific actions to open their operations to the public.
"It's a very big deal," says Buytaert. The government agencies have really tight deadlines, with concrete milestones and specific requirements, he explains; in the next 30 days every site has to publish their plan about how they'll share data and get feedback from citizens.
As a result, the government agencies' website construction requires a minimal investment and quick implementation speed — something that Drupal (and other open source CMS) are poised to deliver. "It validates open source," Buytaert says, and an opportunity to put to rest any concerns about scalability or other factors. "It's a good fit for the open government directive," he adds.
But wait — let's consider those two last items together. We have lots of developers and users in federal agencies rushing to slap together a website in 30 days. How much time are they going to have to make good architectural choices? (With Drupal or any other CMS, mind you.) Won't those developers drown?
Not necessarily. Help is available. "At Acquia we provide that kind of advice," says Buytaert. "We help those organizations manage the complexity of Drupal, he explains, much like what Red Hat does with Linux. "It's pretty much impossible for a [single] person to track thousands of apps. ... We provide an easier interface with the community. We can help with architectural advice, we can help with with module selection, fix bugs, and do all those things that could be a little bit painful."
Next time: Lessons from Drupal's success for other open source projects.
You probably should follow me on Twitter. Because, y'know, you just should.