Chris wrote:
> Hi Rob,
>
> Keep the group going! I value your thoughts and the group input.
>
> On making mistakes: I find private mistakes are always easier to
> confront than public mistakes.
>
> This suggests to me that pair-programming will suppress some
> innovation as the activity is necessarily 'public' and risk-taking
> (for example, playing with design and algorithm alternatives) will be
> constrained.
>
I think this is only true when you are relatively new to pairing. Good
pairing is not particularly self-conscious. It is true that you may
spend less time "exploring alternatives" but the point is to find the
simplest solution that solves the immediate problem. The simplest isn't
always the most obvious, but the first attempt should be fairly obvious
(And if your solution is not simple, that will be obvious too ;-) Later
you can refactor to a simpler solution when it becomes more obvious. So,
there shouldn't be much exploring going on. You just have to have
courage that the solution that emerges will be a good one.
I think that is why pairing is so much more productive - It isn't about
stifling innovation, it's about cutting down on a lot of wasted energy.
Check yourself and see how much time you spend reading email, browsing
the web, chatting on IM, etc. when you code alone vs. when you pair.
Where it gets interesting is in the give and take that happens between
two programmers as they begin to develop a rapport. In some situations
you will find that you are working with a junior programmer who tends to
get lost or has habits that need to be corrected. In these cases you do
have to stiffle [sic] him a little, but it's for his own good (And in
some cases your own sanity.) Other times you will be working with an
equal and you will want to give him a little more rope to hang himself
with. If he goes off on a tangent sometimes it is worthwhile to follow
him and see where he is going. You may learn something. With a more
senior person, you may find it best to just let him do whatever he does
and ask a lot of questions along the way, "Why do you do it that way?"
Etc. Lots of good stuff about this in the Williams and Kessler book
(Most of the advice there is pretty good, although what works will vary
with personalities.)