Friday, February 04, 2011

Debugging problems remotely

Usually, when a customer finds a problem in one of the Company product, he is able to send us a small setup that reproduces the problem. We call this a "reproducer".

This allows us to reproduce the problem in-house and to find a solution.

Sometimes the customer is unable to reduce the problem in a small setup, but he is able to send us his own large setup. Then, either we construct ourself a small reproducer, or we debug the problem with the large setup.

However, there are cases when, for security reasons, the customer will not send us his setup, but will only describe the symptoms. This is when we need to debug the problem remotely.

We usually do that by asking questions by e-mail. All e-mail exchanges with the customer is logged and distributed to every developer in the Company. So, any developer may intervene in the conversation to help solving the problem.

When it is difficult to explain by e-mail, we use the phone. But we try to avoid this as phone conversations are not tracked and it is very easy to forget to summarize the conversation in an e-mail.

I recently solve a problem by remote debugging. I had to phone the customer once for fifteen minutes and exchange about 10 e-mails before I figured out what the problem was. Then, I was able to create a very small reproducer and to solve the problem.

Solving such difficult to find problems is very gratifying.

No comments:

Post a Comment