Planning a Project

Planning for a project, whether personal or for another party, is one of the most important steps in achieveing success. It matters not whether you are planning what size cabinets you want in a kitchen, or what functionality you want in a program: having clearly defined guidelines is an important part of having desirable results.

This doesn't mean that the first iteration of your code will be the final version. In fact, if your project is one that will continue to be used for any lengthy amount of time, then you can be guaranteed that your code will be modified or completely changed as more time passes. Knowing that your requirements (and as a consequence, code) is likely to change gives you an advantage in development: you can strive for increased flexibility from the start. An excellent example of this can be seen when dealing with large amounts of data that have the potential to come from varied sources.

Consider the idea of a music repository. Data could be acquired from numerous sources (Google's Play store, Apple's iTunes, and Spotify for example), but there is no guarantee that all will come in the same structure, or with all the same fields. With this in mind, you can minimize the cost of supporting new sources by normalizing how you store data retrieved. Then, rather than having to completely change your storage or create new databases, you can simply parse the incoming data according to its source, and add a new parser for each new source.