I'm more curious about what the alternative is because this is my default mode of programming. I don't see what's backwards about it. You establish what you need in the module first, then code. What else can you do?
The way I'm most comfortable programming is a sort of head-first approach. You have a feature you need and an idea of how to design it and then you just start writing. It should compile at any time (within reason), and you'll see the bits and pieces of your feature come to life. You'll catch bugs quickly because you won't have written much at any one time.
It's usually messier, though. An hour of just cleaning the code really helps as I always end up with a method that should have been broken up into 2 or more.