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.


Delicious
Digg
StumbleUpon
Reddit
Technorati
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:
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:
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.