This is part of a series on my apprenticeship at Obtiva. The full series can be found here.

Over the last couple of days, I’ve managed to get my hands a little dirty with some client work. I paired with Sean Iams to add a CSV parser into a client’s rails application. I’ve pair programmed at previous jobs before, but never as productive as this.

Previously, one person would usually be doing all of the coding while the other tried to look at the total scope of what needed to be done. This works well in theory, but I’ve found that the other person usually degrades to a human compiler/spell checker after awhile, or worse, stops paying attention all together.

Figure 1

Figure 1

However, I don’t think that’s entirely the fault of the developers. In a lot of programming environments, each developer is conveniently packed into a cubicle. So, just let me just say something about cubicles:

Cubicles suck, but they really suck for pair programming.

With a cubicle, your environment dictates how you code. As you can see by my highly technical diagram to the left, pair programming in a cubicle forces one person to literally take a step back. How can you be actively involved in collaborating on code if you have to peer over someones shoulder to even see? I just doesn’t work.

At the Obtiva Studio, we all sit a together (no half walls or any of that garbage) at long, wide desks. Perfect for pair programming. Sean and I were both unfamiliar with the application, so we both needed to be looking at real code, figuring things out. Our environment didn’t dictate that this is how it should be done, but it allowed us to do so.

In the end we were able to add this functionality in just a couple of days, much less time than it would have taken me by myself. Since Sean has a lot more experience with Textmate and OSX, I also got the side benefit of learning several keyboard shortcuts that I wouldn’t have picked up on in the “sit back and dink around” cubicle approach.

I’m looking forward to more of this in the future.

Share and Enjoy:
  • Print this article!
  • Digg
  • Facebook
  • Tumblr
  • Twitter

2 Comments

  1. Nice Post!

    I’ve had similar experiences where I am supposed to be pairing, but I’m sitting so far away from the screen that I feel like I’m invading the other person’s space if I try to point to something on the monitor.

    There have been a few incidents where someone asked me to help them out with a problem, but their desk was arranged in such a way that I literally couldn’t get close to the code, and I wasn’t really able to see what was going on or read everything. After digging into a problem, and finally figuring out the issue, I’ve come to the conclusion that I would have figured it out a lot faster if I could see the code and get in the driver’s seat first.

  2. Andy Maleh says:

    Great post, especially the highly technical diagram. Pictures are truly worth a 1000 words when it comes to communicating ideas.

Leave Your Reply

:D :) :o :eek: :( :lol: :wink: :arrow: :idea: :?: :!: :evil: :p