Sundry matters -- Magic hands

In my jobs working with applications, I often also end up having to do user support. A common scenario occurs frequently enough that I think it bears considering:
- A user calls me up saying there's a problem with an app he/she is using.
- I go over to the user's desk and ask for the steps taken that led to the error.
- The user walks me through the steps that he/she took.
- And then, the error mentioned doesn't appear.

At this point, I normally ask the user whether those were the exact steps taken, to which the user will usually answer, quite certainly, that yes, those were the exact steps taken. I would then try to consider in my head the possibilities for errors along the steps taken by the user but, usually, the problem raised won't be reproducible by this stage. In these cases, I sometimes tell the user that I have magic hands, and some other times I tell them the computer just likes my face.

Of course, in all seriousness "magic hands" isn't really a satisfactory answer for the error being "magically" fixed, but how do we find out what caused the problem in the first place?

Program flow potentially branches every time there is a function call or a conditional statement in the code. Therefore, one should be able to tell with precision how a program will run if the value of all relevant variables are known at these branching points in the program. It would be of immense aid in tracing program issues if these variables are logged in some manner every time a branching point is encountered. I wonder how this could be done in, say, .NET, which is what I'm using mostly nowadays.
Permalink | Posted 10:36PM 9-8-2012 by Quentin.


There are no comments.

Don't fill this in!