I pretty much do this but also write an outermost skeleton too.   There's usually some piece or pieces that you have to know how they'll work before you can really do anything.   Also, I get some data/input to feed to my empty shell of a program and even just to look at before I've done much of anything.   (But, then, after a while, you still have to write the darned thing.)
in reply to Re: Starting a Large Project
in thread Starting a Large Project
update:   Oh, and get something visible running soon (for some definition of "works"), then you have the confidence/support to take the time to get it right.   Otherwise, no one can be sure anything's going to come of it.