Drupal Modules are Cool. But It’s Still About the Content
Anybody who has spent more than 15 minutes of research on the Drupal content management system (CMS), can see that the modules and the community developing them are incredibly valuable to the systems success. Every week, new modules get pumped into drupal.org, constantly solving, improving and securing all the most common (e.g. Views Module) to the most specific (e.g Video Chat Module) web development challenges.
For designers and developers this sometimes poses a problem. One who is classically trained in design, frontend development, or backend development has been conditioned to solve problems using the most intuitive and optimized work-flow with which they’ve had previous experience. This results in conversations that start with statements like “LinkedIn uses this really cool UI pattern in their sign up process…”. From there, they begin building from the ground up with subject to the constraints of time and budget.
With modular architecture, these proven rules don’t always apply because you’re not starting from scratch. Your starting point is a series of cogs that, when combined right, create a desired outcome at a fraction of the cost. Yet, when not combined properly, a Drupal site becomes “clunky”. The spirit of the functionality may be there, but its implementation is only as good as the architecture that the specific, individual module creator originally envisioned.
This poses a problem for Interaction designers because we are focused on what users remember from their experience with content, not necessarily the means to access it. If that experience feels like a series of unrelated cogs instead of a unified vision, that negatively affects a user’s ability to both find information and the perceived value of the brand.
This can result in a very large ecosystem of developers that create well-constructed systems of cogs, instead of fully-realized content- and user-centric visions. This is not unique to Drupal, as this problem is found in almost every CMS platform. Developers and designers are empowering their clients to dream their wildest dreams, but in the process, brands and users are losing as the conversations about what role a website serves gets lost in a disconnected litany of functionality. Fully functional “templates,” available for free or purchase, offer one solution to overcoming this problem.
To use an analogy, it’s like restricting yourself to only using certain types of LEGO pieces. When I play LEGOs with my nephews, they pick out all the coolest pieces they can find and slap them on the set they’re making. They’ll say, “Uncle John, check out this ship I just made!” followed by a systematic counting of laser guns they stuck all over it.
You can think about modules in the same way you think about these cool LEGO pieces. On top of the Drupal core are certain pieces that have been designed to meet a lot of your building needs. When one of our clients is looking for us to build a website, it’s easy to want to put together all the coolest pieces that we have found along the way. It’s also easy to get wrapped up in the cool factor of each piece and market it that way. Ultimately, we lose track and vision for what the website should communicate and how effectively it achieves it’s business goals.
Finesse of a Drupal website is tied directly to the steering wheel of the team producing it, and that often comes down to the modules they choose to utilize to achieve those results. Here at Duo, we stick to a core set of proven modules with the support of our friends over at Acquia. It creates an environment where we can be more disciplined with our site architecture because we know what the final output and experience will be from each tool.
By limiting our core tool set, we allow ourselves to focus more on the quality of the implementation, keep a certain level of discipline, and most importantly from an Interaction Design perspective, focus on the content. Instead of letting the conversation move to the means, let’s instead keep the conversation on the content and the types of users trying to access it.













