A good starting point is to look at RefactoringWithRelationalDatabases and the related pages. ---- I've only recently been introduced to the concepts and practices of XP and find many of the principles behind it very interesting. I work mainly for corporate IT shops and most of my projects rely on sound database development. How could XP be used for this problem/issue without having a very un-normalized database? Constantly adding and updating data structures during the development could lead to a slow and unreliable back-end. If you have any references to help clarify this part of the development cycle it would be greatly appreciated. Thanks. --PatMcQuade It's great to have someone on the team who cares. What if I asked you to make sure that at the end of every day the database was back in its best possible state? What would it take to do that? ''Hmmmm... maybe what we should be asking is what makes database development different? Aren't data structures within the code just as complex (or more)? Is it that databases are "harder" to change?'' -- AndrewMcKinlay -------- ''If you have any references'' On JStorm sf site, there is an article about evolutionary design with database : http://jstorm.sourceforge.net/documentation/Evolutionary%20Design%20with%20Databases.pdf I'm currently developping TestFirst in a project where data ''will'' eventually be in a DB, but I'm working hard not to introduce the DB before the very end of the project. As mentioned in UnitTestsAndDatabases, I'm using a home made very simple ''Persistor'' class, that stores data in memory. It makes evolving the data structure and writing tests A LOT simpler : creating a fake db with just the needed_data_for_the_test data takes no time. For real live demo, I created a fakeDbPersitor class, that preloads fake data when it's loaded. AlainRavet