“Wow, when I was a kid we had to fart in the bath,” said Eddie Murphy’s character Billy Ray Valentine, when told he would have the use of a jacuzzi. They don’t make films like that anymore, do they? Well, actually they do but a little nostalgia never hurt anyone.
So it might be with rose tinted spectacles that I remember my first programming job. Straight off the best green screens and teletypes that University could offer, I was presented with all the complexity and delight of programming on an Apollo workstation, running a weird hybrid of UNIX and Apollo Aegis. Or at least, we were – given the expense of such devices, I had to share the workstation with another rookie, Mike.
Mike and I used to work together on various things – we were trained together, set tasks together, solved problems together, wrote and debugged code together. One slight issue was that Mike and I were just a little competitive. We played off each other, pushing ourselves just a little in the process. I would say we knew we were doing it but we didn’t – after all, we’d never had any other work experience than this.
It was only after a couple of months that we started to get what we were doing. I don’t want to over-blow this, we were no supermen but we certainly picked up a reputation of getting stuff done. I couldn’t even say that we were better than anyone – it just so happened that we were working in the kind of place that Tom De Marco might cite as an ideal working environment for developers. So we certainly didn’t stand out from the crowd; on the contrary we fitted right in.
Which brings me, in a rather round about way, to the shared experience of jacuzzis and Billy Ray’s nostalgia. These days we refer to peer programming as a somewhat new phenomenon – at least to the uninitiated. There are two comments I can make: first that it is not a new phenomenon, and second that speaking from experience, it works.
There’s a lot of thread to tie up here. One, as already mentioned, is the danger of being over-nostalgic. But like many agile practices, peer programming is founded on common sense. While it will not be appropriate for every situation, either should it be rejected just because it is being pimped as something new.