So tonight/this morning I finally accomplished a major task that has needed to be done since this summer, and had an absolute deadline of tomorrow evening. This, my friends, is procrastination at it's finest. Not that I'm proud of that, but I think I know why it happens.
With a deadline far off, I overthink and overdesign things, and then get frustrated. When I get frustrated, I lose focus and look for the first distraction. Being up against a deadline somehow eliminates overdesigning. I can't design anymore, I just do. My code flows out of my mind into the computer, I find bugs quickly, and solve problems on a dime. Suddenly I'm a model of efficiency.
Now if I could replicate that focus when I'm not up against a deadline, it would be great. Tricky, yes, but now that I have this realization and know what to look for, maybe I can find a way to focus well before deadlines.