When pairing, better communication equals better code.
Communication is easy in theory, but difficult in practice. I am an introvert by nature, but even though I know listening is an important communication tool, I need to learn to take an active role. One of the important new developments in my life is working for Hashrocket. I now work in a pair constantly, which is drastically different from programming alone. Pair programming is about constant communication to create better software.
Over the last few months, I have learned a lot about what communication is and what it is not. I’ve learned that you must be willing to admit mistakes, and understand that disagreements are not personal attacks—they are part of the communication process. I’ve learned that communication is really about understanding. Understanding is hard because it takes patience and willingness to devote attention to others. As a programmer, this is challenging because I am so focused on solving a technical problem, I sometimes fail to communicate. I have now discovered that there are many times when a deep breath and calmed down description of the problem can help everyone to rethink the problem and to ensure that you are really working on the same problem.
Another part of communication is understanding people’s quirks. I have been fortunate enough to work with a great set of programmers who, for the most part, share my sense of humor. However, I realize that you have to be aware how your pair reacts to jokes and respect their boundaries. This comes back to being aware of your pair, and knowing that everyone may not like the same things, or see the world the same way you do.
My simplified list of communication rules is that you pay attention, try to have patience, and know that your pair is working toward a common goal. I think that if you use these rules (and a little bit of compromise) you really can communicate and in my case, make better software.