Tuesday, December 14, 2010

David's Second Rule for Debugging

Way back when I came up with David's Rule for Debugging, then read a book about debugging with a more comprehensive set of rules. Since then I've added a new rule to my list. The exact rule is still a bit of a work in progress, and it has some similarity to "get a fresh view", but I think has some unique aspects. So here it goes.

In its most extreme form the rule is:
If you feel nauseous or about to cry, let other people help you.


I tried writing this post in a general way using third person but it was making it very tough to write so I'll just go with first person.

When I'm facing a problem, typically at first I'll want to think about it and look at it either on my own or as part of a small group. Later I might get around to "get a fresh perspective", but first I'll want a chance to get an understanding of the situation. This is especially true for high pressure/high excitement situations, which is unfortunate since that's when lots of people want to come by and get involved or give some advice. My general response is to try to gently push them away so I can get my chance to think/work (they typically don't leave, but I try).

However, there is a special case when the event is so high pressure and the results are so bad and make so little sense that the pressure gets to me and I start to feel nauseous. My gut reaction as the stress steps up is to push people away harder so I can dedicate my diminishing focus on the problem. But once nausea has kicked in there really isn't any focus or wits left to dedicate to the problem. That's when the rule kicks into effect, since I'm no longer of any use the best thing I can do is back away. Even if the people stopping by are normally less qualified to work on the problem, at this point random people off the street would have better luck solving it, so let them have at it. This also allows me to regain composure by stepping back rather than focusing in.

Luckily, I've only been in this situation once in recent memory and one of the people who stopped by was the exact right person to solve the problem. Unfortunately, I hadn't come up with this rule yet so I resisted help for longer than I should have, but eventually just had to back away. Also luckily, the person who solved the problem did it impressively quickly and once that was taken care of everything worked really well.

Can't say I'm looking forward to getting to use this rule, but at least if it happens I'll be prepared, well if I have enough wits left to use it - maybe the rule should be adjusted to: ...BEFORE you feel nauseous...

1 comment: