Your not going to know your classes, parameters, how data should actually be laid out in storage or represented in the application until you start writing anyway. It's always an iterative process.
I almost always have a pretty good idea of what I'm making and how I'm going to make it before I start.