Start with the API: A Better Approach to Developing Craft CMS Plugins
One approach I find useful when developing Craft plugins is to think of the plugin as a client of its own API. Not only does this force me to concentrate on the core functionality of the plugin right from the get-go, it also changes my perspective on what a plugin actually is. Stephen Lewis