title: While doing TDD and adding features incrementally, do I design database ahead or add tables and columns while coding?
body: <p>One of the most important opportunity TDD gives us, from my point of view, is to develop projects incrementally, adding features one by one, which means ideally we have working system at every point in time.<br> What I am asking is, when the project involves working with a database, <b>can we use this incremental approach for creating database structure or should we work the structure out before start writing code?</b> I know it's hard to predict what the structure of database will be like in 1 year from now, but generally, what's the best practice on it?</p>