In the WordPress world, there's been a trend of simply bundling as many features and as much functionality into a single theme as possible. Because more features equals more sales. Neither right or wrong...
I believe - and this is something we try implement at WooThemes - that there is always a balance in anything that we do and thus include into our themes. Some things that we could be including for example would look fantastic on paper, but could perhaps be counter-productive in how that affects the usability of the theme and subsequently the user experience.
So I drew a little graph (Photoshopped it actually, since Excel was too complicated) to explain:
The graph above basically shows that usability & user experience increases steadily with more theme features until it reaches it peak and then decreases thereafter at the same rate (as more features is added). This creates a pretty average-looking bell-shaped curve (for the statistics whiz kids, you can read this).
The Analysis & ConsiderationsThe above is obviously just an opinion, but from experience these are the considerations I included in suggesting the above graph:
- More theme features means greater flexibility in terms of what a theme can or can't do. Greater flexibility increases the usability and thus the user's experience working with the theme.
- More theme features also generally means that the codebase is extended, meaning potential code bloat which in turn impacts flexibility.
- The shape of the curve above totally depends on the audience. I suspect that for an advanced developer the curve will be flatter i.e. they'll reach the peak much quicker (developers prefer less code). For end-users though, the curve may be substantially taller, as those users prefer more features / options for greater flexibility.
- Requiring an user to install a plugin to activate or add certain features to a theme, decreases usability / user experience. Again, end-users would prefer a solution that is more out-of-box, whilst developers wouldn't flinch when tasked with an additional plugin installation.
- The implementation & execution of any feature is important: if it's done badly it will decrease usability / user experience regardless of the fact that the theme has an extra feature / option.
- A badly executed feature / option also creates a greater demand on support resources. Rather half a theme, than a half-assed theme (h/t 37Signals).
- More features / options requires an initial learning curve and the setup of a theme. I however don't think that this is contradictory to improved usability and a better user experience, as long as the process is properly documented and the UI isn't confusing. I think users would rather spend 5 minutes setting up a theme that offers them greater flexibility / functionality, than activate a limited theme which requires no setup.
- Fallbacks & defaults should be implemented i.e. if an user doesn't go through the complete setup, a minimal viable version of the theme should still be active. The setup then serves as "extra reward" by activating the rest of the functionality. This isn't a half-bad compromise between having something that basically degrades gracefully to still work out-of-box.
I definitely believe that a WordPress theme shouldn't simply include any imaginable feature out there. Every WP theme shouldn't do everything. I also think the developers that potentially miss the balance do so for the supposed marketing value thereof (more features = more sales).