Forgiveness as an Engineer
Tags: softwaredevelopment, softwareengineering, watercooler
Published: 2023-11-07 18:11:57

## What is forgiveness 
According to the dictionary, forgiveness is "To give up resentment against or stop wanting to punish (someone) for an offense or fault; pardon."

This definition is very broad and can thus be applied in multiple contexts. It can be used to remove blame from your friend that offended you by joking or it can be used to stop resenting yourself for making that mistake 5 years back. All of these are uses are to distance yourself from anger or other negative feelings attached to someone or something.

The amount of contexts you can use this skill in is endless. I would like to focus on this article on how forgiveness can help you as an engineer.

## Forgiveness in a team
It might sound like a weird place to apply this, but if you think about it, it really isn't. Anger and other negative emotions lash into interpersonal relationships and makes it harder to work with others. There exists no company that is not made up of different individuals with who your relationships define how you work with them.

As this is the easiest translation, we'll start with discussing the myriad of ways it can help you work together better with your colleagues.

Let's say John and Mary are both part of a company, where John is the main contact person to team J and Mary to team M. Mary was overruled by John during a certain discussion and now she holds quite a grudge. She resents him for it and this creates tension between them. This is quite a predicament, as Mary and John connect 2 teams. As such, communication deteriorates rapidly and the teams become isolated.

Another example is the following. Andrew leads a team that contains Bethany as a direct report. Bethany is new to the team and doesn't really know how things work. With a certain development, she messed up big time. Andrew takes most of the blow and resents Bethany for making the mistake and messing up.

In both cases, negative feelings rapidly degrade the performance of team members or entire teams. In the first case, the communication line that was critical for the company, stalled, as Mary procrastinated working with John to not increase her frustrations. In the second case, innovation by Bethany is reigned in, as making mistakes will mean less chances of promotion by your superior.

In both cases, if each person would forgive the mistake, the problem would slowly fade away in the background until neither even remembered the mistake, or they laughed about it later at a team event.

I am not proposing that you need to forgive everything, but as in all things in life, it's a matter of gravity and balance. The stakes are high, not only for you personally, but for the company and your role as well.

## Forgiveness of yourself
When talking about forgiveness, people tend to focus on the external world and the relationships they have with other people. The most important relationship you have though, is with yourself.

I identify a few cases where the art of forgiving is important. A first case is when you resent yourself for making a mistake, a stupid decision or a weird interaction you had. For all of these, you have the choice between resenting your past self or forgiving him such that you can look at the behaviour objectively.

All engineers have at one point thought about their past work: "Well, why did I write it like this?". Especially when dealing with legacy systems and processes, this thought reoccurs often. In this case, there are 2 ways to deal with it, either you blame your past self for making your job harder, or you objectively look at the problem with forgiveness. Your ignorant self could never have known the full scope of complexities the system currently deals with. As such, can you really blame your past self?

When you think of it, it is surprising in how many cases this is also linked to the Imposter Syndrome. When we make mistakes, we blame ourselves and see ourselves as less adept at the task at hand. Even if we solved our mistake rapidly, we keep a nagging feeling about our past actions. Letting these feelings go can help you with, instead of playing the victim, find the root cause of the mistake and fix it.

## Conclusion
This short article focuses on a few places where not only forgiveness, but in general taking a stoic approach to programming can help you in multiple ways. It can help you fit in a business where interpersonal relationships drive most of the value. Secondly, it can help you mentor people without any linked judgment. Lastly, it might help you be a bit less hard on yourself the next time you make a mistake in your life.

In the end, even though they are important cues, emotions pass. This thought might help you the next time you're fretting about the stupid decisions you made many years back.