Dan Chak is the director of software development at CourseAdvisor Inc., a Washington Post company. He is the author of Enterprise Rails (O'Reilly).
THE DATABASE IS WHERE ALL OF THE DATA, both input by your employees and collected from your customers, resides. User interfaces, business and application logic, and even employees will come and go, but your data lasts forever. Consequently, enough cannot be said about the importance of building a solid data model from Day One.
The exuberance over agile techniques has left many thinking that it's fine, or even preferable, to design applications as you go. Gone are the days of writing complex, comprehensive technical designs up front! The new school says deploy early and often. A line of code in production is better than 10 in your head. It seems almost too good to be true, and where your data is concerned, it is.
While business rules and user interfaces do evolve rapidly, the structures and relationships within the data you collect often do not. Therefore, it is critical to have your data model defined right from the start, both structurally and analytically. Migrating data from one schema to another in situ is difficult at best, time consuming always, and error prone often. While you can suffer bugs temporarily at the application layer, bugs in the database can be disastrous. Finding and fixing ...