I am all over the map, depending on the problem at hand.
But for the most part I tend towards incremental ongoing
design. A random link on that topic is
Why
Late-Binding Is Good.
For a smorgasborg of design options you could do a lot worse
than to pick up another book by Steve McConnell,
Rapid Development.
Comment on Re (tilly) 1: Virtues of Software Engineering