Davidson: Whoa, that is a big question. Most of the answers are related to what I shared in the webinar: not following what the requirements state.
For example, let’s say the requirements are to store a list of names and unique email addresses. We could build the database and ignore things like uniqueness or allow the customer to store something other than email addresses in the email address column.
Going the other direction is an issue too. We could over-engineer the solution by using five tables: one for the email address domain and the details about the company that hosts the email, one for each part of a person's name (and a person may have unlimited names if you want to support it, and sometimes you may), then add in the mailing address, phone number, height, company they work for, the companies that that company owns, etc.
The bottom line is if you deliver more or less than the customer asked for, you haven't done a great job.