Thoughts on Pragmatic Software Quality

June 29, 2003

Paired debugging

Filed under: Uncategorized — heathertinkham @ 12:22 am

I was looking at Chris Sepulveda’s recent post on “Integrating Testers into XP: Initial Thoughts”, and was intrigued by his mention of “paired debugging”. I had the good fortune to be able to do that a couple of times on a recent project and feel that it worked incredibly well. I’m interested in how it has worked for others and whether it was intentional or not. (If I have misunderstood your use of the term “paired debugging”, Chris, please correct me!)

In my case, we had a team that was highly collaborative and incredibly competent on all fronts. We didn’t start that way, of course, but by the time the paired debugging sessions took place, we had developed a healthy mutual respect and a good deal of trust. It was not an XP project, but it was not entirely a traditional approach either. None of our sessions were called out as intentionally paired debugging events. They emerged from the desire of the programmers to solve some tricky and complex coding challenges and the willingness and ability of testers to sit through debugging sessions. The developers wanted to nail their bugs for good after they had gotten a series of related defects on several releases in a row. The testers wanted to stop finding variations on the same bugs in release after release. I was the tester and went through the code in question in an extensive debugging session with the programmer. It was very satisfying and productive in many ways.

On the other hand, I was glad that I didn’t have to explain to any project manager what category I would have charged that time to since it was far in excess of what was considered normal for “defect analysis”. I also don’t know how much programming knowledge the tester needs to have to really be helpful. It did seem to help considerably in my situation, but I don’t have anyone else’s experience to compare to. What experiences have others had with these two issues, time accounting and development expertise of the tester? How important is the existence of trust and a collaborative environment to the effectiveness of paired debugging? Has it been applicable to non-XP projects for others as well?

1 Comment

  1. We do quite a bit of pair debugging. Most of our manual testing is done by a domain expert, as we don’t have dedicated testers on my current project.

    Anyway, we frequently will pari a developer with a domain expert when: a. review the product, b. resolve bugs.

    In both cases, the developer will actually try to debug and resolve the reported issue. This is more effective when the developer is present during the initial review as a lot of extra effort is eliminated. The “tester” does not have to log the issue, try to reproduce it, etc. Many times the developer realizes what is going on just by seeing the problem arise. In other cases, it validates the tester isn’t crazy when some things are hard to reproduce. Also, a developer tends to have better luck reproducing hard-to-reproduce bugs when they see the first cause of it, as they have some context.

    It is a good practice. I have never tried to formally sell it to anyone. We just did it. Once, after some bugs were reported by someone, I asked them to “sit” (I work remotely, so this is done online with Placeware(tm)) with me and take a look. We found it to be effective and the practice spread.

    Chris

    Comment by Christian Sepulveda — June 30, 2003 @ 11:37 am


RSS feed for comments on this post.

Blog at WordPress.com.