Something I will add which relates to the examples in the post (gym, business, relationships) is that big things happen with lots of small steps over time. You can't do a years worth of workouts on Jan 1 and be fit for the year. These things take daily effort and cycles of work and recovery to happen.<p>That desire for perfection can also be a desire to be done. To have it finished and get closure. It's hard to accept that some things are going to take a long time or a lifetime.
May I say with all humility and honesty, I used to be what I call a "Christian perfectionist". Without going into a lengthy detail, I came to learn that trying to attain some kind of perfection was just a reason to be competitive and a way to judge others because of my feelings of not being good enough from a faith perspective. I now understand that trying to improve is the only compassionate way, both to myself and others. I explain this to other Christians when the opportunity arises, but it is a hard sell to them because we've been told for a long time how to believe.
I'm not entirely disagreeing, but this is a disgusting mindset when applied to mathematics, and programming is applied mathematics. I've seen it so often. The incompetent spend so much of their time dredging up excuses for mediocrity, rather than improving.