Applying Chess to Life #1

Mar 3, 2008, 6:24 PM |

Here's how chess helps me think about life:

I'm in a technical vocation. The big picture is that I develop and test software. More specifically, I travel around teaching large companies how to make better software. And more specifically still, I teach how to test software.

When large companies build things, they often do it in a plodding way. One strong temptation is to establish a lot of plans and rules that are documented thickly. One strong sentiment is that we should plan everything in advance. Testers, for instance, should plan out each step in their tests days or months before they actually do the testing.

Well imagine playing chess that way. You ignore what your opponent is doing and do the same first 30 moves, regardless. Furthermore, you have one smart guy script the moves, and pass them to low paid technicians and tell them to follow the scripts faithfully. Absurd, right? Of course, but look at the reasons it's absurd:

  • My opponent makes moves depending on what I do, and my opponent is trying to thwart my goals. The environment of play is dynamic, but not just dynamic-- it is hostile, elusive, obstructive. Chess teaches that the board changes, and that a tiny change can have a big impact. In the case of software projects, we also have a dynamic environment. Sometimes hostile, too. Our competitors in other companies try to undercut us (RedHotPawn is undercut by, for instance), or rivals in other groups change their specs without telling us, or the programmers whose work we are testing get used to us doing our work a certain way and focus their own efforts only on passing the expected tests, but not the unexpected tests. Or a programmer makes a tiny change in the code that creates a huge problem in the product. Chess teaches us to constantly re-examine our situation and refresh our plans.
  • Chess rules are simple to learn. Chess skill is difficult to master. The player must be able to play the game. If you study openings, you need to know why each opening is the way it is. You need to know because you must react when your opponent makes an unorthodox move. Similarly, in technical projects it's not enough to scribble down instructions and hope people use "common sense" in following procedures. They must have skill. They must be properly trained and supervised. Amazingly, I see many software projects where some quality assurance dweeb truly believes that if we just put together a few hundred pages of documented procedures, people will suddenly become reliably effective in their work. Chess teaches that no simple set of instructions makes a bad player into a good player (or even mediocre).
  • Control is not quality. Problems in chess play come not from people making moves that differ from a centralized standard. Inconsistency is not itself a problem (in fact it might be a boon, as it throws your opponent off). Problems come mainly from poor thinking. Quality comes from analysis, imagination, the confronting of tradeoffs. As in life, scripted solutions for complex problems tend to focus on the wrong issue. Chess teaches that when you lose, you probably lost because you calculated your moves poorly, NOT because you failed to copy what Capablanca did in 1921.
  • To play chess is to learn chess. We don't just play to win, we play to learn how to play better. We play because that's our best method of learning to play better. That means telling someone exactly what moves to make will not help them learn to play better, to any significant degree. Instead it causes their mind to disengage. Chess teaches that we learn on the job, and that part of our learning is screwing up. We learn not only from our own mistakes, but by studying the games of others.
Of course chess also teaches that there is a role for script-following. I can take advantage of an opening reportoire, for instance. But what may begin as static and handed-down from authority must always give way to new analysis, in a complex and changing world.