We all know perfection is unattainable in software, yet I find myself inadvertently striving for it in my day to day work. What I don’t understand is that I know perfection is unattainable, yet I keep pursuing it. I make mistakes every single day in my work, yet I fear admitting this fact to myself or heaven forbid my colleagues.
I found myself thinking this today.
I’m not going to commit that code just yet. I don’t want it associated with my name: it’s not good enough.
Why do I think like this? I consider myself a generally competent person, so I should not fear that I am going to look stupid to everyone. Similarly, I’m not a genius, so it doesn’t make any sense to hold myself up to some gold standard.
Failure is okay. Chasing perfection is a sure way to accomplish nothing.
The real irony about being afraid to show my weaknesses is that it prevents me from ever turning them into strengths. If I’m too afraid to admit that I have no idea what someone is talking about, then I am missing out on what could be an educational conversation. Abandoning a startup early because it has no potential is okay, but abandoning a personal software project because the code is turning into a mess is a different story. If I accept that I turned the code into a mess, then I will most likely be able to identify anti-patterns to avoid in the future. I might even happen upon a good idea or two to add to my bag of tricks.