Episode: 1215
Title: HPR1215: Pair Programming
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1215/hpr1215.mp3
Transcribed: 2025-10-17 21:46:02

---

Greetings. My name is Christopher Hobbs. I go by no method about the internet. I've
recently started listening to HPR and I decided I'd like to try to contribute. This
is my first podcast and while it's brief, I hope to contribute more as I learn more
about podcasting. I have a few subjects I'd like to talk about. I decided to dial in because
I don't have proper audio gear and there's something quaint about using the phone to record
a piece like this for a public service. The call and number appeared to be out of service
so I'm recording this with a pretty interesting setup, but I suppose that's discussion for
another installment. Please send any feedback on my audio or my format and all the just
where I can. I'll provide my contact info at the end of this podcast. I've been interviewed
on pair programming recently and gave a talk on it at work so I figured it'd be a good topic
for a quick podcast. I've been pairing for both work and recreation for a couple of years
now. I've been developing for probably the better part of a decade. A former IT drone
recently switched careers to development. This topic may not be an exact fit for HPR, but
I hope you find it enjoyable. I know some of you are already doing some programming. So
what is pair programming? Well, it's an agile software development technique where two
developers work together at one workstation. I believe it either came from the extreme
programming camp or XP popularized it. You can find more about that in some of the links
in the show note. So how do you pair? The basic process is that one developer drives
while the other one observes. So one person is typing, the other person is watching and
guiding. There's many ways to handle this. You can have one developer write tests while
the other codes. You can take turns coding using the Pomodoro technique or you could code
in intervals, but the bottom line is that it provides an inline code review. You want
to switch roles regularly depending on the pair that may be any amount of time. I find
myself switching up about every 20 minutes to hour or just whenever one of the pairs happens
to be tired. Some of the benefits that it provides, first we mentioned inline code review.
One developer is constantly looking at the code. Side effect of this is you have to make
yourself both confident and vulnerable as you're answering to another person for every
line of code you write. Those of you building open source projects shouldn't have much
trouble with this, but sometimes developers on proprietary projects get shy. This is
pretty easy to overcome in a few hours or if you really just know the person you're working
with, you'll get passed it quickly. Per programming can help relieve burnout. It generally lets
people rest their brain for a little bit while the other person drives. I found that
it's easier to wear down after coding for eight hours in a given day by myself, but
with a pair, I'm not usually as tired at the end of the day and I feel better about my
work having someone else watch it. While pairing, you should be learning new tricks
for your pair and teaching them new tricks as well. Learning should be constant, you should
be in constant communication, and this also helps to defeat knowledge silos and raise
bus numbers. If you pair it from musculously through an organization, both domain and
general knowledge get passed around to everyone and no single person will have a locker or
a choke hold on any given project. There are a few things to overcome, however, in pairing
isn't always easy. You have to drop your ego a little bit and listen to the other person.
You eventually learn when to talk and when to listen and once in a while you have to
agree to disagree. To avoid getting stuck in an argument, try to understand the other
person's point. The best way I've found to handle this situation or a situation similar
to this is to generally accept what other person wants to write if you can't verbalize
a solid argument against it. Then after you guys have moved on and done other work and
you've had some time to research the topic, come back and revisit it and explain your
position better. So lastly, I'd like to talk just briefly about remote pairing. You
don't have to be in the same room to pair with somebody or even on the same continent. If
you've got an internet connection and a box with SSH available, you can pair remotely almost
any time. Granted, you'll need very likely a Unix based operating system such as Linux,
the BSD's or OS10. All you need to do is fire up a terminal multiplexer like GNU screen
or Teamux and your favorite console editor like VEM or EMAX or SAM or ED or whatever you
happen to use in the console and just hit the ground running. You can handle communication
with your favorite VoIP service, be that SIP or Skype or Google Talk or any of the other options
for VoIP. There are some graphical options to remotely work on the same file with another
person like I'm going to butcher this name. I believe it's Subetha edit and Gaby are both good
options. The issue there is they only cover the editor. You're still going to need to share a
terminal somehow, be that another SSH session. You'll need that terminal to be able to compile or
interpret your code. There's always a shell session necessary for that. Screen sharing applications
should really be reserved for high bandwidth connections such as in the same building or just a
really good internet connection and even then they can get sketchy. I found text to be the best
way to handle remote sessions. So I think that about wraps it up. I know this is pretty brief but
it's all I had for a first topic and I hope to provide some more information. I'm open to
remote pairing almost any night if anyone has an open source project to work on or wants to
practice different languages. You can find me on the web at altbit.org, a-l-t-b-i-t.org,
or you can email me at cmhobsatacm.org. That's cmhobbsatacm.org. Both of those should lead you to
other social services like my GitHub repository, Identica, Twitter, things of that nature.
Thank you for your time. I appreciate everybody listening to this and giving me the opportunity
to provide you with some information and I hope this is the first of many.
You have been listening to Hacker Public Radio or Tacker Public Radio does our.
We are a community podcast network that releases shows every weekday Monday through Friday.
Today's show, like all our shows, was contributed by a HPR listener like yourself.
If you ever consider recording a podcast, then visit our website to find out how easy it really is.
Hacker Public Radio was founded by the Digital Dog Pound and the Infonomicom Computer Club.
HPR is funded by the binary revolution at binref.com. All binref projects are crowd- Exponsored by
LUNAR pages. From shared hosting to custom private clouds, go to LUNAR pages.com for all your hosting
needs. Unless otherwise stasis, today's show is released under a creative commons,
attribution, share a life, lead us our license.
