''Forgive me if this is expressed elsewhere [such irony in that...] (and better, most likely), but it's been on my mind:''

Many advocate BigDesignUpFront as a means of avoiding code thrashing.  Speculation is the tool used to predict future growth.

However, I've found that duplication is a better predictor than my intuition.  Any time I notice a teeny, tiny bit of a OnceAndOnlyOnce violation, I make a note of it in my head.  Sure enough, those places are the most frequent places that get more duplicated until I do something about it.

''Another instance of YesterdaysWeather then.''

Yup, the CutAndPaste phenomena...  Usually works once or a coupla times, but then you end up seeing that the concept needs to be generalized and the various pastes wiped up. --gl