View http://mikejolley.com/2013/12/avoiding-feature-bloat-plugins/
These are just a few awesome, practical tips to keep in mind if you work on any plugins. What’s great is that if you choose to do so, you can build your plugins in such a way that it can be extendable to include features that don’t belong in core, but would be used by a percentage of plugin users. Following an extension model helps keep your core lean and mean and extensions can fine-tune user implementations.