I have, inadvertently, been exposing my little programming class to the newest approach to working as a programmer: ‘pair programming’.
In the real world pair programming involves two people sharing a computer, one takes the lead on driving the machine and doing the coding, the other rides shotgun, checking on their work and providing insight. In my lunchtime computer club we get the same effect either because (a) the Department of Education facilities mean there aren’t enough working computers to go around or (b) because the little guy who’s just there because his friend would rather code that play handball prefers to watch. Either way I feel I have some insight into pair programming in the testbed that is primary school.
According to the Wall Street Journal from a couple of days ago, there are those who swear by pair programming. It apparently reduces errors dramatically and keeps people focused on their work. I can see how that works – it’s ‘pair programming’ not ‘pair surfing the web or checking Facebook’. Having someone watch what you do is going to reduce errors and the opportunity for you to take some downtime; but at the expense of having a whole person do nothing but error-check and at the expense of you not getting any downtime. And at the expense of having someone constantly looking over your shoulder.
The bigger problem, though, is that I don’t believe you get two-persons’ worth of output. That’s the problem I’ve observed amongst the kids sharing a computer – there’s no synergy. In effect you are, if you are lucky, getting one-and-a-half brains working on the problem. And it’s not that kids can’t share. The problem is that computers are simply not set up for sharing to make any sense: They are designed for a single user. Which is in turn a very strong argument that the Government should be ensuring that every child has access to a computer on a one-to-one basis.
Further, I would argue that programming itself is essentially a relatively solitary activity. You can share ideas amongst a team and coordinate contributions but you can’t share creativity. It’s not for nothing that you find artists and authors tending to work in solitary splendour.
Being able to work with others is becoming an essential skill in life and it can be a tough skill for young geeks to even get a grip on let alone master. Being part of a team does not, however, mean the same thing as being surgically attached to a partner and sharing one computer. I’m not sure that’s a skill I want to really contemplate, let alone master. Next thing it’ll be someone else’s greasy finger-marks on my iPad. Shudder.
Sydney company, Atlassian’s video spoof of pair programming is not, by the way, quite how it’s done in the real world. I hope.