If you want to practice testing skill, play chess

I’ve got an online account at www.chess.com, a chess website where I can play other people from around the world. A few days after joining, I felt like a better player, but I’ve noticed that the feelings I have when playing are a lot like the feelings I have during a software project.

More to the point, as I improve my game, I feel like I am improving my ability to handle my *moods* on a software project!

Yeah, I know… you know me as a guy who could find a testing analogy in just about anything — psychology, politics, volleyball — but this analogy feels different to me than others that have struck me in the past.

Here are three examples of how chess is allowing me to practice, hone, temper, and experience my “software project feelings” more fully.

Feeling #1: I’m more patient for the battle to begin.

It takes like 16 moves before the action starts getting good. When I first started palying, I wanted to get right to the battle! I wanted to get my opponent in check or checkmate in three moves or less.

(Analog: I want to find that great stop-ship, sev 0 bug right now!)

After a few weeks of playing, I’m learning (and experiencing) that good chess players understand that it takes time to develop battles. As they advance pieces into the center of the board, they set up “lines of force” where each piece is guarded by one or more others.

I’ve made several mistakes of pushing my powerful pieces too quickly without establishing lines of force and learned that although a bold move, it is risky because you can easily miss a crucial threat. The minute you miss something, your piece is gone.

Feeling #2: The next move is not always the obvious one.

He left his queen an L-shaped zone away from my knight and it’s unguarded. It’s ripe for the taking for *no* cost.

Not so. Every move has a cost. The trick is, some costs don’t reveal themselves until later. Two moves from now, you may find yourself checkmated.

(Analog: In testing, I call this “Premature Celebration.” You can file that “Run-time ‘6’: Overflow,” with the steps to repro, getting that satisfaction of a good find, but is that really the fault or just a symptom of the fault?)

Feeling #3: There is no checklist of moves to win games.

I thought chess masters had it down to a science. From opening move to checkmate, I’m sure they had every game planned. They’ve seen it all before, and if I am to be a master means I better learn what it takes to make a master “chess plan.”

Not true. Yes, a lot of the procedures of chess seem repetitive. Every piece on the board is only capable of the same types of movement in every game. You’d think I’d be able to come up with a checklist of moves that would guarantee a win every time.

The problem? My opponents adapt to my plan in ways I can not always see. Therefore, *I* have to adapt to what I see them do.

(Analog: We all have less time than we’d like, less budget than we need, less people than we can get along with.)

Note: www.chess.com has an “Analysis Board” feature. It allows you to see the current board in a separate window, move pieces around to anticipate what your opponent might do and what you might want to do in response. Without this feature, I doubt I would have won my last 3 games.

In playing with this feature during games, I find that it reminiscent of the feeling I got when reading Peter Senge’s book “The Fifth Discipline” where he gives great examples of about systeks thinking and downstream consequences of even the simplest actions.

Likewise, every chess move has a consequence — sometimes it’s a slight, trivial consequence, sometimes it’s not. But knowing which risks to take is the underlying lesson for me, and chess gives me a lot of different ways to see possible outcomes.

To able to to feel like I can anticipate outcomes for a testing project is one of the great lessons I’m learning from online battles.

—————————-

Comment:

Hi Jon,

I enjoyed your blog post on Chess and Testing. I just can’t explain how happy I felt after reading it. I also feel that one of the other feeling you might have wanted to state it explicitly is “There are no best practices to win a game that involves opponents or unknowns making a move against us”

Testing is similar in dealing with unknowns an opponents. In chess, at least to some extent you know who your opponent is ( either a single computer or a single human ) but in testing the opponent is a large number of bugs. Attacking on one opponent might make us lose opportunity to attack the another and we never know how many others we are losing in the battle.

When we win a game in chess, we know we won the game because check mate the king is what is considered as a rule to win the game but in testing, check mating is finding and recognizing a bug ( king ). We never know how many kings we ought to check mate to win the game of testing OR we never know what kind of kings to check mate at that moment and hence emphasis on Mission is critical.

Chess is considered to be one of the brain and thinking demanding game and that’s why it has gained high respect and it is been there for a long time because humans wanted to challenge each other in their thinking capabilities. Most of the testers don’t challenge each other in thinking capabilities and agree to what someone says as “best practice” or follow the process some organization feels good about it.

The chess board has 64 squares and at the appearance it looks simple to play but those who play know how much difficult it would have been had there been more squares. Most of the testers to my knowledge under estimate the product they test and say, “I want to test something more complex” or “I want to test that kind of systems and not these simple ones”. They don’t realize the product that they test has more than 64 squares.

At first, when you start the game of chess – you don’t start with a plan but make a move, observe what your opponent does and then start building a plan. When a product is given to test without a spec or requirement document, testers feel a block that I’d like to call “Tester’s block” as compared to Jerry saying the “The writer’s block” . Those testers don’t appear to realize that making a few moves on the product might help them achieve a mission as compared to most of them say “We can’t test this”.

Wow! It’s so exciting to compare, learn, play the game of testing and chess.

Thanks,

Pradeep Soundararajan