Anatomy of a Drupal Feature
The word "feature" tends to be nebulous, ambiguous and perhaps even overused in our industry. As a project manager, I often use it as a way to compartmentalize requests for an update, change or improvement to a website. It's a helpful word - one that gets the client and I on the same page and simplifies our communication.
What most people don't know is that the word "feature" has a very specific meaning for us as a company. While we may use the word arbitrarily when working with our clients, we rarely use it internally, save for a specific application of our preferred technology - Drupal.
I'd like to give you a bit of an "inside look" into our perception of this term and how it makes MCN Interactive a more effective company for website development.
So, what is a feature? How does it improve your site and reduce your costs?
To answer these questions, let's examine a commonly requested feature: a staff directory. Many businesses decide to have a section on their website dedicated to showing information about their staff, faculty or personnel. A staff directory is a good way to connect with clientele on a personal level; it adds a human touch to your site.
Therein lies the main qualification of a feature: something that is commonly needed. Once a feature has been created, it can be added to an unlimited number of sites at low cost. A feature collects all of the necessary parts of the staff directory,
- An administrative interface to add new staff and edit existing staff
- A page on your site to list the staff and a small portion of each staff member's information
- A dedicated page for each staff member to show his or her full information
- Optional functionality, like a simple index of names or the ability to show one of your staff members on the front page,
into a single, reusable piece of programming. Once the feature is added to another site and turned on, all of the above functionality immediately becomes available. If necessary, the feature can then be modified to suit the specific needs of a client at a vastly lower cost than building all of the included functionality from scratch.
As features are added to numerous sites and clients provide feedback about how they could work better, the features can be easily updated and upgraded across any site that may be using an older version.
At MCN Interactive, we have developed a large number of features and are continuously improving them, as well as building new ones. Our past development work allows us to offer websites that are more "feature"-rich at a lower cost, and it equips us with the ability to continuously improve each of our sites based on the feedback from all our clients.
If you'd like to learn more about features, take a look at the features module for Drupal 6 and 7, which is used to develop and upgrade features.