The past few weeks have been interesting, in that I have had to overcome a natural fear and put my fate into someone else's hands. This someone else happens to be my 16 year old son. He has embarked down the road of learning how to drive, and I am the one that is doing most of the drive time chaperoning and experiments/instruction. As I was looking at this, it struck me how like pair testing it is, and how, so often, we as the senior member can get frustrated at times with the efforts of the junior associate we are working with.
As I get into the car, I realize that there is a rather large checklist of things to deal with. Case in point, this morning my son needed to get to an early morning meeting before school. Rather than just go along with driving him, I gave him the opportunity to drive himself, with me in the car. As I had him get started, it brought to mind immediately the quantity of steps that I do automatically every time I get into the car. Adjust the mirrors (actually, I don't; they're already set for me), put the key in the ignition, fasten the seat belt, turn on the lights, check the gas, take off the emergency brake, run the wiper once or twice to clear the dew/moisture off the windshield, and that's all before even pulling on the gear shift to put the car in gear. Automatic steps to me, but somewhat foreign to my son. It amazed me how many things I had to remind him to consider, and even with all that, because it was dark when we left, it wasn't until we arrived at the destination that we both realized that he hadn't taken off the emergency brake (oops!).
The beauty of pair testing, more than just having two eyes on the the same product, is that we very often get complacent in our knowledge and those things that we do automatically. It was humbling to think of all the things that I had learned over time to do the steps necessary to drive a car. Things that I take totally for granted, but that, when put in the hands of a novice, can be quite overwhelming. I also think of this when I consider my challenges and adventures in programming. There's so many moving parts, so many things to consider, so many aspects that tie together and, if I forget one, there will be issues. Well, the same goes for driving a car. As I watched my son inch out into traffic, get onto the freeway, get off on exists, approach stop signs, park along the side of the curb, I was flooded with so many details of what I should be telling him, and truly, those details don't really help very much in the moment. Yes, he has a lot he needs to remember, but throwing more and more things at him won't help him remember more or faster. The skills have to come in time, with practice and with effort, and I have to be there to encourage him along the way.
Testers, we have great opportunities in our work days, via forums, through Twitter, and through programs like Weekend Testing and SummerQAmp, not to mention AST BBST classes and other avenues, to help teach our "children" and our "siblings" how to drive. Being the passenger in this situation is nothing if not educational. We really see how rationally and calmly we can explain situations and avenues/challenges the driver may face (or not so rationally and calmly in some cases). Substitute the word driver with tester or programmer, and we see that the same situation applies in those spheres. We have a lot if information to impart, and our "drivers" have to figure it out. If you feel frustrated or wondering if they are getting it, put yourself in the passenger seat of a first (or second, third, or fourth) time driver and think of how they are processing all of the areas they have to control. Feel a little more compassionate? Great, now bring that back to your testers and programmers, and remember, they have to learn the rules of the road, too.