Drupal Site Building Challenges
In the last post I showed you how central the site builder role is when planning, building and running a website. It virtually have bi-directional communication needs with every other role involved. In this one I will focus more on some of the main challenges a site builder is faced with in this process. That said, welcome to the third post of six in this series. The previous and upcoming ones are as follows:
- Un(b)locking the Drupal Learning Curve
- The Drupal Site Building Experience
- Drupal Site Building Challenges
- Drupal Limitations and Bottlenecks
- How to Improve Site Building in Drupal 7
- The Opportunity with Drupal 8 & Beyond
Each post will build upon the ones before. It is therefore highly recommended that you read them in the above order to get the most out of it.
Note: Post 5 & 6 has, after feedback to post 1-4, lead to the formation of the Drupal SuiteBuilding Usability Initiative, which I write about in Making Drupal more User Friendly. I am very excited about working with other Drupalers in the community in this initiative.
The Ultimate Site Building Challenge
Lets not beat around the bush, the ultimate goals for the site builder is simply to:
- Create the best possible usability and user experience to allow the site users to fully focus on their individual roles and tasks.
- Create easy maintainable, expandable and future proof websites.
When you took your driving license there were no requirement to learn everything about how a car works, or how to repair the engine if it were to break down. Then when you were shopping for a car you looked at things such as how safe, comfortable and easy it was to drive, the mileage you got out of it and how much stuff you could load into it based on your needs. You probably also looked at its condition, if it was second hand, and how expensive it would be to change tires, service and repair.
Now translate that into shopping for a website and I am sure you will notice that you will be looking for similar, yet different, things. Would you like a website that makes you uncomfortable using, is unsecure, requires learning a lot of new stuff unrelated to your normal tasks, one that you fear will break easily when using, one that will require a lot of service to keep going and is expensive whenever you need to change or extend it? I don’t think so. You want a site that lets you, or your organization, focus on the real tasks and one that help you better and quicker reach your goals.
As a site builder it is your challenge to make that experience happen. When you use a CMF platform such as Drupal, you are the one faced with creating the site features, including the administration, content editing and other user features.
Websites are Application
In the beginning websites was static pages sprinkled with links to other static pages. Then it was made possible to embed images, audio and video on them too. Over the years more and more has been added and today they are advanced applications where some parts run on the server, while other parts run in the client. To make things worse, we also want them to be displayed everywhere from small screens on our mobile phones to desktops, TVs and beyond.
Websites today are thus very complex beasts and by their nature they are always evolving. The technology they are built on is in constant change, leading to maintenance and updates to make sure they are working correct and are secure. Then, when in use things change. The site owner comes back wanting new, or changed, features. To make this possible the site must be built on a robust platform that not only makes it easy to maintain, but also to quickly be able to change or add new functionality.
The site builder role in Drupal is therefore not limited to configuring features in the UI. A site builder need a vast knowledge about all of the above too.
Understanding the Users
As a Drupal site builder one of your challenges is to understand the needs of the site users. Not just how they are going to use the site to work with content or buy products from a e-shop. You also need to understand how all this fits into their normal job description and/or life.
- Where is the content coming from?
- Who is producing it?
- Who will be adding it to the site?
- Will they also have the right to publish it or is someone else doing that?
- How will this fit in with their normal job tasks?
That’s just a few that you need answers to before you can begin building the site features. Each role needed has its own set of questions like this that needs to be known to you.
For me personally, I love this part as it will expose me to many new people, situations and needs. It also challenges my experience and skills to come up with the best possible solutions. More importantly, it adds new valuable knowledge and experience so that I will be able to build even better solutions. Also, this will be most helpful when I communicate with developers about needed improvements and new functionality for Drupal Core, modules and themes.
Picking the Right Modules
Another challenge is to pick the modules you need. Most likely you have an arsenal of modules you are very familiar with and that will form the base. But every site is unique and will almost always require features that are new to you. Often these new features can’t be built with your normal modules.
Luckily on drupal.org there are over 10,000+ contributed modules to chose from and the chance you find one that fits is great. Often, though, you find a couple of possible candidates, but not until you have tested them will you know for sure. This can often be a tedious task.
Then its just a matter of configuring the site and make it live, or is it...
What I have described above is a bit of a dream scenario where everything just works. But, in reality things are very different. To start with the site owner will want to change features during the site building phase.. Sometimes its minor changes, but other times it means you have to scrap days of work.
More problematic, though, is that you are bound to run into limitations and bottlenecks in Drupal Core as well as the modules and themes you are using. Often this is due to that functionality isn't exposing good enough UI-configuration options. Depending on this, problems can be easy to fix or find workarounds for. In other cases they are more complicated and means you either have to turn to hack(ish) solutions or even be unable to build certain features.
What these problems have in common is that they lead to more complex sites. Sites that will require more maintenance and will be more difficult to build new features for.
That, however, is the topic for the next post.
Till then - Happy site building!
Related: BoF at DrupalCon Munich