3 ms·
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
by derekp7 13y ago
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.