Pair Debugging

When I got in this morning, I had a number of voice mail messages from my boss. Then I found that I had a bunch on my cell phone too. That did not bode well. So I called him up. He said another team member went to the customer site to resolve a high priority problem. And he told me he wanted me there too.

I packed up my things and headed to the customer site. Luckily I got one of the last parking spaces in the lot. A coworker signed me in the front door. I found the guy I needed to help. And we got down to business. A number of our customers saw me there and wanted help with whatever they were working with. I tried to give them a little bit, but I needed to get busy on this problem. I called my boss and he talked to the top dog in the customer organization. We needed to be left alone to solve their most critical problem.

Me and my buddy traced the code to the one line in a Korn shell script that should have been created a file. But after running out program, no file was to be found. We added some debug statements and were baffled. The line should have been creating a file. There were no permissions problems. We were sure the code was getting executed. I told my buddy that although you would not expect it, perhaps the file was getting created but getting deleted later. We traced the program all the way through to completion. Wouldn't you know it? When an FTP action fails, the programs deletes the file. We recommended that the customer get their FTP server up and running. The instructed us to just remove the line of code that deletes the file so they could get on with their work immediately. Pair programming, or more correctly pair debugging, actually seemed to work well with my and my buddy.