YAGNI - You Aren't Going to Need It - is one of the most disputed XP principles. Robert Martin explains.
"Databases for example. Are you going to need one? If your application manipulates persistent data you will almost certainly want to use a database of some kind. So should you start development with the database in place? YAGNI would ask you to consider otherwise. If you follow the rules of simple design you would avoid making the database decision for as long as possible. You'd write the bulk of your application while keeping the data structures in RAM. When you finally needed minimal persistence you might write the data to some flat files. You'd hold off on integrating with a full blown database until very late. Again, I think there are many cases where this is just good engineering practice.
When we wrote FitNesse, for example, we knew we'd need to store the wiki pages on disk. But we ignored this issue at first. We wrote our WikiPage object to be RAM resident. We kept it this way for a few months while we worked through the behavior of the system and the design of its components. We had a lot of code written before we ever wrote any persistence code. And when we did write persistence, we used flat files instead of a database."
YAGNI