This is an article to teach you a tip on how to ensure you improve your skills over time. It’s actually a very easy trick, but I notice a lot of people fail to use this and when I tell them, they say, “that’s a good idea”.
The problem is that when something goes wrong, people tend to go into “defensive mode” and try to blame someone else for the mistake. That’s basic psychology and I can relate with people when they do that. But, whether you’re at fault or not, make sure that you reflect on the mistake and do whatever you can to prevent it from ever happening again.
This is key to self improvement. When you reflect on mistakes, you can get to the root of the problem. A lot of people blame others first, and when they do that, they fail to consider that they’ve made a mistake. If you can’t acknowledge a mistake you’re making, you can’t improve from it. With an attitude like that, “you’re already perfect”. But, it doesn’t even matter if it’s your mistake or not. You can use this as an opportunity to avoid making a mistake in the future that someone else has already made.
I must admit, I used to blame others first. Sometimes I still do and sometimes it really isn’t my fault. But no matter what, I always reflect on the mistake that was made and try to prevent it from ever occurring again. This removes blame from the picture and turns it into a situation where, “a problem was found, and I’m going to fix it once and for all”.
This shift in attitude will take you out of “defensive mode” and make you realize these mistakes aren’t as big a deal as they were before. Well, really, how big of a deal it is depends on how big of a mistake it is. But, with this attitude of self reflection and self improvement, it will lessen any damage done because you will be promising yourself and others that the same mistake will never happen again.
At this point you may be wondering how I ensure that the problem will never happen again. There are many ways to go about this. Sometimes the solution is as simple as changing code so that it will fail to compile if the mistake is reintroduced. Sometimes I’ll throw an error that wasn’t thrown before. And sometimes I’ll write a new automated test to catch the mistake if it ever gets reintroduced.
One thing I avoid as “the solution” is informing QA of the mistake and telling them to look for it in the future. Yes, you should do that, but I don’t think that is good enough. That is an example of avoiding responsibility and throwing the problem over the fence. Besides, the human element makes the QA feedback loop too slow for my needs. I would like to know that the mistake never occurs again and I would like to know multiple times a day. A computer is better at telling me that than a human.
This will improve your skills as a developer and it will improve everything you touch. If you’re the only one at the company who practices this simple rule for self improvement, you’ll be improving everything around you that you touch and be considered a key contributor to the quality of everything you work on. If you teach your coworkers about this technique, your whole team will be more productive as a result.