Wednesday, November 10, 2010

Context is King

I'm afraid I was a mite sharp with the new-ish QA person today because he--from my perspective--was just not getting the fact that records added to a certain database table are not created equal. Some are added mainly for tracking & possible troubleshooting; others do have an impact on the business logic that uses the data.

When I asked why he wasn't paying attention to the True/False field that flagged the record as either in-play or padding the roster, he seemed to backpedal a little bit. "Here," I insisted impatiently, popping open a fresh window in the database interface and punched in a quick query. "You need to pay attention to whether this field's value is True or False."

As it turns out, he merely couldn't see those columns on his screen. Context: Some folks in our office have a desktop with two monitors. Others have a laptop with a second monitor. Not only is he one of the latter, he also was viewing the database interface on the much smaller laptop screen. The upshot was that it was effectively off the radar for him, and he apparently missed the horizontal scrollbar.

Theoretically, we could have squabbled over whether the feature he was testing is, in fact, "broken" by lobbing notes at each other in the issue-tracking software. But he happened to stop by my desk on the way out to tell me that my fixes hadn't fixed anything, and it was only then that we sorted out the mistake. (At least I hope it's a mistake, 'cuz I'm sick of looking at that code.) Alternatively, if I had gone over to his desk to tell him that he was obviously smoking crack, we would likewise have saved ourselves the time--and at least some stress.

Fortunately, it's not every day that one of us has to be standing over the other's shoulder to be on the same page. Hopefully, it'll become even less frequent as our software and way of doing things warps his mind into the proper extra dimensions. But for the life of me, I just cannot grok the value-add of off-site (mostly meaning offshore) testing of software features. Much less whole applications. Now, I can possibly understand outsourcing large batches of automated testing. But anything that involves a more than superficial understanding of the once-and-future product?
Granted, I don't work in a large shop, but the necessarily longer feedback loop of outsourced testing strikes me as such a liability as product cycles tighten.

Certainly, enough companies still consider it a viable option. After all, to the bean-counters, there are no account entries for time zone shifts, language barriers, reduced job satisfaction, unpaid overtime, employee turnover and the like. And conventional business wisdom has a simple fix for such frictions as ultimately find their way to the bottom line: Find another offshore firm with an even lower bid.

I hope that most owners and managers are smarter than conventional wisdom, anyway. Because there's only one thing stupider, and that is to not have any testers at all.