This is a very interesting notion for me this pair programming lark. I have done many small scale projects (mainly in php and involving output to HTML or MySQl databases, but thats an aside), but none that truely involved pair or group programing. Working with others, sure, but not actually programming as a team.
On Wednesday last week I sat down with Dan in the lab and with a blank text editor screen we went about writing a simple python program; read in data from a file, perform selected calculations on it, and ourput the results to another file. What was intersting is the night before I had read a chapter on the concepts of pair programming, and within a few minutes of working as a pair started noticing all the benefits the chapter had mentioned showing through. Things such as spotting each others mistakes, it being obvious when to change who has control over the keyboard, and sharing the enjoyment when something works, but having more support when it doesn’t along with better ideas for solutions.
I could certainly get used to it thats for sure, after all what small scale developer hasn’t been up at 3am staring at their screen wondering why something won’t work, but as soon as they get an e-mail in response to their issue from their co-worker about it the next day it’s blindingly obvious. Pair programming is like having that e-mail there immediately, but not only that, its a chance to step back from your own code and watch someone else work on it while you act as the external input. Its so many times better than sending “your bit” half way round the world and hoping it “will be ok” when you get it back with loads of code you don’t understand. Pair programming seems to allow you to both fully understand the code, while chomping through it quicker than if you worked on half and half.
I am however mindful of precisely what I mentioned a few lines up; 3am techie sessions (as I affectionately term them) have to be a thing of the past if you are to truely pair program. This will be fine initially, but obviously as deadlines close in, making sure you put the hours in as a team, and finding them for that matter, becomes increasingly important.
On the whole though, I can’t rate my initial experience of pair programming highly enough; for this project at least it looks certain to be a success 🙂