

Pair Programming Tools – 2014 Q1 Survey - jkresner
http://airpa.ir/q1-pairing-tools-hn

======
derekp7
Here's one pair programming tool I'd like to see. Under Xorg it is possible to
configure multiple keyboard/mouse pairs, so that a window clicked on by one
mouse is active for its associated keyboard, and another window can be active
for a different keyboard/mouse. But, I'd like to see some window manager
support, such as changing the color of the title bar to represent which
keyboard it is currently connected to.

This general setup is really nice when you are working with someone else, they
are typing, and you need to do something on the side such as checking your
email. Also works good with Emacs with two windows working on different parts
of the same file.

------
benched
I consider myself lucky that I haven't had to work with any pair programming
tools in the last 15 years. I have, sadly, had to work with numerous
waterfall, agile, scrum, and TDD tools. (I refer to their proponents.)

~~~
zk00006
I hear about pair programming first time, what is a typical use of it?

~~~
derekp7
Generally you have a senior programmer paired up with a more junior one. They
then take turns typing in code, and discuss what they are doing as they go.
Kind of like working out a complex math problem on the chalkboard in school.

The benefits are: 1) transfer of knowledge -- you have at least one other
person that knows the thought process behind the code; 2) cleaner code -- when
paired up, you are in a semi-teaching mode, so you are more likely to use
clean and understandable code. That is, if it is too hard to explain it, and
you are required to explain it to the point of understanding, then you will
have a tendency to not be as obscure.

The main drawbacks: Often times, when something is sufficiently complex, you
really need to concentrate for hours to develop a solution. And having someone
(either more junior, or more senior) throwing out random suggestions, when
they have no clue what data structures you have built up in your head, is
somewhat counter-productive. Another major drawback -- too much transfer of
germs. You need to make sure each person has their own keyboard/mouse, and
preferably some extra space between them (such as pair programming using
remote displays, and not being right on top of each other).

Disclaimer -- I haven't worked in a full-time developer role in any shop that
uses pair programming extensively, although I have paired up with other
developers from time to time to help them through some C code that they didn't
understand.

