Tips for Pairing

Interactive programming creates a stream of sharing opportunities that can be easily missed if a pair fails to consider the mental states of their colleagues.

tip

If you see the driver get an error message. Don't bother to read it. It will be seen soon enough and processed within their flow. However, if you see that the flow has been broken but the error not noticed, just point to the error on the screen to be sure it has been read. Again, no need to say anything. (This tip from Joshua Kerievsky)

tip

If the driver gets stuck and you see a whole new approach is required. Don't jump immediately to your solution. Ask your internal self how it is that you saw the new solution? What was the important clue? What train of thought did you followed from there? Thus prepared, ask if it might be possible that the clue is present? You will rarely need to explain your solution or even the train of thought you followed. Remember, you are already almost in lock step so you will be exploiting that and probably get to see an even better solution appear before your eyes. (This tip from personal experience programming with Kent Beck)

tip

Don't recount how you have had experience programming a similar problem in your own history. Your partner has a history too and has surely faced similar situations but chosen alternative solutions that differ in uninteresting ways. Prefer instead to suggest the next obvious test case. There are surely several that you could pursue but one is most likely to expose a condition your experience has shown to be important. (This tip sometimes referred to as "zippering" experience with TDD.)

tip

Don't pair with an expectation of mentoring or being mentored. Pair as equal and complementary contributors to the problem at hand. Example: I once consulted at an insurance company where the most junior member of the team had not had good experiences pairing. We had need to employ Java's table widget so I suggested we do that together tomorrow. I admitted that I had not used it myself and suggested he look over the chapter in the book. He arrived with three books filled with stickies marking critical issues. We became an awesome team, where I had strategy from years of programming and he had all the tactics he had learned overnight.

tip

Approach the pairing session with preparedness: - Know your success criteria and definition of "Done" before you start, and make sure both parties agree what those items mean. - Talk over the approach first. This will help highlight grey areas or issues with done-ness.

tip

Dedicate yourself to the role. If you are the driver, focus on driving the process forward toward the completion goals. If you are the navigator, focus on coaching and guiding the driver to build the best solution.

.

John Hyland asked. post