in reply to Over Programming

In my experience, Over Programming is caused by two often-conflicting things in the mind of the programmer: It's my opinion that sitting down with a few blank pieces of paper away from your computer for an hour to hash through a couple of designs and to draw some diagrams is the best programming discipline I have. If I can't list the basic steps I need to take, I don't understand what I'm trying to do.

Only after I can fit the whole conceptual model in my head am I able to deal with the exceptions that make code so crufty and weird most of the time -- they let me refine the model to where it works best, most of the time.

That doesn't mean there are still tweaks and rewrites ahead, just that I know what's important and I can code for that, instead of throwing things here and there, hoping they'll work. (Okay, I'm bitter at some existing code some days that isn't so much designed as it is blenderized.)