Perhaps it has something to do with the imposter syndrome[0]. Feeling like you're not a "real" programmer who doesn't "deserve" to have the position you do would (I'd wager) cause that phenomenon of analysis paralysis; it would cause us to want to get it right or we'd be "found out" for the "frauds" we are.
I hate it, and I've found personally using the techniques like Pomodoro[1] has helped immensely with just doing something! along with TDD coupled with exploratory programming.
Analyzing for a fixed duration and then going with your gut is what I've tried. However, I still get that nagging feeling sometimes that I'm not sure about a decision. In these cases, I either ask someone for their opinion or simply defer the decision, hoping I'll think of the right answer in the shower. Of course, I still need to work on discipline. It's very easy to spend a while on a decision because you can't get away from it until you feel you have a right answer.
I hate it, and I've found personally using the techniques like Pomodoro[1] has helped immensely with just doing something! along with TDD coupled with exploratory programming.
How does everyone else deal with it?
[0] http://en.wikipedia.org/wiki/Impostor_syndrome
[1] http://en.wikipedia.org/wiki/Pomodoro_Technique