1. Bad prioritization. Changed the way I did my to-do list so that it always contained more tasks, mixed across all projects, than I could possibly complete in one month. Then I had to prioritize.
2. Liking to code too much. I forced myself to slow down and write very little code - not piling on simple features, not architecting to the moon, but instead following a more disciplined pattern, as if it were doing exercise - just immediately going towards very painful parts and getting them out of the way. Thus, better code, fewer features, less excitement from any one step of the process, tempering the rewarding feel of early-stage groundbreaking work. Flow when programming can be a danger zone, it takes you away from the business goals in short order.