WGVU Radio Interview: Pair Programming
WGVU Morning Show with Shelley Irwin
Tech Talk with Jonathan Pichot
March 13, 2014
Listen to the complete interview here:
Host: So you sit around and develop applications?
Jonathan: Yes I build custom web applications.
This was something you knew you wanted to do?
No its something I grew into doing, I taught myself. I actually studied history in college but learned software by growing up around computers.
We’re going to talk about a new software development technique that’s gaining traction in the technology industry and yes, this is pair programming. Can you explain to me what this is?
Pair programming is when two software developers sit side-by-side and share a keyboard and work through the same programming process and its actually not too new, it comes out of a software philosophy called Extreme Programming which was developed around late 90’s early 2000’s. Pair programming is a part of that process and what that process is is reassessing how we think about software, software isn’t something that’s built like a widget in a factory. We have to think about how the nature of software creates new ways or requires new ways of developing it. So pair programming is a process where two developers share a keyboard and work through the same process. It’s been found to create better quality and more maintainable software.
Are you practicing this?
Yes, at Collective Idea we pair program as much as possible on different projects. So, professionally, I pair and it can be done side-by-side or remotely.
What are the benefits of pair programming?
One benefit as a team who’s working on software is that it shares knowledge of that piece of software with different developers. The idea is that you’re pairing with different developers throughout the project and this shares knowledge across developers. The cost of software is not just the construction of the software, but the maintainability of the software. So the more people we have in front of the problem the more people we’ll be able to help later.
Any negative repercussions?
Pair programming is something that’s learned–you definitely need to get better at it. There isn’t really a negative to pair programming, but you have to learn to do it well.
When did you start pair programming?
I started pair programming when I joined Collective Idea a little under two years now and the benefit for me was that you get up to speed with the team very quickly. You get to see the patterns and the style of programming that that company produces by working side-by-side with a more senior developer.
Is it crucial that the developers are at the same experience level in order for this to work?
No not necessarily, it can actually be a fantastic learning opportunity, ideally both developers are able to contribute an equal amount and that’s what you want it to get to, but as a learning process it’s fantastic. As professional developers, as Jason mentioned, where two people might approach a problem differently is very helpful.
Do other industries use pair programming?
I’m not actually sure. I’ve heard of designers throwing the idea around but i’ve never actually seen that in practice. I think pair programming is particular to programming as a process simply because of the nature of software. Just like the written language there any many different ways of expressing the same thing. There are many different ways of expressing the same thing in software and you want to find the most concise and clearest way to express that, that’s the nature of pair programming and i’m not sure how that translates to other industries per se.
What else is important to know?
Well speaking of Brian, Jason’s colleague, I’ve been teaching a class with Brian a couple weeks ago through the co-learning initiative at the Factory here in downtown. At the class we’re teaching people to become programmers. We’re taking students who have never programmed ever and working through that, and actually an element of what we want to teach are these practices so we’re introducing them to the concept of pair programming, to the concept of test driven development, and other software development techniques very early on.
Do you run to your computer as soon as you get home or do you need some downtime after spending all day..
Depends on the day.