Marker Seven Developer Will Vincent Discusses How to Simplify Building Websites Using Drupal

POSTED ON April 13, 2012

"Make it Mom Friendly"

Anyone over the age of 25 or so likely has a mom somewhat similar to mine. She is able to send emails, and maybe search google a bit, but overall she isn't the most tech savvy person in your life. But that's ok, mom is good at other things; she makes great cookies, she always has your happiness in mind, you know, mom stuff. So why does it matter? Why am I posting about moms? Well, as it turns out there are a lot of people who manage content for their company website, or otherwise interact with the products we produce that might be a little more tech savvy than mom, but they're still not "rocket surgeons."

They know enough about computers and the internet to do their job, but when you give them a shiny new tool they are probably pretty lost. This is especially true when it comes to websites built with Drupal. On a recent, rather large scale, project my team and myself were tasked with building a set of very flexible marketing websites. We went about doing so by leveraging a lot of pretty cool tools that are available to us as Drupal developers. We used panels, extensively, throughout the site. This gave us a very powerful, and very flexible system that was capable of doing everything the client had asked for -- and a whole lot more. We knocked it out on time and on budget, and everything was great, smiles all around.


We spent a full day on site with the client doing a pretty intense hands-on training session. During which it became apparent this setup was just far too complicated for them to wrap their heads around. That probably shouldn't come as a surprise. Anyone who has worked with Drupal knows (or should know) that it's fairly daunting to a new person. Even with the extensive UX work that went into Drupal 7, at the end of the day there's still a lot of FUD for new users. Throw in something complex like managing page variants with panels and it's almost an insurmountable level of fear to cut through in order to actually teach them. So, we left our day of training and went to work on making things easier to use.

As it turns out there were also a few other issues with how we'd built the site that would affect search results, since none of the content was ever to be displayed on its own, but always within a different page variant depending on the path, node, and other criteria -- so there wasn't really a good way to guarantee that when clicking a link in search results you would end up viewing the content in the correct manner. It was a major oversight that I'm still pretty embarassed about. Luckily we caught that before the sites went live! What we wound up doing was scrapping several content types that were intended to make up pieces of a full page withing panels.

We replaced those with three (3) new content types, called: "Template 1", "Template 2", and "Template 3" (really original, I know). These new content types had all of the required and optional fields necessary for any page on the site, and differed only in the number and type of other content that could be referenced, and how that referenced content would be rendered. As it turns out, this was what our UX team had told the client they were going to be getting all along (somehow that bit of information never made it to the development team). So the client was thrilled when we showed them the NEW, new toys a few days after the original day of training. You've undoubtedly heard the term KISS (Keep It Simple, Stupid) before.

This is similar, but I like to think of it as the Mom Factor, or Making it Mom Friendly. What I learned from this project was that it is not only important, but essential, to keep the end user in mind while building a site. At every step of the project, we should be asking ourselves, "Could my mom use this?" If the answer to that question is no, the next question should be, "Could I teach my mom how to use this in x minutes/hours?" If the answer that the second question is also no, then you're probably doing something wrong. Not necessarily wrong in the sense of the "Drupal way" but wrong in the sense of best serving your client.

Most people think in terms of full pages when it comes to websites. They don't think in terms of a collection of pieces of content that are combined in various ways via blocks, views, nodes, panel panes, etc, to make up a full page. Of course the latter is the way Drupal works, and it's the better option of the two anyway, but getting someone to stop thinking in terms of a full page isn't easy. This isn't to say that we shouldn't try, but rather, we should give users the tools to continue thinking and managing content in terms of the full page, while keeping individual pieces of content separate.

This isn't always possible of course, but when it is we should do it because it will make life easier for the end user, and for whomever is training that user. So, how do we do it? On the aforementioned project, we leveraged node references fairly heavily, in conjunction with nodeconnect. This allows users to go about the business of creating a full page, using the appropriate "template" (depending on the content type they choose), and then create or reference the necessary additional content that should live on that page all from within the same node edit form.

Easy. Clients like easy. I suspect there are several other modules, plugins, and other tools that would really help with this sort of implementation as well. In fact, as far as I can tell this is exactly the problem that bean was created to address. My experience on the project I mentioned earlier in this post has motivated me to always address the Mom Factor when I'm building a client site. My ultimate goal is that regardless of the size of the site, I want to be able to teach my mom everything she needs to know to handle general day to day activities on the site in a 4 to 8 hour training session. This isn't to say that she would know how to do everything on the site, but she would know everything she needs by the end of that one training session to do all the regular day to day content management.

Of course more involved and complex tasks would require additional training, but whenever possible those should be simplified as well. If we're not making things easy for our end users, we're really doing them a disservice. What steps do you take to make the final deliverable site easier to use for your clients? What is your process for addressing the Mom Factor when building client sites?

Will Vincent, Drupal Developer

  • Admin