So you have chosen the Swiss knife of the portals software for creating your website - with Drupal. It has flexible architecture, extensibility, variety of modules, robust security and multitude of themes and and and…Yet it’s not uncommon for even the experienced site builders to discover that your image gallery does not gel well with the editor and cannot give the smooth slide shows you were expecting at the drop of a hat.
Its things like these that make people coming from wordpress background smile .In reality it’s not the fault with Drupal as CMS, but failing to tame the power of Drupal. Unlike wordpress, Drupal expects you to know what you are doing and it’s at this place the need of planning and architecting your Drupal website becomes nuanced .
At e-Zest we devised a 4 step methodology for setting up Drupal site called as “DADI” which can govern almost any kind of site that one might be developing with Drupal .This Discover Architect Develop Implement can see you through; whether it’s a simple web presence or a centralized multisite setup or a social platform or commerce site . The DADI framework lays down 4 stages of evolution that are essential for a Drupal site.
Discover:
This is a phase in which we document and unambiguously reason out the site .The site sponsor needs to clearly articulate the main reason why this site is coming into existence. The team can also find out some secondary benefits as well as peculiarities that are/or can be associated with this site. Next step is, we list down the demography of the site, the target audience, the fringe audience, as well as the audience to whom this site is not catering to.
Once we fix the coordinates on who and why, we face the most existential questions for the sites, what would or should go into this site, so that the audience is actually engaged and what it is that we need to do novel so that they are effectively engaged ( and there by achieving the objective of the project. Is this site meant for web presence or pure SEO feeding? Should it be interactive or informative? What should be the key emotional take-away from this site? Which are the devices that we are targeting? And so on. This list of question stirs clear the initial enthusiasm, mandate and helps the discovery process to play out.
Architecture:
Once the conceptualization of the site is done in the discovery phase, it’s time to convert ideas into clearly laid down designs and plans. It starts with segregation and differentiation of various users of the sites and sample out the interaction they would have with the site .The flows of interactions called as user journeys, helps us define the ground rules for various layers of the Drupal site .This includes the list of functionality/facilities provided on the site mapped to different user types. This setup often feeds into role definitions, access matrix, workflows etc. in the stages to follow.
Based on the overall tone discovered for the site and user types, we define the user experience for the site. It could be specific to the role type for a user or it could be multi device responsive. It could be optimized for specific type of interaction and/or made compliant to non-discrimination acts .The process of user experience goes more than setting the fonts/colors/segments of your site and it often depends on the content identified for the site.
Content identification and classification is vital to be able to facilitate rewarding user journeys as well as efficient management of the site. This long step includes the inventory of media artifacts that go into the site image, css, videos, files; hosted content which could be simple pages , posts, newsletters ; targeted content types like blogs, books, forms ; specialized content types like media galleries ,slide shows ,item catalogues ; user generated content like discussions ,social connections ,uploads, mailing lists ; sourced-syndicated content like feeds ,links, references from other site or feeds to other sites ;derived content like statistics, analytics and reports.
Based on the nature of the content and their targeted interactions we might need to revise our plans on access control or set up dedicated rules or workflows for content movement (approval etc.) deploy additional layer of security like ssl, federated login, spam protection and so on.
Information architects also impact user experience since each content type has its own limitations and liberties in terms of presentation or interaction and usually give important instruction to themes. It also gives us the essential input to decide the usage of existing features-modules or custom built themes.
At times the new site might be migration from old version of Drupal or replacement of old site using some other platform. Content migration can get fairly complicated based on the nature of content (standardized vs. ad hoc) and transformational needs processing, cleaning, reformatting, de-duplication, retiring etc.
Scaling is another important consideration in this stage. We need to define whether the setup will be able to meet projected or sudden user as well as usage load. Based on the answers to the above we can employ targeted techniques such as the use of memory cache, use of Db clustering, user of web load balancing/clustering, usage of web level caches as well as usage of cloud based elastic hosting. Performance and availability might go hand in hand with scaling but for many Drupal sites they are not the prime considerations.
Develop:
Develop is the phase of using the features provided by Drupal, the modules chosen for the sites and the custom development done (actually defined ) for this site .It might be tempting for someone to add module selection in the architecture phase however it must be remembered that custom/community modules are means and not objectives for this site . Especially when it comes to community module great care needs to be taken to ensure proper fitment and cohesive ness of the modules .One of the first setup to be done in this stage is theme-ing, based on the mandate from the UX and information architecture decided on theme options for the site .It could be ready made community/commercial theme, or a specialized sub-theme developed for this site or a new theme built from scratch. The theme decision needs to be taken keeping in mind the UX, the devices, the regulations, content organization and maintainability in mind.
Content staging and taxonomy often go hand in hand. In this step the intended content for the site is either migrated or created and posted to the new Drupal setup. Content that is neatly stylized also needs to be tagged into comprehensive set of attributes that can be leveraged for the purpose of display, search, as well as syndication.The content might be facilitated in multiple languages in which case language specific translations, b-direction adjustments, theme adjustments(say Chinese) as well as content provisioning needs to be catered to. It’s also a good practice to have search module configured keeping in mind multilingual setup, user setup and access control which is also an essential step in this stage. The team needs to prepare the installation for required number of users, their profiles, their roles that define their access and mapping these roles to the actual nodes in the administrative screens. Based on the nature of the site it might need further strengthening of security via captcha, spam elimination, relevant moderations, hardening. We might as well like to define the process of user self-service modules like self-registration/password reset/access application as relevant to the site.
Based on the eco system, the site might need integration with other systems such as the LDAP, a content repository, service providers as well as inbound requesters of data. Multisite setup is not as common as multilingual setup, however it’s a very powerful feature of Drupal allowing centralized management of modules, features and templates which can be inherited and specialized by sub sites (independent or subdomain ) but with clear separation/privacy of site specific data there by providing a very powerful site management setup. In case multisite setup applies to your site, the team needs to define the deployment architecture and they also need to define and setup modules, views, themes blocks etc.
Implement:
The implementation is our action plan going live. It assumes that the site has been nicely developed and tested in development environment (fair assumption aint it ☺) .The team needs to ensure that necessary hardware (physical-virtual) is available with requisite version of Drupal and the software stack needed for it. It needs to check the installation-deployment against a checklist that helps us verify that necessary parameters,configuration,distributions,installation, federation are done. This also includes the plan for periodic staging for work product to Drupal, routine site maintenance plan. They also need a clearly laid down plan on upgrades of software subsystem as well as Drupal modules or else it’s very easy for a Drupal setup to go patchy and out of order soon.
The upgrade plan might optionally include plan to upgrade to the next release .The team also needs to integrate the setup with the monitoring environment applicable to the site.If it’s a plain web hosting, then the administrative setup on crons, audits, logging and reporting need to be done so that the actual administration, maintains and defends the setup very well.
In addition to federation the site might need some specific setup step to be carried out for ad based monetizing as well as web analytics setup mandated by the provider. It could use the popular web based analyticsengines available in market or analytics suits deployed on premises with Drupal in either case the setup in both cases need to be done.
While QA and launch might sound trivial for a regular IT professional, it’s a very important step. In addition to site-specific test, it’s also important to validate the system against default or development environment specific parameters, ensuring that the access rights content part gets pushed to the production site accurately along with the content. It might also be a good idea to do some analysis on scalability and vulnerability based on your usage scenario and relevance.
As you might have gathered from this post that any site that needs to be developed beyond mere web presence and often with monetization involved needs deeper consideration on its creation. The architecture and feature list of Drupal along with its mainstream modules more than meet these requirements, but they cannot eliminate the need for considerate planning and definition beyond a point.
The e-Zest DADI methodology formalizes this entire process in to a simple-to-follow-evolutionary process that can lead you/us to a successful go-live-site using Drupal.