One of the huge benefits I've found from code reviews is that my reviewer will say, "Actually, we've faced that problem before and there's a solid and proved solution in our utils that handles it already, along with a couple other cases. How about you change it to use that instead?"
1 - Suggestions on where problems have been solved before. (Your point)
2 - Having people say, "Here's the style we use to make this easier to support in the future"
3 - Mentoring on tougher problems, and turning quick hacks into elegant solutions.
4 - QA. (This is the stated benefit, but falls below the other 3)
The key is not to turn code reviews into a bottleneck. If you just view the purpose as any 1 of the 4, you're likely to under-prioritize or over-formalize it.
Comments
Can you expand on what you mean by this? What cultural benefits are you talking about?
One of the huge benefits I've found from code reviews is that my reviewer will say, "Actually, we've faced that problem before and there's a solid and proved solution in our utils that handles it already, along with a couple other cases. How about you change it to use that instead?"
Yes - building on this, I see 4 quick benefits:
1 - Suggestions on where problems have been solved before. (Your point)
2 - Having people say, "Here's the style we use to make this easier to support in the future"
3 - Mentoring on tougher problems, and turning quick hacks into elegant solutions.
4 - QA. (This is the stated benefit, but falls below the other 3)
The key is not to turn code reviews into a bottleneck. If you just view the purpose as any 1 of the 4, you're likely to under-prioritize or over-formalize it.
Additionally, just knowing that code reviews are going to happen often results in developers putting in more effort to submit quality code.