Why don't we do pair marketing? Or pair management? Or
pair engineering? Or pair architecture? Or pair truck
driving?
Do you see? It's a silly concept. You either have a
team, and you work as a team, or you don't. Why put
artificial boundaries on it? Shouldn't you be doing
what's right for the project at hand?
Sometimes you need to work with other people. Sometimes,
IT IS A HASSLE! That's what everybody who pushes this
concept won't admit, but it's true. There simply are
times when the others DO get in your way.
But you do it to share knowlege? Harumph I say. If your
design sucks and you have no documentation, then you're
dead in the water. Where's the mention of stuff like
that?
Just like everything else, it's a tool, and it can be
abused. Use it where it fits, but not everything is a
hammer and not every problem is a nail.
I still find pair programming quit hard to do with my m8
pulling me out of the zone every other few minutes.
I'm a big advocate of pair programming but only when
people are open to it. It's more important to find and
encourage a good team dynamic than to enforce a
particular methodology. You managed to introduce two
very big changes, TDD and pair programming, without a
short-term negative impact on the project. That's really
impressive. I'd be very proud of the team for sticking
with TDD. Even if the team never revisits pair
programming you've already had a huge positive impact on
how they develop.
Steve: wow. thanks for the most interesting comment.
I would say in this case your first statement is true.
they are both inexperienced (one a little more
experienced than the other ,actually, but not by much,
and they both have different strength). the nice thing
about seeing them pairing was that everything was done
and learnt much more quickly. they were both new to .Net
as the project began which pairing gave an opportunity
to learn together all the new stuff.
definitely cut back on learning curve time.
and no, your last statement about management time saving
could not be further from the truth. this TDD project
was done without projecting times based on pair
programming or even using TDD. it was projected in the
classing waterfall model way.