The incremental guys would say you start both processes almost simultaneously. I tend to 1) model on paper, 2) write a prototype, 3) rewrite the prototype a couple times, incorporating the "big lessons" I learned along the way about the domain, 4) deliver the final. Now if I were to write essentially the same app again, I'd skip step 2 and most of 3, but who wants to write the same apps over and over? ;)