You got to go down a lot of wrong roads to find the right one. Bob Parsons
Is your goal being right or getting to the right solution? People go to lengths to avoid being wrong but tomorrow will it matter whose was right or who came up with the idea?
Being wrong is the path to success with a detour. We seek out when we are wrong, understand why and move on. Our ego demands we right, our feelings hate being wrong but the quickest way to improve is by failing and feedback from others.
Admitting you are wrong is short-term pain for long-term gain.
When you can handle being wrong, you end up being right. An interesting TED talk being wrong by Kathryn Schulz
People spend time to avoid being wrong but it’s quicker to try, be wrong and move on. The time wasted on avoiding being wrong could be used on working on trying new ideas.
Being wrong is painful, you feel stupid, frustrated but this is your reaction to the event, when you reflect later its positive, you learned a lesson and corrected your path.
It’s difficult to admit being wrong because it‘s initially painful to admit being wrong publicly. The goal is to do it right, how you get there isn‘t important tomorrow, so try to keep your perspective long-term. You learn by doing and often learn more by doing it wrong because you stop to understand your mistake so you can avoid it in the future.
We learn less from success because we don’t reflect on what we did right and assume we will do it again
Is it important to be wise? do you want to be right or do you want the right answer? If being right means you personally are wrong, would you take it?
Code reviews are great for learning, an experienced developer checks your code, highlights bad code and suggest improvements. Despite the benefits it feels like the reviewer is critising your code but attacking you as person. This is an emotional reaction to being wrong and being critised, we have to overcome this with logic and understand this feedback is a great way to improve quickly. It leads to a higher quality code base and developers write better code, helping individual’s long-term prospects. It’s beneficial but not easy but it gets easier with practice.
Reactions are emotional, they happen quickly and bypass thinking, the reaction is to defend your code. You respond by attacking, they defend and then they react and attack. The topic of the discussion is lost in the emotional responses, defending and attacking the ego. Time on your ego and being right, short-term gains drive this behaviour.
The long-term logical view is to focus on learning, getting feedback and getting to the right solution. Winning arguments come at the cost of learning , you learn when listening. Winning an argument means you end the discussion with the same view as you entered, talked more than you listened and learnt nothing. There is no winning when arguing.
Your goal as a software engineer is continuous improvement, being wrong, making mistakes and honest feedback are good teachers. We learn more from being wrong because we stop to analyse, when we are right we assume we have done it right once and we will do it right again.
Long lasting change comes from knowledge and the ability to use that knowledge effectively and to write better solutions. Static Code analyzers help highlight code which breaks best practice. This is frustrating initially when lots of your code triggers error but learning the logic behind the rules helps grow your knowledge.
When you copy and paste code you bypass the learning and don‘t acquire knowledge. Its like getting the answers to a test, you pass that test but you don‘t have the knowledge to pass other tests on the same subject.
Understanding allows you to alter solutions and adapt your knowledge to solve to different problems. If you have copied the answer from the internet this brittle solution will break as soon as problem changes. You can’t adapt solutions which you don’t understand.
Embrace being wrong, it’s a step on the path to understanding and developing a deeper knowledge of your area of expertise. Our fear of being wrong is exaggerated, people respect someone for admitting and fixing their mistakes.
Mistakes occur when pushing yourself and doing things you don‘t have experience in. Getting out of your comfort zone, working through mistakes is how to improve at a fast rate. Playing safe and avoiding errors results in not learning and highlights you are playing too safe.
The focus should not be on being right but creating the right solution. If you can avoid fearing being wrong, you will try harder things and push yourself to do more. Admitting mistakes and avoid wasting time arguing or avoiding being wrong allows you to do more.
Building your tolerance for mistakes is the path for faster growth and improvement.