Tag Archives: Pair programming

Pair programming with Corey Haines last week at SRT

Corey Haines is a software developer from Cleveland, OH, who has embarked upon a pair programming journey. He's spending a year or so, traveling around the country (soon to be extended to Europe and perhaps Asia), programming on whatever projects individuals or small companies are interested in working on.  Last week, SRT was privileged to host Corey, and he paired with me one of the days that he was in town.  He also stayed with my family overnight, which is what he does in order to keep his expenses down during his year of travel.

When I was at the Java Posse Roundup, I spent an afternoon with a group of people working with Bill Venners on Scalatest. Several of us agreed to help afterward, but I hadn't had time to jump in.  Last Friday, with Corey, I found that time.  He and I spent the day working on an HTML Reporter for Scalatest.  We made a lot of progress, and even worked a bit with Bill, remotely.  No, Corey's not a Scala programmer, but his ability to pick up the language quickly speaks strongly of his aptitude for languages and perhaps of Scala as well.  Corey had previously worked with David Chelimsky on RSpec.  Since Bill has added behavior driven developmentsupport in Scalatest, we focused on that.

We accomplished WAY more than I had thought that we would, especially given that I couldn't dedicate the entire time to only pairing.  We certainly got more done together than I would have accomplished by myself.  (Hopefully soon,) I'll go back and finish up the other support, and get the code to Bill for his approval and checkin.  And, I think that Corey had a good time too.  He said that he's going to start working on a Scala port of RubySlim!

But I wanted to write a little about Corey's style of pairing and why I enjoyed it so much.  He likes each person to have a keyboard and mouse and monitor.  Instead of pairing side-by-side, he likes to pair across a desk.  That offers the ability for the pair to talk and to see one another.  I like this; it feels collaborative.  And, for someone who doesn't pair every day, it's less disruptive to the office environment.  There was no need to rearrange desks or squeeze behind one.  Rather, we just needed to pull up a desk.

The hardest thing for me when pairing with Corey was that he uses a Mac and I use a PC.  My keyboard doesn't have all of the fancy keys that his does (and I have a habit of using HOME and END, which mapped badly).  But we laughed it off and I really enjoyed my time on the Mac even if it was from my PC keyboard.  I keep threatening to buy a Mac, and by the end of the day, I was pretty convinced that I wanted to hit the Apple store.  Hmm, maybe next week.

My first experience in a bullpen programming environment was in 1988, when I worked for a very progressive company.  I enjoy working in collaborative environments and pairing just notches it up a bit.  Corey made some interesting observations about pairing.  We all spend time collaborating, working together, helping one another. Why not sit down and work together for a little while. Maybe try pairing for a few hours each day.  Try it for a few weeks, a month.  See what you think.  You might find it highly productive.


Tech events in Ann Arbor week of March 30

Well, I'm a bit late in getting this out, but the Internet User Experience Conference is ongoing at Washtenaw Community College.  It runs through Thursday, April 2.

On Wednesday April 1, Corey Haines will be speaking at the Ann Arbor Computer Society.  He'll talk about Software Craftsmanship, but I think that you will probably be able to entice him to talk a bit about how he's spent his past few months, on his Pair Programming Tour, as well.  I saw Corey last week at the Philadelphia Emerging Technologies for the Enterprise Confernece.  He's an amazing speaker, and it will be a real treat to have him in town.  He's going to be hanging out at SRT on Thursday and Friday, pairing with our staff on various projects, so I'm really looking forward to his trip.

Also on Wednesday, at the UM Ross School of Business, you can hear Jason Mendelson, Managing Director of Foundry Group, a Boulder-based venture capital firm that invests in early-stage information technology companies, speak on "Building an Entrepreneurial Community: Lessons from Boulder".  The meeting starts at 7 pm. 

Head directly from your choice of Wednesday evening events to theWeekly CoffeeHouseCoders, 9 PM at Mujo, in the Duderstadt Center (Media Union): http://coffeehousecoders.org

Thursday, April 2 is the monthly Michigan Python User Group meeting, at SRT Solutions, starting at 7 pm.  There will be some discussion of what happened at PyCon last week in Chicago.  And if that's not enough Python for you, the Ann Arbor .NET Developer group meeting next week, Wednesday April 8, features Darrell Hawley on IronPython.  That meeting starts at 6 pm.

This is an "off" week for SRT lightning talks, but there are plenty of other things going on Friday afternoon.  "Ask the VC: Live" with Jason Mendelson, Founder/MGP of Foundry Group. Jason says, "I'm going to plant my butt in a conference room on campus for a couple of hours and talk to anyone that wants to come by and chat, pitch me, talk about venture capital, etc.". Meet him between 3 – 5 PM at Lorch Hall (Economics Building) Room 171, 611 Tappan.

I'm hoping to head over to the Weekly M-Powered Entrepreneurship Hour, 3 PM at Stamps Auditorium: http://mpowered.umich.edu/index.php?n=Main.Courses.  I've been wanting to attend for a while.  I'm a huge fan of the Stanford Entprepreneurial Thought Leaders podcast and I'm thrilled that UM is doing something as well.  I'm really curious to experience it!  If only it were available in podcast form … it's WAY easier for me to listen at my leisure (while working out or while driving) than to break away from the office, but it would be interesting to attend in person as well.

Next week's quite busy as well.  In addition to the Wednesday April 8 Python talk at AADND, on Thursday April 9, Google Ann Arbor is hosting CloudCamp from 3-8 pm.

From the website: CloudCamp is an unconference where early adapters of Cloud Computing technologies exchange ideas. With the rapid change occurring in the industry, we need a place we can meet to share our experiences, challenges and solutions. At CloudCamp, you are encouraged you to share your thoughts in several open discussions, as we strive for the advancement of Cloud Computing. End users, IT professionals and vendors are all encouraged to participate.

CloudCamp is being organized by a2geeks.