Wednesday, January 25, 2012

Weird Laws of Physics: A Meandering Walk Through Twenty Years of Software Testing

After three months of fruitless job searches, friends coming to bat, and me leaving empty handed each time, I was ready for anything. I mean, come on, how hard could it be, I test, for crying out loud! Give me a shot, I can test anything. Several friends heard my plea and gave me an opportunity to prove my point. Truth be told, part of me wished I could take it back. It's rare for me to say that there was a time when I felt I was out of my league, but this really did turn out to be one of those times.


Having worked with routers and other hardware devices, I figured hardware was hardware, and skills in one area would transition into other businesses. In some ways, this was true, but in other aspects, I was very much mistaken. When I got to Synaptics, I discovered that very little of my work was dealing with software. Granted, I did still work with quite a few software applications and utilities, and those were areas I felt confident working with. When my first project was to determine the tensile strength and bonding for various brands of adhesive, I felt like I was definitely pushing the limits of what I could realistically do.

That's not to say that I didn't have a lot of fun doing some of this testing. It was definitely a unique experience. I literally never knew what I'd be looking at next. For those not familiar with what Synaptics does, if you have a touch pad on your computer, that pad that acts as a mouse, is likely to be either a Synaptics product or a derivative of a Synaptics product. The little eraser in the middle of the keyboard of some systems is also a Synaptics product (among other companies that make them, too). The jog wheels on iPods? Touch screens on smart phones? Fingerprint sensors on computers? Even keypads on cell phones. If it was powered by human touch and the electrical charge of the human body to make it work, Synaptics likely has something to do with it. That was what I was ultimately testing, the capacitance capabilities of a variety of products and the components that helped make it effective, and also peripherally made it look good. Testing software drivers? Not so challenging. Testing the tolerances of the human body model as relates to delivering current to devices for smooth operation? That was a bit more of a challenge.


I found myself looking at all sorts of machines. Some would simulate a human finger and run an electrical current that could be adjusted. Some would simulate touch for continuous periods, like 24 hours plus. I'd use ovens and freezers, I'd use vices and weight fulcrums. I'd use swinging pendulums. I'd go into a hardware lab and grind out brass bezels on a computer controlled lathe with the help of others who knew how to operate the shop. All in all, there were some cool things to play with. One of my favorite (and most unnerving), was the ESD gun. ESD stands for Electro Static Discharge, and voltages ranging from 100 volts up to 50,000 volts! Needless to say, there would be some "shocking results" from time to time.

The software components I felt pretty good about testing. Formulations of polymers and how they interacted with physical contact, determining the pliability of adhesives after having been exposed to extreme temperatures, and plotting and quantifying those results, were a lot more difficult, and in a lot of ways, I felt very far out of my league. I made a crucial mistake at this time, and that was that I felt embarrassed about admitting how little about Physics and other hard sciences I knew. I was surrounded by PhD's and designers with extraordinary levels of talent, and I felt like I was in the wrong place a lot of the time. This had a debilitating effect on my ability to do certain things, and in many ways, I just tried to keep my head above water as best I could, and muddle along as quietly as possible... fake it 'til you make it. I believed if I just stuck it out, I'd be able to figure all of this stuff out.

Unfortunately, it became clear to the director of the group I was working with after awhile that, for all intents and purposes, I was not up to the task in the manner that he felt I should be. I was called into his office at one point, and as I sat down to talk with him, one of the comments he made was "I was looking through your resume... you're not a hardware engineer. You've tested software applications and router interfaces... how did you get hired here?" Gang, let's just say that, when you have a conversation like that, you know things aren't going to go well.

Again, I had been hired on as an Application Engineer, and I had been hired on by another manager, but a subsequent re-organization took me out of their group and into this director's organization. Remember how I said that different people had different ideas as to what being an Application Engineer meant? Well, this director had a clear idea of what it meant to be an Application Engineer, and frankly, I didn't live up to it. Unfortunately, at the same time, there was also a hiring freeze and a no movement clause in the company (we were still deep into the tech downturn of 2001-2003 and the pressures of looking to shed un-necessary headcount were strong). Once again, I found myself being "un-necessary headcount" and I was told to "get my affairs in order". Unlike the last job, when I was told that day and terminated immediately, he said I had 60 days to wrap up what I was doing, but at the end of that sixty days, my employment with Synaptics would end.

As I contemplated starting the job hunt again, I looked at the job listings, and whereas in 2002 it seemed like the prospects were bleak, in 2003 they looked even worse. the laundry list of skills expected of any grade tester were heavy on the development side, almost no jobs looked to be open that related to what I had experience in, and I just felt like the wind had been completely let out of my sails. I had some chats with my Dad about this, and he brought up an oft discussed and usually dismissed topic on my end... if the job market is so bleak right now, why not go back to school? He reminded me that, since I still had a large quantity of Cisco shares in the bank, that I had way more resources to fall back on than many of my peers at the time did. Granted, they were worth a fraction of what they were worth just a couple of years previous, but I still had enough to last me several years our of work if it came down to it, so why not consider going back to school? Seeing how few call backs I was getting, and also seeing how many ajobs "required" a bachelors degree at minimum, and were looking for masters degrees as a preference (for testing gigs, yes!), I finally bit the bullet and decided to work with University of Phoenix to see if I could complete my degree through them. Based on the previous work I had done at three different community colleges as well as my UNIX Programming Certificate from UCSC, I could bring 54 units to the table. I'd need 66 more to graduate, and I figured at the best estimate, I could complete that in a little over 18 months. Thus I decided to enroll and finally finish this process I'd never completed after all these years, just so I'd at least have it (a degree, that is).


After starting taking classes (entirely online, in the early days of UoP offering their online classes and their format, and all of the issues and interesting challenges that it entailed) I was prepared to just focus on school and not even worry about working... but the thought of burning through my savings for two years without any way to moderate it just made me feel uneasy. With that in mind, I still kept looking to see if there were possibilities on the various job boards, as well as this relatively new thing called Craigslist. As I was settling into my classes and moving through them, I came across an interesting posting on Craigslist. Most of the jobs were way overblown and just felt like they were taunting me, but this one stood out:

Looking for experience software tester with experience working alone and with small teams.
Experience with documentation and testing standards of large organizations preferred.
Black box testing focus.


... Excellent singing voice a major plus!!!


 Ummmmm..... what?!! Needless to say, this got my attention. After seeing this message, I fired off a response that said:

 "Well, I've tested for the last ten years with big companies and smaller ones. I've worked with networking equipment, virtual machines, and capacitance touch devices. I've run Sniffer's, written shell scripts and Tcl code, I've frozen plastic and adhesive, zapped electronics at high voltages, reported bugs in the thousands... and I sang professionally for ten years, and have the CD's to prove it. Who are you, and what do you do, because if a singing QA dude is what you need... I'M YOUR MAN!!!"

Admit, it, you're curious as to where this one goes... and I don't blame you one bit, as it would be a very interesting and formative two years of my life... but you're just going to have to wait :).

So did I learn some valuable lessons from this interesting, and somewhat unnerving, time in my life? You bet!

- I used to believe it was possible to test anything. If you knew the basics of testing, you could apply them anywhere. I will modify that statement by saying "if you have solid testing skills, an ability and the opportunity to learn and adapt, and have a working knowledge or a reasonable way to acquire that knowledge for the domain you will be testing in, then yes, you can test anything. The challenge is the domain knowledge. Some is easier to get compared to others. getting a master's degree in physics would have helped me immensely in what I was doing, but barring that, a more open communication about what I did and didn't know would have made a big difference

- Everyone is ignorant about something, no one knows it all, and the more specialized a field is, the less likely anyone is going to know everything. I was embarrassed to admit how little I knew about physics and how difficult I found it to accomplish a number of things that needed to be done due to a complete lack of experience. when you find yourself in this situation, it is much wiser to come right out immediately and admit your ignorance. This may seem counter-intuitive, but if you re not going to be the right fit for certain tasks, get that out of the way immediately and let people decide what the best course of action might be. Yeah, it might be that you are let go because you don't have the requisite skill... or you might be paired with a mentor who can help you develop the skills you need.

- Even if you are not a physics whiz kid, there is still a lot of testing acumen that you can bring to the table just by understanding your surroundings and your natural interactions with objects and items. Even if you can't put into quantitative terms what you are experiencing, gut feelings and personal understanding still matters, and can inform your testing as well as being able to mathematically plot complex equations.

- Though I had some challenges, I still also had some big wins in discoveries I made, several of them related to polymer sheets and faux-metallic coatings that we were using with engineering samples for touch pads. It's amazing what you can experience and see with a 50,000 volt ESD gun :). Some of those things can help you tell a group that the formulation they are using conducts too much electricity and blows up components much more easily than they should. when I showed these findings to one of the product managers and explained what I as seeing, and what my gut reaction was to it, the product manager asked for a reformulation to be made for that particular Mylar compound. that change being caught when it was saved several hundred thousands of dollars worth of potentially dangerous inventory of being mass produced and sent out. That program manager said I'd earned the equivalent of three times my salary in that day :).

So what will tomorrow bring? I'll give you a hint... it ain't all fun and games!
Post a Comment