Our word perfection derives from the Latin per = through, and facere = do/make. So by etymology, perfection is something that you have worked through in every relevant detail, I might add. As such, perfectionism is a virtue, notably in the enterprise of programming.
By sliding meaning, perfection has come to represent something that, sort of, possesses every conceivable positive attribute, which is not so much a bad thing, as absolutely impossible, not even very interesting.
Perfectionism can stand for excessive ambition, nothing to excess and all that. But at the end of the day we may come back to the 'original' sense of something that has been worked through. I like that sense.
J