Do do we still need Codereviews when we do Pairprogramming?
This is a regular question posed at trainings and when the topic Pair programming in general is coming up in discussions.
I actively advertise Pairing as a way of reducing the amount of time spent in Codereviews. However, there seems a notion to write blogposts that put these two things into a relation with a clear “vs.” apporach. A lot of them are named Codereviews vs. Pair programming. I have collected some of those that I found to be remarkable:
Coding Horror - Jeff Attwood - seems to be in favor of pairing, sees the value in both but prefers Pairing for the social factors. It is easier to critique and tak critique.
Theodore Nguyen seems to see the value of Pair programming greater than Code Reviews. I can understand that. But I would really add that it depends on the type of Codereview and applied technique.
Here is another by Paul Hinze giving a lot of detail on how to use both “correctly” and calls for pragmatic choices. I would dare you to read it when ou do one and want to move from one to the other. Maybe you can stay with Pairing and just improve the way you are doing it
Here is another one, making the point that Codereview is not Pairing (and vice versa). He seems to focus on the change of perspective that you have when you review code.
Cockburn says “Pair programming is contiuous Codereviews in his landmark paper on the topic. If you dont know it yet: Read it.
William Caputo makes the point that you can choose none, both or any. I object this, on the other hand the point he is making with “Pairing is deep, Codereviews are wide” is pretty much on the spot.
SO WHAT IS MY TAKE ON THIS? PRETTY EASY!
First: The usage of vs. is just a provocation that might lead an uninformed person into the notion that one replaces the other. This is not the case.
Second: Pairing will change the way you do Codereviews and vice versa. My take is: Start with one of these things. learn how to use it and then start experimenting with the next one. These two things are closely related and one thing ís highly probable: Codereview results will be much more about the “hard things” and less about coding conventions or other smaller things and less important things that seem to fill so much of them. They might get you less results then in the Number of findings, but you have ore time to discuss the harder problems. And this is why you do code reviews in the first place.
A good chance to learn about this relation will be my pair programming Training in Munich on 03.+04.12.2014 in the Offices Mayflower. Come and see how this works together. Chance is: If you are using one og these techniques, the other can help you improve.