Pair Programming, getting things done, and my toilet…
One of the most difficult aspects of Agile development to explain to the uninitiated is the concept of Pair Programming.
Imagine the scenario: you go up to the Project Manager and state that you’re going to roll out Agile, and as a part of this you will be pairing up with your favorite Code Monkey and sitting in front of one PC discussing the same code. *** Cue long hard stare from the PM ***
But to anyone who’s had first hand experience of Pair Programming they’ll tell you that tasks are generally completed much quicker and with more focus than the sum of the time otherwise used by the two programmers.
This concept was “brought home” to me recently at a party I was having at my house. My wife and I had about ten of our close friends around for food and drinks, and the conversation (after a few beers!) turned to our slow-filling toilet.
Now to put this whole thing in context, my wife has been nagging me for the best part of 2 years to fix this toilet and, for one reason or another, I’ve just never got around to it.
So as the conversation dragged on the men of the group decided to have a look at the toilet and find out what was wrong. I took the top off the tank and explained that the float arm was not allowing the water to fill quick enough and, being Men, we all stuck our hands in and started pulling pieces out, turning levers and pulling things out, and then…
The pressurised water inlet pipe shot into the ceiling followed by a jet of water soaking all of us in an instant. I stuck my finger into the inlet pipe and shouted to my wife to shut off the water.
Suddenly a two year D.I.Y. job had turned into a Saturday night emergency!
Once we had turned off the water supply we all set about unbolting the toilet from the wall, disconnecting the inlet pipe, draining the tank, etc. Fortunately I also had the spare part for the inlet pipe so we were able to completely repair the toilet.
Now what the hell has this got to do with Pair Programming?
Well the fact that 3 drunk guys on a Saturday night can repair a toilet using their combined effort/knowledge/determination shows me that when something needs to get done then it can be done. We all knew how to do the task, we all knew why it had to be done, and since we were a team, we all kept each other focused.
So the next time your Project Manager questions the value of pair programming, remember my toilet!