It's a cheap trick and feeds my own insecurities or superiority complex or whatever other pop psycology you want to throw at it, but it gets results.
That way, when you're coding your brain still has something interesting to chew on… and I find it keeps me from going too far off the over-engineering deep end.
In all seriousness, it's only a problem for me with bigger systems. When I've got smaller tasks, even boring ones, I can blast through them easily, but when I have to do both sides of it I require more self-discipline to get through the last pieces.
I have half a dozen projects on GitHub where I worked hard for a few weeks, decided all the interesting code was written, and then never bothered to finish.
I keep saying that one day I'll go back and finish them, I just don't know when.