Pair programming always works.
To explain why, we will take a look at an important study which explains how people learn in social contexts.
The Social Learning Theory
In the 1960's and 70's, a psychologist named Albert Bandura and a group of his colleagues conducted what is now known as the Bobo Doll Experiments. In these experiments they observed how children reacted after witnessing adults treat the Bobo Doll aggressively while playing with it. Then, at the end of the session, the adult would either receive a punishment, a reward, or no consequence at all. The children were then observed to see what types of behaviors they exhibited after witnessing a particular adult. Bandura and his colleagues went on to publish 5 key tenets of the Social Learning Theory based on their findings. They are as follows:
Tenet 1: Learning is not purely behavioral; rather, it is a cognitive process that takes place in a social context.
Tenet 2: Learning can occur by observing a behavior and by observing the consequences of the behavior.
Tenet 3: Learning involves observation, extraction of information from those observations, and making decisions about the performance of the behavior. Thus, learning can occur without an observable change in behavior.
Tenet 4: Reinforcement plays a role in learning but is not entirely responsible for learning.
Tenet 5: The learner is not a passive recipient of information. Cognition, environment, and behavior all mutually influence each other.
Social Learning Theory Explained
Learning is more than just "monkey see, monkey do." It involves bringing in memories and other mental associations in order to grasp new concepts and determine their usefulness.
Often times we look for an outward response in order to determine that learning has taken place. However, we cannot determine whether learning has taken place purely on the basis of whether or not the person is exhibiting different behaviors.
Reinforcement is anything that would encourage a person to repeat a particular action. Reinforcement is not entirely responsible because the absence of any type of reinforcement or even punishment can carry significant weight as well.
There is a cyclical effect that happens during the learning process. Once the learner learns something, their subsequent responses or behavior will, in turn, have an influence on their environment. This cycle will continue to repeat itself, causing everyone in the environment to be affected.
So, what happens when we pair?
I've heard Uncle Bob mention on several occasions that the biggest benefit to pairing is the exchange of knowledge that happens between two people. Interestingly enough, this can also be the reason why people have found pairing to be a let down upon trying it.
I say this because learning is always taking place during pairing. Each time developers pair up, both individuals observe and assess each other’s behaviors and then make a determination on whether those behaviors are good and beneficial, bad and disadvantageous, or seem to have no effect at all. This assessment is further compounded by the fact that any reinforcement, punishment, or inaction on the part of management, the company or anyone else in the environment can have a significant impact on the learning experience as well.
This leads us to a much more appropriate question. Instead of asking if pairing is working, we should be asking how pairing is working.
If pairing is not yielding positive results, it is likely because expectations haven't been clearly set. When the focus shifts to how pairing is working, there will be more emphasis placed on how each individual pairing session is being carried out and what is being learned during each one. Expectations for the session can be set up front in as little as a minute or two. When both parties briefly discuss and agree on what they hope to accomplish during their time of pairing, they are creating appropriate and realistic expectations that will guide the session and keep it on course. In turn, the behaviors exhibited during pairing sessions will improve as those involved seek to meet those expectations.
It's quite likely that anyone who has pair programmed has had pairing sessions that went extremely well and others that seemed to drag on and leave both people wondering what they'd accomplished. Even still, it is improper to say that pairing didn't work. It did, in fact, work--because something was learned during the interaction. But, if what was learned was not something that could be considered positive, it creates an opportunity to step back and take a look at what could have been done differently. When we do that, we are assessing how pairing is working. And, when we assess how pairing is working, we set ourselves up for a chance at more meaningful, positive and successful pair programming sessions in the future.
Bandura, Albert (1963). Social learning and personality development. New York: Holt, Rinehart, and Winston.