Thursday, October 27, 2005

My First Real Pairing Experience

This recent blogging of "how to do good pairing" caused my first real pairing buddy to remind me about how different we were but how well it worked.

Back in the mists of 1992, I was a Smalltalk developer at Morgan Stanley where I got to work with Lynn Riehl. She was a more senior IT person than I and understood the business, I was a young techy geek who could make Smalltalk dance. Every morning for two months, I'd turn up at her desk and we would commence to develop the system sitting side-by-side in front of the machine. I think all the good pairing behaviour was there:
  • neither of us ever used our "authority" to push a point, we would discuss things and try to find agreement
  • we would talk as we did things to externalise what was going on - Lynn could hear how I was thinking about the business, I could hear how she was thinking about this new object-oriented stuff
  • We didn't have huge design documents or a framework in mind, we would implement specific features one at a time all the way through
  • the On-Site customer was the FX desk on the same floor. Lynn had great relationships with all of the traders and the head of the desk. Lynn would do regular demos for them and generate feedback and prioritised to-do lists
  • we would agree on an approach and stick to it until one of us would say, "hold on..."
  • both of our language patterns became, "I think/I feel...." rather than "generally..", "the right way...", or other such terms (actually I think this was Lynn's natural speaking pattern which I learnt to adopt)
  • we had periods of intense work with frequent breaks for ice-cream
I think a lot of this behaviour emerged because we were under a tight deadline (probably unreasonable deadline), neither of us had all the information or ability to make things happen, it wasn't entirely clear what the business needed or wanted but we were both determined to make things work (stubborn is the word that comes to mind).

I don't even remember how we started to get into this behavior model? I think it was probably something along the lines of Lynn getting me to show her how to write a piece of Smalltalk to do X using the frameworks Morgan Stanley had at that time. Then she tried to modify it and had some questions so I'd come back, and pretty rapidly it was just easier and more effective to sit there all the time.

We did get complaints about the noise of us pairing from one of the other developers - which is of course one of my measures of good pairing!

We did do some unusual behavior though which I'm not sure is appropriate for pairing but is worth mentioning:
  • Lynn would stay later than I did and be in earlier, and would go through and review what we'd done and clean a lot of it up. Sort of refactoring and tidying things up so it was ready for us to have a clean start in the morning when I finally turned up (there was an interesting incident where I got shouted at across the Morgan Stanley staff dining room, but thats another story....). Not exactly a fair balance of work
  • Also Lynn would deploy the latest version every night so the users always had the latest and greatest (the single person responsibility for deployment is the unusual behavior, no the regular delivery) [Lynn's memory is we didn't do it every day - maybe I just thought we did!]
  • although there were other resources we tended to stick together as a pair. I think Lynn did work with Bernard Horan occasionally, but I've never really asked them about if this was a pair experience or just two people working together
  • I discovered only recently that occasionally when I thought we were both thinking hard about how to solve a tricky technical problem Lynn was actually trying to decide what she was going to do at the weekend! Now interestingly this did not effect our good pairing experience - so I can assure you that ignorance can be a good thing. But it does make me realize I can could be duped if I wanted to be duped (or is that "can be duped"?)
Clearly, I had the easy time of it not having to deploy or do the clean-up.

But was it ultimately effective and valuable ? I believe it was, but the following facts stand:
  • we delivered the system incrementally, delivering every day. Bugs could be fixed within minutes, features rolled out as they became available
  • Lynn rolled it out to 2 currency traders as a trial, and discovered the next day that the other traders had started using it without telling us! Not only that it was working fine for them and they were very happy
  • 2 people of very different skill sets, who didn't really know each other managed to figure out and deliver what the FX desk needed within the bounds of an impossible deadline
  • I learnt about the FX business inside and out - and it still stands me in good stead today
  • Lynn became a pretty decent Smalltalk programmer - but she jokes that working with me on that project taught her that she wasn't really geek enough to be a serious hands-on developer, and her talents lay in project management
Lynn and I are still great friends 13 years later - so contrary to the fear about falling out that my colleague raised, I think you should be more afraid of the number of close friends you'll end up with after pairing with them.


At Friday, December 02, 2005 1:39:00 pm, Anonymous Anonymous said...

Why I don't like pairing:

1. It wastes 2 peoples time to achieve half as much for double the price

2. You have to sit down closely with a smelly geek.

3. It stops me from browsing for p*rn - unless my pair has the same interest.

At Monday, December 05, 2005 3:12:00 pm, Blogger John S Nolan said...

1 is untrue (soon to publishblog entry on this)
2 is unfortunate but solvable
3 is true and can be the exception that proves 1 if your partner has a similar interest

At Tuesday, December 06, 2005 5:39:00 pm, Anonymous Anonymous said...

Addressing number 2 (for your self, mr. anonymous) will also address number 3, since you will be able to attract a mate and have less desire for porn. That will then address number 1.

See, pairing *does* work.


Post a Comment

<< Home