Designing and documenting your data model
The importance of your data model's design cannot be emphasized enough. It is sad to see it being overlooked in many cases in Salesforce due to the fact that Salesforce comes with a pre-built data model, in addition to great flexibility for creating and changing custom fields and objects.
However, the proper data model design could be the difference between a smart, flexible, and scalable solution that delivers valuable real-time insight that justifies all efforts required to enter the data. This may also glorify the database with tons of dumped data and provide an overall feeling that data entry is an overhead.
Your data model is the foundation of your solution. You can read through the solution by understanding its data model, and your solution should be as strong as its foundation. You need to get your data model design right, and in order to do so, you need to understand key concepts in data modeling. This starts with normalization...