Making features the right way

On small sites and small projects, you might get away with adding all your configuration into one big feature (like I did in the second screencast in this series). On larger projects, though, you want to divide configuration into several different features – and often times add new features when new functionality is requested.

Splitting up configuration into different clear-cut features is not an easy task. Partly this is because Drupal configuration (mostly) isn't made to be managed on its own, but always together with other configuration – and partly this is because you (most likely) isn't used to think in terms of export when building functionality on your site.

One way of approaching this is to have two different groups of features: one managing the basic setup of the site – global stuff – and one group with task or function specific configuration. The former probably becomes one medium-sized feature, and the latter group consists of one feature for each user story (en.wikipedia.org/wiki/User_story) you have on the site. (User stories are kind of like use cases, or tasks that should be possible to carry out.) Ideally, it should be possible to enable a "user story" feature on a site – any site – and just click and go.

Building features in a clean-cut and highly reusable way is a difficult art, but an important one. A good way to get started is to check out the KIT Feature Specification.

Modules: 

Leave a comment