As a kid I always wanted to be the best at what I did: school, sports, games, you name it. I remember playing cards with friends and if I lost and somebody laughed, I would get very upset and disappointed.
This desire to be the best has helped me over the years by giving me the drive to improve, to learn more. It helped me in school to get great grades, and even to win competitions.
When I started working as a developer it helped me improve myself because sometimes I felt I was competing with my colleagues and I wanted to show everyone that I can be as great a developer as them, if not better.
This desire to be the best has greatly influenced how I work. It made me want to write the best code, report, document or to build the best product. It made me want to do things perfectly.
When I was promoted to a leadership role I wanted to do the same. So I aimed for perfection in everything I did. Leadership roles tend to put you in more complex situations with a lot of unknowns and things you cannot control.
At that point, my desire to be the best, to do things perfectly, started to work against me even more. For a while I still aimed to be the best, to do things perfectly.
I thought that if I pushed myself to learn more about leadership, time management, and delegation, I would be able to do it. All of these help you up until a point though, and then you will be back in the same position where it is simply not enough in order to “survive”.
Looking deeper I observed that this desire affected my ability to fail and be comfortable when failing.
You read about failure and concepts like: fail fast, failures are opportunities for growth, and so on. These are all great, but are hard to understand and accept by people who want to be the best, who want to do things perfectly. I was lucky that throughout my career the environments and contexts in which I was involved have pushed me to either grow and embrace failures or run away. That doesn’t mean it was easy for me, in fact most of the time it was painful and stressful.
There are times when no matter how much you work or improve you cannot do things perfectly. When you realise this, you will need to look deeper, to see why you are in this situation and even experiment with things with which you may not be that comfortable. I realised that I’m not Superman and no matter what I do I will still fail, I will still miss things, make the wrong bets and that is ok.
When I experienced my first failures I felt terrible. I wasn't comfortable failing.
What helped me greatly was embracing my failures as opportunities to learn. Failures have probably helped me grow the most.
It's easy to look back and see how you could have done things differently, that you missed some things, and feel bad or complain. What is harder is to look back and see what you’ve learned, what you can take with you as a lesson.
Some things cannot be learned until you fail, until you experience failure.
Here is my current method/strategy of how to become comfortable with failures:
Think about the worst thing that could happen if you fail and start to be comfortable with that outcome. Think about all the times you failed and how they have helped you grow. Accept that you cannot do everything and surely nothing needs to be perfect.
The next thing I’m planning to experiment with is celebrating the lessons I’ve learned from failures. Rather than be upset or disappointed, why not be happy with the knowledge gained?
Perfection as a goal can be damaging for you as a developer, tester or leader. It can slow you down, it can create stress, frustration, and disappointment. There is no perfect code or perfect leadership out there. Instead, maintain your drive to learn, to become better and be more tolerant with yourself when failing.
For those perfectionists out there, I will tell you a secret: In order to be the best, you need to fail a lot, because that helps you grow like crazy. Fail more and embrace failures for the lessons and growth they bring!