As a software developer, I was very proud of my “no bugs” record. My boss would readily allow me to take a day extra (if I needed it) to finish coding, confident that no rework would be needed.
Our code used to be sent to our colleague in the US, where the client was. He would test the application once and, if anything was amiss, he would send back a bug list — often a big list! I never used to pay attention because no bugs were assigned to me.
One day, my boss said, “Nandita, they claim there’s a minor bug from your module. I told them that it’s impossible because it’s your code. I’ve told them to run the test again. Anyway, just take a look and clear the issue.”
I immediately knew what had happened. The previous day, I had thought I should put that additional query in my SQL statement — and somehow, I had forgotten it. Our test database was so small that the bug did not have a chance to show up. Because the tester in the US had a much larger database, he had caught it [not that there is any justification for my mistake].
I was somewhat relieved that it was a relatively minor bug, and that it had been caught internally before being shipped to the client, but that was still no consolation — I remember weeping about it in bed for two nights.
The issue was not the bug per se. I certainly felt ashamed that I had written improper code, but what really upset me was that I had let down my boss. Thanks to me, he must have looked a little foolish and arrogant in the eyes of the US colleague and, after this incident, his trust in the quality of my work would never be the same. Even though he never talked about it again, I felt that he could no longer confidently say, “Impossible; you had better test it again — that’s Nandita’s code”!
After that, I began to scan the bug list once, to check if my name figured anywhere. Needless to say, I have never forgotten the SQL statement where I made that mistake 🙂
[Image source: http://commons.wikimedia.org/wiki/File:Bug_blank.svg%5D