As work on the 2D chemical structure editor I've codenamed Firefly enters its finishing iteration, I'm reminded of the many things in life that seem to get exponentially more difficult the closer they get to completion. There should be a name for this effect. The closest thing I've seen to a discussion is Seth Godin's The Dip.
Although every project has its own unique qualities, they all tend to go through the same three stages.
At the beginning of a project, every bit of work you put in results in something new and exciting. Nothing is more motivating (and addictive) than new and exciting stuff. The only constraints you face in this phase are those imposed by the problem itself. None of your previous decisions play a role, nor does a deep understanding of the problem. The project is wide open and anything is possible.
As the project matures, cruft starts to build up - lots of cruft. You realize that some of your approaches were way too general and others were way too specific. You begin to rewrite your review article, redesign your experiment, or refactor your code. Things that had once worked very nicely start to break. You patch them up, only to realize that your patch makes it impossible to move forward on other fronts. You refactor and redesign again ... and again ... and again. Through all of this churning, you're not seeing or creating anything new. Instead, you're retracing old ground. Few things are more de-motivating than retracing old ground. The urge to quit and move onto something new at this point is almost irresistible. As difficult as it can be to endure this phase, it's the only path to deep understanding of your problem.
Finally, you reach a point when it's clear you can move forward again. Now begins the hardest phase of the entire project because it's where you finally have to confront all of the niggly little details you put off during the first two phases. What makes this phase so difficult is not that the problems are intellectually challenging. No, what makes this phase so tough is that the problems that you now must solve are: (a) mind-numbingly boring and tedious; (b) unbelievably numerous; and (c) the only thing that stands between you and finishing - you've already nailed all the fun, juicy problems.
Having been through this cycle a few times forever changes your perspective on starting, finishing and quitting. You might even come to believe that knowing when each of these three actions is appropriate is the essential element of success.