I have tricked myself into achieving ambitious goals by breaking down the next few days' objectives into small, doable tasks. I will even go as granular as 'make cup of tea and fix typo while kettle boils'. I've found that if I can get into an automatic mode where I'm constantly checking off tasks, repriotising and refining what is still to be done then success creeps up on me. At some point during most days I realise I have made significant progress; at some point during the project it occurs to me that I am done.
http://en.wikipedia.org/wiki/Getting_Things_Done calls these "next actions", things you can just do instead of having to decide (probably at the last moment) where to start on them. You may like more of Allen's ideas if you weren't already familiar.
Thinly slicing a software project is also the only way I can produce a schedule that is remotely plausible, since easy task (half day) + easy task (half day) != easy project (half day).