The programmer's paradox is a situation we all find ourselves in at one point or another. Every project has a moment where the coder has to decide if it's more important to just finish a project or spend more time refining and perfecting it. The paradoxical part is that, in our efforts to refine or add functionality, we inevitably cause new problems to arise. Too often programmers are trapped by the seductive illusion of "perfect code", and the belief that a clearly defined finish line awaits us. For example, re-engineering a block of already functional code to execute faster often leads to the realization that other similar blocks of code could benefit from the same treatment.