Everyone knows what benefits code reviews could bring to a project: enhance quality, knowledge sharing of the code base, a way for developers to learn from each other.

After many years of being on both side of the table, I have to say, despite all of the benefits, code review sometimes can be frustrating and metally tiring, especially when confilcts arise, and neither the reviewer or the reviewee want to back-off on a heated discussion.

There are already many guidelines about how to code review principles, and what to look for in a code review. But into the execution, there will be always different in taste and views among developers - conflicts will happen and no side of the table wants to back-off. It often can be resolve by involving a 3rd person into the discussion and ripe all the benefits of democracy. For big discussion (like code that affecting the project in architectural level) - it makes a lot of sense. But if the need to involve a 3rd person arises too often, there might be something wrong with how the team approaching code review.

Maybe a fun analogy is something like: two kids fighting and always come to parent for resolution. How to help those kids to grow up and resolve the problem themself? And yes, I am sometimes can be quite stubborn, and behave like one of the two kids.