Absolute control over a website that allows flawless controls to both developers and maintenance crew, and the end user sounds very much like Christmas in July, does it not? Glorious, yet impossible? Well, that’s the part where your judgment might end up wrong.
To tell you the truth – such a web solution is, in fact, achievable. It requires accuracy and certain levels of effort during the planning and preparations stage from the very beginning, but it’s far from fiction nonetheless.
Simplicity is achievable through architecture. This is one of the main principles we follow here at QArea. And, considering a stacked mess of site blocks, settings and configurations is as far from simplicity as it gets – we have learned how to overcome this issue in one of the best possible ways.
The “More might be less” paradox
Imagine a blog. The best one you’ve ever seen. It’s user-friendly, has intuitive navigation, and is all shiny and sparkly perfect by default. How do you think it was made? Did some developer (or a team of developers) use the Blog module to tailor it?
Not a chance!
First of all, the Blog module is a relic that deserves retirement, but that’s slightly off topic. And we get to the point where we realize that decent blogs (as well as numerous other websites and online products) are made with series of custom content types, views and fields.
But isn’t all that much more than but one single Blog module? Wouldn’t this approach lead to a higher extent of required efforts, more code and, additionally, unavoidable confusion?
Think of it from the other side. Review your own business for a second. Imagine you only have one employee. Will he handle all the tasks there are? Will he manage to achieve worthwhile results? All of them and at the same time? Obviously such a person will fail eventually.
And you can’t really blame that worker. After all, he was doing his best. It was your decision that challenged him with the impossible.
Websites, blogs, e-platforms and other web-based solutions are not that different from a well-managed business. Drupal, for example, has modules. They are your primary workforce. Your site’s employees. Assigning the right one to an appropriate position instead of making one module process, support and maintain everything certainly does the trick.
This means that if you require a custom solution, tailored to meet and regulate with all of your business needs, goals, and objectives – the “seemingly simplest way” cannot be considered as a default choice. People responsible for development should be tasked with the primary challenge – making the hard way easy enough.
This leads to one of the primary issues any project encounters: appropriate management!
One ring to rule them all
It’s finally time to greet our one-of-a-kind web functionality manager – the Features module! Here are several MAJOR benefits, achievable with this fine module (just to name a few):
- Same settings for every used module. Your team will not be forced to tweak here, swipe there and handle results of the previous fix which have spawned a total of 17 bugs. On the contrary, all of your module workers do their job according to same rules, share the same corporate spirit and are aimed at beneficial results! That’s what we call management!
- Settings are reusable. This means the same sets may be used in all commonly and frequently used modules like Context, Panels or Views, etc. That sure saves a hell lot of effort and really expensive time throughout development.
- Bonds with community. The Drupal community is one of the world’s largest sources of professional knowledge and experience. The Features module allows easy distribution of existing configurations to developing sites (and, of course, only to customers when necessary). Such settings that are in open access get frequent updates and improvements, which is nice.
- Lightning-fast deploy. A variety of choices and options open with implementation of Features. The module creates great shortcuts in all workflows based on configuring settings. In addition to simply being there, these shortcuts are quite convenient and comfortable in use. (You would be surprised, how many shortcuts end with agonizing failures. Just take hacking the core as an example.)
But what does this mean in terms of your personal project? What’s in it for you, as a business owner, stakeholder or PM?
Primarily we have to answer one question. What’s Drupal? Well, in simple words – it’s an astonishing CMS and an even better CMF. However it is highly dependent on Databases. All variables, views, configurations of entities, bootstrap and other functional structures are stored in DBs.
This leads us to some of the most important architectural decisions the team should make. How will the modules operate when put together? How will you manage partition? What about numerous functional parts that lie in-between modules?
Features provides you with all required answers. The module assists in avoiding overlaps. All of your workers (other modules) like Blogs, Search, Users, etc. will work as one, despite being separated.
To make a long story short – Features is the cement that sticks blocks of the web solution together. And it’s a solid set of guidelines at the same time! This ensures a wide variety of useful tools and solutions behave exactly as you want them to. Features is your centralized approach towards Drupal development. The module is your primary manager. A manager that is great with his job. What else can you desire, as a business owner?
Having everything you want in one place, with changes that are applied to everything, after being coded only once, is something much, much better than simple optimization and speed boosts. This is a great background for an insanely efficient Continuous Integration process. You do want these yummies in your project, right?
PS (or the secret sauce of great Drupal development)
There is one secret we would also love to share. Features tastes exquisite, when Drush spices things up a bit with its commands. That’s when the real magic happens. Wish to know more? Feel free to contact our managers!