I made a bad mistake at work yesterday.
I've been thinking a lot about mistakes recently (like here) but this time instead of thinking how to make them, I started to think why mistakes are made at all. We testers concentrate a lot on finding bugs, which often are caused by mistakes of some sort, and I started to think that it might be pretty important to know why mistakes are done, on top of how mistakes are done and how to find them - hopefully this way also giving me more ways on the how section as well.
So I started listing some reasons out, and as the first one came my favourite one, which is rush. In my testing career I've mainly been working for customers acquiring software, often doing "acceptance" testing and that way often starting testing on "complete" systems. And have seen some really crappy systems. I mean, so crappy that you immediately know that the people giving it know it damn well themselves. And in these cases, one of the obvious root-causes has been that the people responsible for the delivery have just not had enough time to do it (why they have not been given the time is another bigger thing then).
Then came some other reasons, like neglicence, lazyness, and incompetence. These could be categorized as personal/individual reasons, all ones that I have also been guilthy of in some ways. (note to me: think more about system errors)
At this point I remembered that there are smarter people than I am and who likely have a lot more info on why errors are made and opened Google with Why do errors happen, and bumped into some nice stuff. Couple of quick video clips in particular where experienced doctors tell there view on why errors happen and what are the errors they remember.
Point to think on the second video is "What is one error that you've made? What did you learn from it? What can others learn from it?", so I'll now share the one I made yesterday following this questioning template:
What is one error that you've made?
We're in the last days before a big release is going live, and one of my best business testers (business people testing) reported to me about an intermittent error he noticed. This was on a part we had tested a lot, and the error message given was the kind that the system sometimes gives correctly due to certain approved circumstances. This wasn't closely the kind of a circumstance, but I still told the tester to forget about it, and continue with other stuff.
This morning then, one of the vendor's developers came to tell me that they had noticed that in fixing a minor bug in the last package (and the release candidate), they had introduced this new bug which was exactly the same as the one the tester had reported yesterday. I was a bit shocked, and a lot grateful that I was a lucky bastard in that the vendor had spotted and reported this, which I can tell you is not a given in any way.
So my mistake was obvious, I was overconfident on the area, and ignorant on the bug report. (At this point I think I have to assure you that I really am a tester as this is probably the worst thing a tester could do. Minimizing the value of your own work, basically.)
What did you learn from it?
1. Always investigate, always add it to the tracking system for someone else to investigate. If out of nothing else, then for the respect to the person who told you about it.
2. Try to use the mistake for self-improvement -> this blog and more thinking about why do errors happen.
3. Thank the tester on Monday by saying that the problem he reported was a valid and an important one, and that I was disrespectful for not taking it more seriously.
4. I am not Mr Perfect.
What can others learn from it?
Maybe something in the lines of my own lessons? Maybe something totally different?
So another mistake done, another lesson learned - hurray!