BugFixing in a Better Light

Finally got my first job in a software company!!

With such big hopes I joined my current employer. When I started working a year back, I thought I would get to write something that will change the world, I hoped would daily write something new. I hoped to innovate the technology world by creating innovative code. But reality strikes and here I am grumpily pressing F8 on my keyboard everytime my manager asks me to resolve an issue.

I must say, lately if I had one thing that I totally disdain doing is, finding bugs. Sadly after working for a year, I’ve understood that one integral part of programming is bugfixing. Why? My theory is…programmers create more bugs than they actually fix. :D In fact, my manager often sighs away from a pretty large team in the company and quotes “Wonder how many bugs these guys produce”

Whilst how badly I want to pluck out the F key’s and start writing my own code from scratch, there is a silver lining to making Morse code using my F8 keys that I’m not seeing. So let me recollect the good parts of debugging.

Improves Analysis and Problem solving power.

When I am trying to fix a problem, I often have to think about a lot of things: Why is it working this way? What broke the functionality? How to make it back to normal? Further it requires a lot of thought if a bug is something that is intertwined with the systems functionality. Everytime I fix a complicated bug, I feel like I’ve 1 uped on my analysis skills. I tend to observe patterns, and code differently than before. In addition, I’m able to better connect the dots between the problem and the code and find a solution.

Solving problem is fun

It’s really important for me as a developer to embrace problems. I feel that I really need to wholeheartedly and with a positive attitude look at problems- understand the root cause and not just find the solution, but find joy in cracking a problem, take problems like games and spend time understanding it. Most of the time I don’t think this way, rather I cringe when I’m given with a problem in a system, because I feel like there are very less avenues to learn new things here, and I’m looking at the wrong side of things. Personally there is nothing better than to be able to complete a problem by myself. The euphoria that cover’s my body when I accomplish a hard task, is something I throughly enjoy.

Understand how product works

One of the best ways to understand a product I’m working on is by debugging. Yet if given a choice between writing my own code and debugging, the later option would be that last thing I would choose. Frankly, I don’t like to debug a program that has been written by someone. However, when there are actual bugs in a program, that is always there , I debug with all my heart’s intent. While debugging I see which part of the data flows, if I don’t understand a code I haven’t seen I try to see which frameworks the code i built upon, I also try to relate technical stuff with functional objective of the product. This greatly makes me educated about the software: both technically and functionally.

Get used to it, bugs are everlasting

If I’m bitter and acerbic that I need to fix bugs then I think I think I am on a wrong path. Looking at things are I will always need to fix bugs regardless of where I go. There are no perfect programs and people make errors a lot. So it’s better to embrace it rather than to reject it. A negative attitude towards bugs will take me no where professionally, and I will only grow more frustrated.

Mental barrier that I need to exceed

Sometimes I come across a bug in a program so complicated that it takes me quite sometime to crack it. The journey of solving this problem often takes me to deep waters in my mind, and test’s my mental durability. It will make me step out of my comfort zone and move past my limiting belief that I can’t do this. It requires me to go through not just the task of figuring the bug but also to fight an internal turmoil: that I won’t be able to solve this.

In conclusion, never hide from the bugs in your program: know they are there and take every opportunity to crush them.