by Ari Lox
You can't go wrong trying to be perfect, can you?
The pursuit of perfection is fine in the abstract, but let me describe one significant implementation problem that should not be overlooked.
Recall the Pareto rule (80% of the value of anything is provided by 20% of the constituent items). Let's consider a system with 100 items outstanding. Then we have 80 items peripheral and 20 items crucial to the core functionality.
Perfection implies that all items must be completed. You have probably seen as often as I have how this results in a typical working assumption that all items are equal.
Too often the human tendency is to work on the easiest problems first. In those cases, the 20 crucial and (usually) difficult issues are approached with many degrees of freedom removed (by the solution of the 80 easy and peripheral items). The crucial items are left with cramped, constrained solution paths.
I have seen convoluted solutions that undoubtedly have this etiology. Thus we are left with feeble (non-robust) solutions to the more crucial items.
My working procedure to avoid this limitation of perfection is to enforce the maxim--no solution before its time.
Related: See the short story "Happy Path" for an unforeseen consequence.