Pair Programming doesn't work without TDD?

About a week after I wrote a pairing blog post, a work colleague from another team invited me as a guest to heir teams meeting to discuss pairing. He hadn't read my post but had heard about the multiple keyboard thing and thought I might be interested.

The team I sat Phoenix, are a hybrid between my company and ThoughtWorks, who we've got in helping us.

ThoughtWorks have a wealth of experience with XP practices so naturally we're trying to learn all we can.

What does it feel like when pairings going really well

People said they felt like they'd learned something. Others added they also liked when they felt they'd taught something.

What kept happening though was a divergence into talking about TDD, people really seemed to enjoy and find value in the art of testing.

I saw my characterisations come somewhat to life and some of the team described that for two talkative people they could waste time discussing the best way to solve a particular problem or how to write a test for it.

Does this mean, that to pair program ideally you should be doing TDD? It was almost implied or is it because we're relatively new to TDD. I could conclude prehaps prematurely that to feel like you're doing pair programming really well you have to do TDD.

Pair Rotation

When it came to pair rotation, they rotated daily, which I considered the better way forward, but they were finding it hard to context switch on such a regular basis and felt it slowed the process down.

This is an interesting dilemma, people probably have different perceptions of why rotating is important, the company probably is interested is the so-called buss-ability factor. Whereby if someone tragically is injured by a bus, then work can continue because enough other people have shared knowledge about the work that they can continue. My team tend to rotate the pairs after each story and we were going to try rotating at the end of each day. Now I'm not so sure.

In favour of frequent rotation is more people see the code, more ideas and discussion arrise and hopefully a better solution emerges, or prehaps people just sit there try to focus on the new problem whilst daydreaming about the one they've just come from.

Shared accounts

We don't as of yet have pairing user accounts, apparently there's security issues around this. Though as was pointed out; sharing passwords is an inherently less secure option.

I'm thinking shared accounts are a great idea and one key part of these accounts for me is that they don't have outlook.

Have you ever noticed if you turn off outlook or email, you can get more done. Yes I'm pointing out the obvious. I'm trying to urge the team into a no interruption window. Phoenix already do.

I'm hoping a clear 2 - 3 hour window in the morning after the daily standup will enable us to get all the important things done in the morning.

Desk Arrangement

Desks always seem an issue, I've talked about this in my post about the Team Room, people were huddled in the corner of a L-shaped desk, which isn't really ideal, but getting all new desks is an expensive proposition. I think they're going to try moving the machines into a better position but there's only so much you can do. Our desk arrangement isn't really that far off Martin Fowler's UPOD arrangement the desks not being straight seems to be the main problem.

I suggested the multiple keyboards technique as it gives you a little more space to breathe. Someone mentioned Pairing Gum might be necessary for some people, which is alway a nice consideration :)

blog comments powered by Disqus



The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2015