There is an established way to design a transactional database: following the rules of normalization. This is the process of essentially turning a single, large spreadsheet into a set of related tables.
Transactional systems can back our applications, but analytical systems power decision making. Data warehouses and data marts store the data and OLAP systems provide the analysis infrastructure.
I'm a big fan of testing, but I get lazy sometimes and it ends up costing me money, directly.
TDD is one of those things that people talk about, argue about, and think is interesting. I'm one of those people, so I asked Brad Wilson to clear it all up for me.