Monday, March 4, 2013

US Grant on Software Testing

The question of "What makes a good tester?" is one that I have been considering for some time.  The thing  is that most folks, even those involved in testing, look at a broad mix of stuff that seems partly personality traits and partly technical stuff.

The thing is, you can have technical skills till the cows come home, as it were, except for the minor issue that without the personality to make use if them, no amount of skills will make you more than an "almost adequate" tester.

Are technical skills needed?  Absolutely.  Which ones will vary by the types of projects you are working on.  After all, some things will be useful in one circumstance and in others may be of less value.  Change the context and the value of the skills may well shift, no?

If that is the case, what set of non-technical skills are of value?

Excellent question - at least I rather think so because it is one I have been considering.

In considering the answer, I thought about my last blog post.  I suspect, well, rather believe, that this is part of the answer.  The thing is, that Hiram, or rather Ulysses, had traits that, I think, testers would benefit from.  A fair number of people I know, astoundingly good testers whom I hope to become close to in abilities, have some, well, most of these in some measure.

First I want to consider the rumors and, stuff, around Grant.

I suspect you heard what a hard drinking, cigar chewing (when not smoking) man he was.  Fact is, he did drink, but not after he came to prominence and wide attention in 1862.  The stories about him drinking in camp and on campaign.  The fact is, the stories of him drinking to excess were tracked back to a couple of officers, one in particular, who were jealous of his success. 

Defining Yourself

Earlier in life he drank.  When he was stationed in California, he was lonely, far from his wife and family and on the extreme end of the continent in an environment that was potentially dangerous.  Officers could have their family with them if they paid for their travel.  California was recently Mexican territory and was at times, dangerous.  His family stayed behind at her father's home.  Like many young officers, he began drinking.  When he resigned his commission and returned to civilian life, many officers wrote him off.  Frankly, they underestimated him.

That is one thing about testers I find.  They tend to be underestimated by people who consider themselves better for some reason.  Some struggle to find their way.  Sometimes, alas, far too often, testers actually believe the rubbish that is sometimes said about them.  Instead of being what they are, and defining themselves, they allow others to define them.  Define yourself by what you do and the quality of what you do.

Those who would speak poorly, if not out-and-out ill of you are likely those who do not know what it is that you do or why.  In Grant's memoirs, he wrote "the most confident critics are generally those who know the least about the matter criticized."

Learn What is Expected, then Think and Act for Yourself

Grant ran against more than one convention.  He had this nasty habit of getting information then doing what he saw fit, not what other people expected him to do.

Consider simply, how else could a supply clerk (after all, that is what the Quartermaster Corps of which Grant was an officer in the Mexican War) gain recognition in combat not once, not twice, but three times (that I am aware of.)  Yes, there were plenty of examples in later wars, but in the US Army, in the 1840s, one simply did not do that.  He stepped out of the mold and saw something that needed doing, then did it.

The thing is, if we stick to what is "expected" of us we run two risks - well, several actually but I want to look at only two right now.  

First, there is the question of predictability.  If a military officer becomes predictable in thought and action, they may be a help to that officer's colleagues.  Of course, it is certainly a help to that same officer's opponents.

For testers, what is the correlation?  How about this?  The simple version.  We become predictableOur thinking becomes rigid.  The way we do things has little or no variation.  Instead of true thinking, our test effort becomes little more than a template we follow.  This sets up the minefield problem.  When all the tests become the same, they, like the repeatable tests around minefields, only find a limited number of potential problems.  We test a single path and no more.

Related to predictability, is the question of common practice.  Now, I try and avoid "Best Practice" with something like this for a variety of reasons.  In this case, Grant demonstrated that the recognized "Best Practices" were actually, pretty lousy.

 The conventional wisdom told military thinkers that after a heavy engagement (ummm, battle) a secure location would be needed to resupply the army, rest troops and bring in reinforcements.  If an army lost the battle, they tended to withdraw, sometimes a fairly long distance.  In the early part of the Civil War, that is, until Grant was promoted to Lieutenant General and took over command of the Army, Union armies tended to pull back some distance - like 100 miles - to do just that.

The problem was, that to move back to where the last battle was, they'd have to start over.  General Lee's Army of Northern Virginia did not have these problems, at least not after defeats.  Simply put, they did not lose very often.  Of course, after victories they had a similar problem.  They needed supplies, they had wounded to be cared for and needed some amount of rest.

Grant refused to follow this practice unless absolutely necessary.

Retreating Forward

Instead of withdrawing many miles, he might withdraw a mile or two to where the components of the army could reform.  Other times, he did not retreat at all.  Even when bested in the field, Grant looked at what he had done, what his commanders had done, and what situations led to the defeat.

In short, he learned from his errors and from the errors of others.  He learned to recover and think quickly and clearly.

Grant had made many mistakes before - he was not a good farmer, nor a good farrier nor even clerk in his father's livery.  But he learned.  Through failure and heartbreak he learned.  He learned to persevere and to be humble.

He learned that a person who rose quickly could also fall quickly, and in the falling it may be a long time, if ever, that the same person might wise back up.  He learned that if one did not try, then that "long time" would become "never."

I can't prove it, but I strongly suspect this this was the root of Grant's "retreating forward" approach.  If he withdrew 10 miles to resupply and regroup, that would be another 10 miles he'd need to advance next time.  And next time, how many lives would be lost to retake the territory they held?

The result?  He stood where he was as often as he could.  His supplies were moved to his position and the army reformed and moved forward.  He did not follow conventional wisdom.  He ignored the best practices that had resulted in years of brutal war.  The result of that?

Lee's Army of Northern Virginia could not rest or resupply either.  Partly because they simply had less supplies to draw on.  In past campaigns, Lee could actually make use of abandoned equipment left behind by retreating Union forces.  This no longer happened.  Additionally, as the war progressed, Lee could get fewer and fewer reinforcements.  The Confederacy simply had too few men to support a protracted war.

How does this relate to testers?  Much should be obvious - Learn from mistakes.  Learn to search out what you may have done wrong.  Learn to search out what presumptions were made, what bias you had that influenced your thinking and then learn to recognize such things in the future.  Finally, do not abandon work you have done if it will need to be repeated and if there is some value in what has been done thus far.

Simplicity

Grant was plain and humble.  He had this knack of ignoring showy, flash recognition.  He was, however, impressed by people who knew what they were about, knew how to deal with the task at hand and supported them.  He did not care about who might have some "right" to a job or task because of seniority or special training or whatever.  If someone could do the job, he put them into it.

Then, when they did the action, when the thing that wanted doing was done - if it succeeded, he made a point of making sure they got the credit in its entirety.  If it failed, he shouldered the responsibility completely. 

Yeah, I know, both sound like leadership/manager-ish things.  But how many times are testers approached on something that may not be strictly "their job" but they have the skills to do it?  This is a chance to shine and possibly gain some recognition personally and build the reputation of the craft - as long as you do the job well.

Correspondingly, how many times are more experienced or senior testers called on to set up tests or environments and have others actually carry them forward?  Do we give credit to the people who did the work?  Do we make a point of supporting people in a way that they learn from both successes and mistakes?  Do we shoulder the burden of shielding them from criticism of those who may try and place blame for those mistakes?

Focus

An interesting thing about Grant was his troops knew this about him.  More than once he drove his troops to greater accomplishments than they believed they could do themselves.  When all seemed lost, by the previous measures they had known - and what all their previous generals had used, Grant rejected the "expert" advice, and the corresponding dilly-dally and running about hither and thither and continued on even though there seemed to be nothing to gain.  He refused to admit there was "nothing else" to be done.  Simply put, there is always one more thing to try.

Grant knew what his objective was, and what some of the obstacles in the way were.  He believed he could counter the known obstacles in turn, and trust that the unknown obstacles would be revealed and likewise dealt with in turn.

When we, as testers, are working on something, how closely do we stick to the task we are about?  How often do we remember what the main purpose of our work is?  Do we know what our main purpose is?

Grant knew what his main purpose was.  Maybe that is where we need to start.  What is our objective?  Why are we doing this?


Addendum

Phil's Comment and some emails I received make it clear that a "summary" might be in order.  Here it is...

Lessons:
1. Define yourself by what you are, what you do, how you do it, then be true to yourself.
2. Learn the Rules, Best Practices, whatever, then think and use what is appropriate for your situation, recognizing it may not be in the list of Rules.
3. Don't be predictable, except in being unpredictable - think and act.  Don't follow the script someone else handed you.
4.  Know when there may be value, or not, in repeating actions.  In some circumstances it may make sense to back up and do something again.  Other times, it may not. 
5. Help others succeed,then make sure that the success is theirs and not yours.
6. Learn from mistakes an help others learn as well.
7.  Know what the real point of what you are doing is, then do it. 

Oh. One more thing. 

Grant actually preferred to smoke a pipe.  However, when a newspaper story mentioned he liked tobacco, admirers sent him cases of cigars.  Rather than let them go to waste, he switched to cigars.

2 comments:

  1. Interesting story - and character - but I'm a bit confused, maybe I'm just not that good at reading between the lines. You started off talking about tester skills and that having techy skills was not enough and you end up talking about focus and knowing what your objective is. Inbetween there is some cigar chewing and whisky drinking, giving credit to people and learning from mistakes without retreating 10 miles
    Is it a skill to learn from mistakes or do you get skillful by learning from your mistakes ?
    What lessons should I be taking away from this post - apart from stay away from cigars and whisky ?

    ReplyDelete
    Replies
    1. Did I suggest staying away from cigars & whisky? Cigars? well, maybe. Whisky? Never in life!

      Let me see if I can pull together ideas since I clearly failed to do so adequately. I have therefore added a list of "Lessons" in the Addendum.

      Delete