The Drupal "features" module is a great module which simplifies code deployment when you have lots of environments in parallel. You can create a 'features' module which will activate most of the development configuration on the test and production sites.
One of the first questions one may have when starting to use features is how many features to create per site. For small sites (or existing sites) there are situations where you can't really have a good split between various parts of the site by conceptual layer, as suggested. Can we do one feature module for the whole site? Yes you can, but it's not really recommended. This discussion suggests a better way:
For deploying a single site from development to test to production, we use the following taxonomy (where "site" is replaced with a unique machinename for the site) —
- `site_types` Feature — declares Content Types, Fields, ImageCache settings, User Roles
- `site_structure` Feature — declares Contexts, Views, Menus and Menu Links, Blocks, User Permissions, Variables
- depends on `site_types` Feature
- `site_content` Feature — declares Nodes.
- depends on `site_structure` Feature