Over the course of two days this week a co-worker and I paired up to work through an enhancement for our current release. I have paired up only a little before this and I found doing it for almost the whole day to be very productive. We covered a lot of ground and got through some demanding code. I have to admit I didn’t drive. I need to work on alternating driver and observer.
“Pair programming is an agile software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in. The two programmers switch roles frequently.” – From Wikipedia.
I know some companies will pair for everything and some will pair for only larger changes. I also know that pairing may not fit all personalities well. Some developers like their personal space and time. I can respect that, but I do see the advantage of the extra set of eyes on designing a new feature.
Are you pairing at your work? If so how often do you pair? And how often do you alternate?