A couple months ago my dad said something interesting to me. He said, "Adim you know, football is a game of forgiveness". He goes on to explain that in football a team works together to gain the ball, maneuver it through various obstacles and challenges and then passes it on to a striker to create a goal. At any point towards creating this goal, the ball could be shot out of bounds, or a player can lose the ball to the other team and the team quickly regroups to attempt to get the ball back and try it all over again. To do this the team has to overlook all the mistakes their teammates make in order not to break the team morale, they have to quickly forgive and forget and move forward in the game. I have never looked at football this way. I immediately had flashbacks to when I played soccer in secondary school. I remember when my team would hustle to get the ball, pass it meticulously and with the precision that will make any premiership team smile at us, only for the striker to take some careless shot or do some stupid dribble and lose the ball. I remember the pang of anger in my heart but I also remember how quickly we hissed and got back to chasing the ball again.
The story from my dad came to mind when I was talking to my friend Ben last week. His development team just finished creating a critical new version of their Dating website and app and he was congratulating them in a speech and in it, he said this:
"One thing I don't think people recognize is that engineers aren't really allowed to get down on themselves. When people get down on themselves, their work slows. They second-guess themselves, they don't work confidently, and they get less and less production. That means that when a website is at its worst, engineers need to be at their best.” ~Ben Roux
I resonated with this a lot because some days I get stuck on some code or running into errors deploying some code that I forgot to deploy first. I get so angry at myself for making a mistake I could have prevented or should know the answer but for some reason, it is still not working. I find myself spending time beating myself up and repeating the same steps over and over again like I am a madman, rather than stopping to think critically. When I catch myself in this loop, I quickly eject and forgive myself first, put myself in a good mood and then think through the problem again... but carefully. I find this simple step of changing my attitude to a forward-looking and positive one is the fastest way to think out of a problem.
Writing this I feel like I am writing about some pseudoscience, hand-wavy shit out of a self-help book, but this is not unique to Software Development. Any cerebral field, where problem-solving and strategy are critical to success. being a doctor, playing for a sports team, being an artist, an engineering and so on. To move forward when you make mistakes, you have to forgive yourself and your teammates, forget what happened and chart a path to move forward.
Subscribe to The Art of Coding
Get the latest posts delivered right to your inbox