Sorry about the blog lapse. I just got back from STPCon and a 10-day vacation in the Pacific Northwest.

I’ll share my STPCon ideas and takeaways in future posts. But first I have to mention my STPCon highlight.

During the conference, keynote speaker James Bach invited me to participate in an experiment to see how quickly testers can learn testing techniques. He approached me before lunch and I joined him and another tester, Michael Richardson, in the hotel lobby. James asked us each to play a different game with him (simultaneously). Michael played the “Dice Game”, in which Michael had to roll random dice of Michael’s choosing, from several different dice styles, to determine a pattern that James made up.

I played a game much like “20 Questions”, in which I had to explain what happened based on vague information I was given. I could ask as many Yes/No questions as I wanted. During the games, James coached us on different techniques. After about 45 minutes, Michael jumped in and bailed me out. Afterwards, James asked me to play again with a different premise. I was able to crack the second premise in less than 5 minutes. I would like to think I actually learned something from my first, painful, attempt.

These games share similarities to software testing because they require skillful elimination of infinite variables. Some of the techniques James suggested were:



  • Focus then defocus. Sometimes you should target a specific detail. Other times, you should step back and think less narrow. For me, defocus was the most important approach.
  • Forward then backward. Search for evidence to backup a theory. Then search for a theory based on evidence you have determined.
  • Dumb questions can lead to interesting answers. Don’t be afraid to ask as many questions as you can, even if they are seemingly stupid questions.
  • Flat lining. If you are getting nowhere with a technique, it’s time to stop. Try a different type of testing.



Later, James asked Michael to think up a challenging dice game pattern. James was able to solve it in about 30 seconds using only one die. Obviously, having played before, he knew it would eliminate most of the variables. I just used this exact idea today to understand a software behavior problem I initially thought complex.

After the stress of performing these challenges with James, we sat back and enjoyed a conversation I will not forget. James was more personable and less judgemental than I expected. Despite being a high school dropout, he is currently writing a book about learning (not about testing). I also thought it cool that during STPCon he headed across the street to the Boston Public Library and began reading from various history books. He was trying to determine why people with power would ever choose to give it up. I guess he’s got more on his mind than just testing.

For me, spending time with James was a huge privilege and I was grateful for the opportunity to discuss testing with him, as well as getting to know the person behind the celebrity.

Note: Michael Richardson was also an interesting guy. He once did QA for a fish company and was literally smacked in the face with a large fish due to poor testing.

9 comments:

  1. Alex said...

    I don't know what's more fascinating -- the neat story, or that I look upon Bach as a celebrity as well!

    I look forward to your thoughts on the conference.

  2. Anonymous said...

    "I Got Tested By James Bach" sounds like one hellofa tester's t-shirt!

    Sounds like you had an interesting time with him. I'm very curious to meet him, I hope he'll come sometime to our hi-teched country.

    That ancedote in the end about the fish sounds hilarious...why did he actually get smacked in the face with a fish? Takes me back to the IRC days of *smacks X with a large trout*, only this time it's for real.

  3. Anonymous said...

    Eric,

    I am still yet to derive what that dice game you 3 played. Please can you explain bit more, if possible in detail.

    It would be helpful to me, as I can try that dice game with my friends here.

  4. Eric Jacobson said...

    ravisuriya,

    Here's how the dice game works:

    The object of the game is to determine a pattern the moderator has thought of. Example: Let's say the pattern is to simply add up the pips on the top of the dice, but the only dice that participate in said pattern are those with even numbers. This is only an example. The more creative the pattern, the trickier the game.

    The player is given a variety of random dice styles. They could be standard 6-sided pipped dice or 12-sided dice, whatever. The player rolls as many dice as they want. After the dice settle, the player examines them, attempts to determine the moderators pattern, and says a number out loud.

    The moderator responds by saying the number resulting from the moderator's pattern. Then repeat. Each time the player rolls, they should be attempting to decode the pattern. If the player wishes, they may also place the dice into any pattern they want, without rolling them.

    With the above example, the player may roll a 3, 5, 2, and 4. Maybe the player simply adds them up and says "14". The moderator's response would be "6". On the second roll, we get a 1,1,6, and 3. The player says "29", just to hear what the moderator will say. The moderator must say "6". Eventually, when the player determines the pattern, they may manually place a 3, 1, 5, 5 and say "0". The moderator also says "0". Then the player places down a 2,2,4 and says "8". The moderator also says "8".

    When the player thinks they've figured it out, they explain. If they are wrong, they lose the game and the moderator wins. The player only gets one guess.

    Make sense?

  5. Anonymous said...

    Eric,

    I like to tell what I understood reading the above written. Correct me, if I am incorrect with the understanding of the above written.

    Objective of the Game: To determine a pattern the moderator as thought.
    Pattern of Game: To add up the pips on the top of dice, of those with the odd numbers.

    Player: Ravi
    Moderator: Eric

    Ravi rolls four dice and 5, 4, 8 and 2 are resultant. And Ravi tells, it is 8.
    Moderator tells it is 5.

    Ravi rolls four dice and 3, 7, 3 and 5 are resultant. And Ravi tells, it is 18.
    Moderator tells it is 18.

    Am I correct with my understanding ?



    Ravisuriya

  6. Eric Jacobson said...

    Ravisuriya,

    Yes. For the pattern in your example, that scenario would be correct. Remember to begin making more creative patterns if the player starts to win.

    IMHO, the patterns need not use complicated math.

    I don't want to give away anybody's patterns, but I can tell you that to beat James Bach, a moderator once developed a pattern that involved the position of the moderator's mother in the room. James was able to determine this by forcing the moderator to continue the game in a closet.

    Have fun!

  7. Cindy said...

    I just spent 2 hours playing this game with James at StarEast. Everyone where I work is now completely addicted to coming up with new versions.

  8. Tim said...

    "Remember to begin making more creative patterns if the player starts to win."

    Are you suggesting that it is ok to change patters in the middle of a given game?

  9. Eric Jacobson said...

    Tim, you asked,

    "Are you suggesting that it is ok to change patters in the middle of a given game?"

    No. Don't change patterns in the middle of a game. That is not fair. What I meant was, if the player begins winning each game quickly (i.e., constantly determining the pattern quickly), then you need to be more creative with your patterns. If not, you're no longer stretching the player's mind.

    See my example of the moderator's mother determining the pattern. How about you use the current time of day as a pattern influence? etc.



Copyright 2006| Blogger Templates by GeckoandFly modified and converted to Blogger Beta by Blogcrowds.
No part of the content or the blog may be reproduced without prior written permission.