You can't just install the whatever module

As the open source Drupal CMS platform continues to gain popularity, I’ve noticed an unfortunate trend. Many organizations with the potential to use Drupal are underestimating the amount of effort that goes into building and shaping a Drupal website into the solution they want it to be.

True, Drupal is powerful and allows for a very rapid stand up of a “working” CMS. Yes, Drupal has a community of (literally) thousands of modules that extend core functionality into just about anything you might want. But take fair warning of the following pitfall:

“Just install the [insert module name] module.”

Many people new to Drupal are often lulled into thinking the simple installation of a module that someone else has written is the quick answer to their problems. I have also been tempted by the delight of finding that project page on Drupal.org with so much promise. But, rarely is a module exactly what you need without a fair amount of configuration, custom development, and styling.

Like the Drupal platform itself, modules should be treated as tools in a toolbox. You don’t just throw them on the floor and expect them to build something.

mike

Michael Morris is the Director of Client Solutions at Phase2 Technology.


All excellent comments, folks! Matthew, yeah, you are right on about labor expense and about the recommendations for choosing the right module. Drupal is a great platform with a tremendous amount of very smart people working towards making it better. I hope there are as many people out there educating about Drupal as there are coding for Drupal. Setting expectations with clients, leading them down the right paths, helping them understand what open source is really all about… here’s to the Drupal educators! We’re a tough and feisty bunch.

Thanks,
Mike

In my experience, there are two big factors that determine the mix of components in a Drupal project:

  • Labour is not just the biggest expense in a project; every other expense is statistically insignificant. However, clients largely don't see or value the labour.
  • Your client is probably using an operating system and other desktop software that is somewhere in the region of a decade old. That's the kind of support lifecycle they expect, not the < 2 years of Drupal core, never mind third party modules.

So (unless you're Lullabot) you have to work with the absolute minimum of custom code (ie. use contrib modules), and (unless you're Lullabot) you have to be confident that you can support the site inexpensively for a number of years (> 2).

Unfortunately some modules die through neglect, and others are deprecated in favour of alternatives, but with no upgrade/conversion mechanism for existing data. Some modules go through major revisions that break existing sites and require manual intervention to repair them.

Some module maintainers (who shall remain nameless) feel that the nth release candidate of a new version is an appropriate time to add features and change APIs that break other modules or your dependent custom code (not that I'm bitter).

Some habits I've learned for evaluating modules:

  • Check the module's issue queue. What's the ratio of posts by contributing developers to "+1 subscribing" posts? How promptly do patches get reviewed and committed? Few issues is not good; it probably means nobody is using the module.
  • Check the module maintainer. What else have they worked on, and how has that fared? Do they port their old modules to the current version of core reasonably promptly? Are they good delegators, or does the fate of their modules depend on that one person "finding time"?
  • Chances are that there is a group on groups.drupal.org concerned with the functionality this module provides. Check there for a sense of which module from the multiple alternatives of similar functionality is currently the most popular, and where development might be headed in future.
  • At least scan Planet Drupal every now and then for the same reason.

None of this should be taken to imply "Drupal sucks". Every comparable system I've seen is considerably more ropey, with lower code quality and more developers willing to live with kludges rather than spend the time thinking things through properly. And the Drupal user and developer community is awesome.

Compare what we expect from Drupal now to what was considered standard on a CMS a couple of years ago. If you want to live on the cutting edge, you should come prepared with band-aids.

Matthew,

all excellent points. However, reasonable clients can not possibly expect their Drupal installations to last for a decade without any re-work. Correction: it could, but the company that does not update its site for such a long time would be gone long before the end of the decade.

Windows XP is still the major OS in corporate America and it was released almost 8 years ago. How many websites are still running on the same code that they used to 8 years ago?

Web is a different realm. It just is. Constant enhancements are something end-users expect and either they happen or visitors move on to other sites, which there is no shortage of, of course.

What you say is completely true if you wanna develop a custom site application with many specific requirements from you customers and a high volume of visit.

On the other hand 99% of web sites on the world wide web are fairly simple, they come with standard features and these customers haven’t a very precise idea on how a thing should be accomplished. Furthermore the vast majority of these sites (for infividuals, small firms, small communities, etc..) have less than several hundred visits a day.

In this case Drupal + standard modules would be a perfect fit.

In fact, I’ve had this conversation a few times before, and in order to really test the performance of a standard Drupal installation, I’ve taken the time this summer to build a small community site with tens of modules and absolutely not a single line of php. For the moment the traffic is too low to endanger the perf., especially with caching enables but with the time we’ll see how it behaves…

But to come back to the aim of your post, this is true that you cannot build a high quality performing site by just installing Drupal, uploading tens of modules and shaking the whole…

Drupal is NOT an all you can eat buffet. If you want to run a 5k with your site, but scale up to a marathon, you have to be veeerrrry careful with what you eat. The fewer the modules the better. Can sites run well with many modules? Sure, but it can be hard work. Try to stay as lean and mean as you can.

Yep. You install the module, and oftentimes you cannot find the bloody configuration page… Some modules (CCK) don’t even have one, which is very confusing to newcomers. You finally talk them into trying CCK, and then: where is the darn thing?

As time goes by, maybe there’ll be a distinction between more “out-of-the-box” modules like userpoints, poormanscron or whatsoever and the really pro ones like Views.

But as you say it: I hardly know a single module that does not require some confuguration to work at all. And in the end you forget about giving out user rights, and people say rightly: where is it? Yes, Drupal is for pros and Geeks and there is a long way to go to change this.