The Drupal Way

Just fifteen years ago, few organizations had websites. Those that did, owed thanks to some nerdy staffers or volunteers who had heard about the web, learned HTML, and hacked something together. Fast forward to today: most organizations, millions of people as well as several dogs, cats and birds have their own websites. Such proliferation has been assisted by numerous standards and tools that have emerged to aid with creating, editing and maintaining said sites. For most organizations, the key tool is a Content Management System (CMS); others design and build their own web application using a coding framework. Drupal is a bit of both, CMS and application coding framework.

Note, Drupal is by no means the only or necessarily the best choice for site building. Choices abound: Wordpress for simplicity and elegance, CodeIgniter or Symphony for efficient PHP application coding, newcomers such as CubicWeb built on emerging semantic standards – google ‘choosing a CMS’ if looking for advice on selecting a system for a new site.

Suppose, however, that you have inherited a Drupal site or have chosen Drupal on its merits as a mature, open source platform with a thriving community of users and developers and a plethora of modules to perform nearly every conceivable web task. Then it behooves you to understand the Drupal Way of avoiding pain and achieving maintainability.

Interestingly enough, the “Drupal Way” is not authoritatively or precisely defined, yet one hears experienced Drupalers refer to it in those terms. Pro designer Roxy Caraway defines it as a set of “best practices to keep the community from getting too chaotic.” First and foremost, the Drupal Way means to use existing, community-supported modules in preference to custom coding wherever possible. When the core of Drupal is updated, it generally requires some work to make modules compatible with the new Drupal version. Using a well-supported module means that the module developer will do the work of adapting their module to the latest version of Drupal rather than whoever coded your custom module having to do that work specifically for your site.

In order to take advantage of the existing, supported modules that the Drupal community has to offer, another principle is to design your site at a high, general level. Although at some point you may want to show your developer screen shots of exactly how you want the site to look, start by outlining the general features you want the site to have. Caraway asks all nonprofits some basic questions such as “Are you going to have volunteers? Do you need people to sign up for events?” Features like that are already built into Drupal modules, so consider using what is available ‘out of the box’ if its behaviour is close to what you had in mind.

Matt Shepherd, lead Drupal developer at Illuminate ICT, explains “We sometimes find that customers over-specify their sites and cram them with functionality when all they maybe wanted was a simple site to advertise events and create news reports. When faced with a complexity which they’ve specified and has been built into their site, they feel threatened and less likely to maintain the site properly….A Drupal site spec has to take take into account the skill and experience of the owners of the site. It would be outrageous to specify a site that would require a high degree of competency to maintain when the people maintaining it aren’t able to (or don’t want to) progress beyond the basics – many of our customers are very happy using a word processor and sending email, but would be shy away from anything more complex.”

“A smart office admin could certainly maintain a well-build Drupal site, even with little prior experience, as long as they had a willingness to learn!”.

Caraway adds that “I think one of the things you really need to pay attention to, when you assign an admin to a Drupal site, they see sooo many options and most don’t even apply to the running of the site.

If you define permissions so that when your site admin logs in they see only what they need, that reduces the intimidation factor.

Ever site owner gets the top-tier admin login, but for day-to-day operations, usually the people maintaining it day to day are editing pages, adding pages, they’re not doing any configuration.”

Design and Theming
——————

Think Zen. Specifically, the Zen theme, or the Salamander – something minimalist and extensible, if you are going to create your own Drupal theme. Even if you choose to use a fully detailed available theme, try to choose one that uses good design principles in case you do need to edit bits of it later. Caraway provides a set of editable themes at http://catalog.designdabblers.com with images intended to be doctored by the themer.

The whole creative aspect of the site – the layout, artwork, fonts, how it will be laid on on the screen – this can be determined by the themer. Caraway points out, “For layout on a site, there are a lot of possibilities – you don’t necessarily have to have a blocky look and feel, you can do a lot of things different ways and achieve the same result with Drupal.”

Hosting and Maintenance
————————

Be careful when choosing a hosting provider. Make sure you have a host that either explicitly supports Drupal or provides access to your apache/PHP config files so that youcan provide enough memory to your drupal application. Drupal has been accused of slow performance on high-traffic sites, but proper tuning, memory allocation and server configuration (having memcache available) can make a big difference. For smaller or low-traffic sites, performance may not be a concern.

Training is another key to avoid external maintenance costs. Shepherd notes that “Training is a very important aspect of every site we create. Training your staff in at least the basics will ensure fewer support calls and a smoother entry in the Drupal system….A smart office admin could certainly maintain a well-build Drupal site, even with little prior experience, as long as they had a willingness to learn!”

The actual maintenance of a Drupal site may involve installing security upgrades through the administrative interface as they come out, as well as regular updates. This is why making sure custom development is performed in a maintainable way is so important. You will have to upgrade to maintain security, and you may want to in order to add functionality; and when you do, you don’t want your nifty custom code to break! Caraway explains that “Usually quarterly you just take your site offline, update your drupal code, run an update script, make sure its running, bring it back online. If people want to add in functionality that’s pretty standard, chances are there is community support for that.”

Cost
—–

The more standard you are willing to be, the lower your development costs will run. Caraway provided an actual pricelist, current as of beginning 2010:

basic drupal install: $500
brochure site: $550
directory: $650
blog/forum/enhanced dir: $800
community/social net/core media: $1200
eCommerce: varies
complex CMS (organizations, corporate sites, highly interactive): varies

While your mileage may vary, and custom requirements may quickly increase the price, a Drupal site does not have to eat your entire marketing budget.

Resources and Example Sites
—————————

http://drupal.org – THE Drupal site
http://drupal.org/project/Modules
http://drupal.org/project/Themes
http://drupalmodules.com – independent site with ratings and descriptions of available modules

Caraway’s Design Dabblers site: http://catalog.designdabblers.com
Illuminate : http://illuminateict.org.uk

Some sample nonprofit sites based on Drupal:
http://discuss.epluribusmedia.net
http://montanahope.org
http://ncasef.com
http://calvarygp.org

Author’s note – as an experienced Perl and PHP developer and who just recently entered the Drupal world, the ‘Drupal Way’ was a bit of a discovery for me, and thus this article.

Leave a Reply