Wait, what? What decent programmer will ever find herself with N slightly different copies of their classes instead of planning ahead or doing some basic refactoring?
Whoa, that's fighting talk. Next we'll be doing big design up front and (god forbid) beginning with the end in mind.
That was tongue-in-cheek, only because everywhere I go these days I see people bowing down at the altar of refactoring, rather than doing a bit of planning and getting it right first time.
You are correct about emphasizing more planning up front, of course. If anything deserves bowing at an altar, it's designing before you write code.