87 lines
7.0 KiB
Plaintext
87 lines
7.0 KiB
Plaintext
|
|
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.
|