I've always heard of this concept called "pair programming" but have never done it in a professional setting. Outside of work, I've done it with a friend on a specific task that we wanted to work on together, but not in a general sense.
I began to look up videos of pair programming demonstrations on YouTube, and also chat with some friends about it and I realized that there isn't really 1 single concept that everyone agrees on for the definition of "pair programming" in the first place...
To some, it seems to mean two people looking at the exact same screen, taking turns writing in code and talking through problems associated with logic, style, program flow, and so on...
To others, it means that at any given time, one person is doing all of the coding (pilot) while the other is thinking and planning ahead of the current coding (navigator).
Lastly, some friends felt that pair coding was simply working together on some code with a colleague where you are both looking at the same screen, problem solving together whereas others felt that pair coding was a strict practice in which every 20-30 minutes, the two programmers switch roles and adhere to this for long periods of time, even when there is no "problem."
An interesting point was brought up about pair programming being potentially inefficient if done 100% of the Time. For example, say a project requires 500 lines of "boilerplate"/mindless code to setup. Pair coding this could be using 2 engineers when only 1 is needed. But when a programmer hits a "wall" on a specific problem, pair coding can often increase productivity because it brings 2 minds, experience levels, and frames of reference to tackle the problem. So in this case, it raises the question - is pair coding strictly adhered to at all times or is it only done when a specific problem needs to be solved?
How do you feel about pair programming? Has it been useful to you?
No responses yet.