[SVN] Peer Code Review

I remember sitting in on code reviews early in my career. You took your code, put it up on a projector, and the architects—shadowy figures in the back of the room—ripped it to shreds. These marathon sessions would take all day and were completely exhausting. They certainly improved the code, but they wreaked havoc with both release schedules and people’s psyches!


Nowadays, I do code reviews a little differently. Instead of submitting our code to the senior architects, we do peer code reviews. Here’s how it works:
  • I go away and write some code, including tests for that code.
  • I run all the tests and tweak until I’m happy with the work. It functions, it’s structured properly, it conforms to all of our style requirements, and it’s got a really clever solution to that sorting problem.
  • I commit the code to my feature or developer branch. It’s not in mainline code yet, and won’t ship (this is important!).
  • I ask for review. If we’re working in Git, then I do it by creating a pull request. If we’re using some other source code management system, then I just ask for it based on the commit number, or create a patch.
  • Someone else on the teamworking in Git—might be the senior engineer, might be the intern—takes a look at the code. They look for bugs, structural problems, unintentional duplications, or any of the mistakes we developers commonly make.
  • I fix any problems brought up in the code review, or talk with the reviewer about why I did it that way. Repeat until we’re both happy.
  • One of us merges the code and checks it in.
If that’s the structure, what on earth are we doing? And what does an intern know about how we do things?
That’s actually the point. Code reviews aren’t about approval—they’re about learning. A peer code review provides a forum to spread knowledge around the team, including important things like how this feature works, or what patterns make sense.
It also provides a way to cover each other. Every one of us has a set of common mistakes that we make, and those mistakes aren’t the same as the mistakes our peers make. Doing a peer code review lets me catch that dumb thing that Jake always does, and let’s Jake catch that stupid error I always make, and it does it in a casual, non-accusatory forum.
Last, peer code reviews are deliberately done among equals. Anyone can review anyone else’s code, from the most junior to the most senior engineer on the team; it eliminates the ego and the defensiveness from code reviews.
Sounds great!

Comments

Popular posts from this blog

How to Choose a Technology Stack for Web Application Development

[Advance Java] Difference Between Apache and Tomcat

Setting ESLint on a React Typescript project