When an artist sketches a masterpiece, it doesn’t come out ready in the very first try. Instead, she commits a version to paper and refines it until it turns into the version.
When developer implements a solution, the first version merely works. He then rewrites it to make it more readable, useable and efficient. After several rounds of rewriting, he publishes the final version.
Perfectionism plays a double role – that of the hero and the villain. The hero pushes your work towards excellence with each iteration. The villain prevents you from getting to the intermediate stages that are imperfect.
The path to excellence isn’t linear, but rather cyclical. The good kind of perfection speeds up these cycles while the problematic kind slows them down.