Friday, August 13, 2010

Blogging isn't something come by easily. I tend to forget about my blogs, as this is likely the 3rd or 4th blog I have started, each time with a different style of software. When I set up an account to try a new blog service, I often wonder if I really intend to blog, or if I am just interested in testing out their service. Considering my record so far, I'm guessing that it is the testing I enjoy.

So, it has been a bit over two and a half years since I scribbled my first message here, and yet I keep coming back to look at my post and wonder what I could be doing with this space, or rather, what I should be doing with this space. So... I have made the decision to actively work on putting my thought down more frequently, to share what I have learned in two decades of software testing, and hopefully help a few folks overcome challenges they may face.

Might as well start off with an introduction, in case folks decide to stick around a bit or want to know who I am and how I came to stumble into testing software. As noted in my previous blog, I grew up for the most part in farming areas, but moved to Eastern Washington as a teen, where I eventually discovered the Apple IIe and coding. From there I slogged through some Community College, some Junior College and some honest to god real college, getting a degree in computer stuff, then headed out into the wild to get a coding job, since I was sure that was where I wanted to be. My first job in tech changed my mind.

The job wasn't terrible. In fact, it was actually pretty close to perfect. I was brought into a printer manufacturer to write test code for the newly staffed test lab. And by newly staffed, I mean myself and one other guy, who worked the graveyard shift and never said anything to me other than 'I ate all your cookies... sorry'. So, I jump in, freshly learned in C++, and start writing code. Test code. And as fun as writing the code was, I found that testing the printers, both through automation, and especially through manual testing, I really liked testing stuff. I like it enough that I worked there from 1990 through 1997, moving from automation to manual testing, hardware/component testing to device driver and software test, and more importantly, from 'Programmer' to 'Tester'.

Eventually I was lured away from the Spokane area, back to the western side of the state, where I have had the fortune to work at some fantastic places: Microsoft, Washington Mutual, Nexcura.com, more Microsoft, some AT&T, and finally ended up, as of this writing, attached to 343 industries, which is, well, more Microsoft. There were a few other places and a few more Microsoft along the way, but the important thing to note is that I have had a great time trying new things over and over, and learning the entire time.

Which is where I wanted to get with this first 'new' post: Learning happens and should be embraced for the opportunity it is. A chance to discover new skills and new techniques. An opportunity to improve your skills and build on your foundations. And of course, a chance to try new stuff and see what makes it break.

Next post: I will actually discuss something test related. I promise. I will be back with my latest adventure in Black Box testing, as well as tread a bit into object orientated testing/test casing in an Agile environment.

Tuesday, January 15, 2008

[OT] Don't push too hard...

note: [OT] in this case refers to 'Off Topic" since it is not quite software test related, but in a sense, ties into some of my feelings at the moment. Also note, this is a work in progress that has been updated over a couple of years as I continue to add thoughts.

------------------------------------------------------------------

Late in the summer of 1977, at the age of 9yrs old, I learned a lesson that has stuck with me for the last 30+ years. As with most lessons, it was one learned through an extreme situation, this particular time it happened to involve death.

I grew up in a small farming community a couple hours north of Seattle, Wa. And like most small communities that draw on crops or weather or luck, there was, for many of us, a lack of financial stability, which is a nice way of saying that a whole lot of the folks in the area would be considered poor. As a result of this condition, many families still kept with the old school approach of housing, meaning that larger homes tended to have multiple generations of the family living under one roof.

My friend Matthew was one such case of this, with his grandparents sharing the same house with his parents, his two sisters, a brother in law and his twin nephews, for a total of 10 folks, comprising 4 generations, in a 5 bedroom farmhouse. Now, most of that isn't truly vital to the telling, but it establishes that my roots are pretty simplistic and organic compared to the more sophisticated city dwellers.

Matthew's mom would, for a small fee, watch over me while my own parents worked, however she refused to call herself a babysitter, realizing that it was less trouble to herd cats than keep an eye on two active boys in the prime of childhood. I spent a fair amount of time at Matts house, usually from about 7am till just after 6pm most weekdays, and as such, felt almost a part of the family, to the point that I too addressed his grandparents as Nana and Grandad.

Grandad was a nice old guy, and really, was far too nice for us to find his empty shell the way we did. Coming in from outside, Matt's mom had a rule that in order to eat lunch: We had to at least make an attempt to wash our hands. This normally meant we that we would barrel into the house, right to the bathroom, washed up a bit, then gulped down our food as fast as possible so we could get back outside. It was this near ritual that led us to find Grandad expired, seated a bit less than regally on the 'throne' in bathroom. Or at least MOSTLY seated, as he has sort of slid a bit. Eyes wide open, one showing a crimson red splotch that I still haven't forgotten, and mouth stretch into a tall O shape. He had died, on the crapper, in the most ineloquent manner possible.

We would be told later that his death was likely due to him straining in vain to dislodge some severely stuck poop, and that the strain led to an aneurism bursting in his head, killing him outright. Right then, after hearing that, and remembering how he looked, I decided that I never wanted to be found that way. As such, I found my own mantra to live by, that being 'Don't push too hard... the crap will work out in due time'.

I have to remind myself of this from time to time, particularly when I am learning something new and really struggling to get it. When I feel the frustration level rising, when I can feel the blood pounding in my temples and the headache I have self induced from trying too damn hard to accomplish something, I remember that face, and tell myself to back down a bit. And without fail, I eventually get my task done, my lesson learned and so on.

Now as to how this is even remotely related to Software Testing... I see myself, as well as others, trying too damn hard, pushing to learn, pushing to beat timetables, or pushing to find that deep, well hidden bug. And in that effort to push, we sometimes let the frustrations of not attaining our goals immediately get the best of us. Which leads us to push hard, which narrows our focus, and often, blinds us to possibilies that we would see if we weren't straining so much.

So, in my long winded, well meant eulogy of sorts, I offer this tiny bit of wisdom: 'Don't push too hard.. crap will work out when it is time.'