Skip navigation.

What’s common for testing and FreeCell?

metrics | people issues
First: it seems easy, but it is hard to be good at it. Second: there is statistic kept supposed to measure your efficiency. Third you can’t (neither practically nor theoretically) win all games, just as you can’t find all the bugs. Last but not least to improve you need practice and a will to develop your skill.
On Monday I started writing this to talk about skills required to be good at FreeCell. While writing I kept discovering more and more analogies. I hope you will be as much exited as I was for how much I was able to learn about testing while thinking about FreeCell. For example I realized how statistics were blocking me from improving my skills in FreeCell. Now I understand how some testers are affected by the same issue.

Why do I like FreeCell?
Everyone could play FreeCell and sometimes win if lucky. Actually some people play it just like solitaire. In solitaire win rate is mostly determined by your luck. But FreeCell is a bit different from solitaire. FreeCell win rate is determined by your skills. Of course, the less skill you have the more you rely on luck. As far as I understand from what I’ve red there is there is only one out of million flawed FreeCell games (starting position that is impossible to win). So it should be possible to win any game, although some of them are very hard to win. My win rate is only about 80% - still a lot of place to improve. On my current computer it says I’ve won 105 and lost 28 games have best streak for 11 wins and current is 10.
I’ve found lately that I’m not improving a lot. So I google to find guys who are better than me to learn from them. For example Jeff tells his strategy in form of 7 heuristics. I’m afraid I know them all but I started to come up with my own heuristics while analyzing my own strategy. Will see if it will help.

The skill development
Those who try to improve win rate must have found that this is very hard to play it really good: it requires practice, skill and even certain abilities. Just the same with testing – everyone could test and sometimes find bugs if lucky. But it is really hard to do it well.
Remember – there is only one flawed game, you could win all the others if you try really hard. So as I loose I sometimes I try the same starting position, but sometimes I just give up. I don’t have enough patience to try really hard. Or perhaps my skills or my mind is too weak to solve them. And actually I’m afraid to spoil statistics :) I just realized that I simply don’t have a will to further develop my skill. I believe that if I could win up to 10 games in turn I’m really good and I will improve with time... Only when reading how good the others are I realized that I’m quite bad at it. So I need to get to next level, to next plateau. I promise to try to play each game until I win. Will see if I keep my promise.

The statistics
Just as defect statistics in testing there are is win/lost statistics kept in FreeCell that cause people to aim the score not the actual ability to win. FreeCell win rate comparison to others helped me to realize I need to improve, but simply aiming to keep statistics good enough disabled my improvement up to now. That’s both the benefit and the danger of statistics which I’ve seen both in using bug statistics.
Se let me analyze it a bit deeper. I’m obsessed with my win rate in FreeCell, others – with streaks. But there are ways to cheat this statistics. For example you could play the same game on another computer many times until you win and then replay on the one where you keep statistics. You may write some automated program that would analyze next 20 steps – too much for a human to analyze.
Just the same way we sometimes get obsessed with defects escape rates (i.e. we testers want to reduce the number of defect found in production) or other measures. They are nice tools to keep track of your ability to find defects unless metric becomes goal itself.


One more idea
I came up with one more miscellaneous idea. From university I remember fixed point theorem application to finite state machines. I remember professor made conclusion from it that no matter how good algorithm to fix defects in a code you have there will be at least once case for which it fill fail to do any change at all. In other words you can’t fix all bugs. The only one flawed game in FreeCell makes it theoretically impossible to keep 100% win games all the time. There is at least one game that will spoil it down. Of course in practice you can’t fix all the bugs just because software is too complex. And you can’t hope to win more than some 99% of all the games as some for them are really hard to win, I believe.

references
This blog was partially inspired by “The Mythology of software testing” published in AST June update. Thanks David Christiansen who compiled the article and people who contributed with ideas.