Archive for June 13th, 2007

Problem solving techniques: the buzzsaw moment

Several years ago, Mary and I gave a presentation on problem solving techniques. I would like to highlight a few of these techniques. These techniques apply in general to problem solving, and in particular to debugging of software. The first one is the buzzsaw moment. This technique applies especially to those instances where you have a production system that is down - or that you know if about to go down. It also applies when you have made a mistake, that is going to have bad consequences, and you are trying to figure out how to undo it.

You are sitting on the log - the log is moving toward a saw - and you can see what the problem is. The problem is this darn rope tying you down. So you focus all of your attention on untying that rope. You know deep inside that it isn’t going to work - that you can’t do it fast enough - but there it is - a rope that needs to be untied.

Buzzsaw Cartoon (small)


But - it turns out that there is another option. Close at hand (pun intended). Up to your right is the ‘off’ button. All you need to do is a) see it b) realize that it could result in a good result and c) HIT IT.

The really good news about this technique is that many people can apply it (more on this in a subsequent post).

One of my favorite instances of the buzzsaw moment was when I was looking over the shoulder of a database system administrator. We had some data to clean up, and were going to selectively delete some records. This is one of those moments that require care. Usually another cup of coffee first, and always another set of eyes. I was the second set of eyes. The person at the keyboard entered his DELETE tablename WHERE… command, then selected DELETE tablename (but not the WHERE clause), and hit enter. And at that point the damage was done - all of the rows in the table were being deleted. The really good news was that there were a lot of them. In this case, the off button really was the off button. We were sitting next to the server. The rows were being deleted, and logged. I reached over, and threw the on/off switch, interrupting the delete. Since it hadn’t completed (ok - there was luck involved), all the rows were there (ensuring a consistent state) when we brought the server back up.

[The cartoons were done for us several years ago by Marc Schmid. His website is www.cartooncity.net ]

1 Comment »

Jim on June 13th 2007 in Problem Solving