I think I've been running into the over-engineering problem again. Today, I spent my allotted hour of coding time just changing the internal representation of my data just to support a feature that I may not even implement in the future. (It's on the wish list, but it's low on the wish list.) Sure, changing the implemntation at this stage of the game would be less painful than doing it later, but part of me wonders if I would have been done by now if I had just let it rip when coding. At least the basic feature list.
Of course, I don't want to slide into the other side of things: where I think I'm a frigging genius and bang out hundreds of lines of code without compiling in between. Yes, I used to do this. And suprisingly sometimes it worked. Of course, more often it didn't. One example sticks out in my head: a Java breakout applet that I did with a couple of my friends. You'd have thought one of them would have said at some point, "Hey, why don't we check to see if it compiles?"
Oh, but for the record, I am a frigging genius.