"Code review", for those of you who are not familiar with the terminology, is the practice of reviewing code written by another developer/programmer in a development team. Here are my brief thoughts on how and what a code review process is and should be about.
Is there an Emotional Side to it?
Much too often, code reviews are sought with distress. This can easily be attributed to a lack of understanding as to the purpose of a code review. A code review policy in a team should be aimed at creating and maintaining a consistent, structured and standardized code base. Nothing more, nothing less.
So We Got the Essence of it... Now What?
To achieve all of the above, we need to come up with a list of processes and tools that can help achieve our goals. To get you started, here are a few:
- Determine when you will conduct your code review, is it after each development iteration, is it after testing?
- To achieve standardization, create a guide and update it regularly with necessary checks you want to cover with your code review. Here are a few to start with.
- Check for hard coded data.
- Check for performance bottlenecks IO operations, DB connections, etc.
- Check for adherence to naming convention.
- Train your team in your code review process.
- Regularly discuss your code review policy with all involved. Remember code review is not a solitary exercise and your code review policy will have a wider acceptance when everyone's opinions/ideas are heard.
- The code review exercise is not one just for your Team Leads. Anyone and everyone in the team should have the ability to conduct a code review. This will help inculcate your coding standards across the team.
Here are some tools that can help with your code review objectives:
- A good code repository that can help you identify the code required to be reviewed
- A good diff tool that can highlight the differences between the latest and previous versions of your code
- A good refactoring tool that will automate most of your code review process
I'd like to end my thoughts on the code review process with the following.
For the reviewer: Focus on the code, not the developer! This is an opportunity to learn for you too, you can learn how to do it or how not to do it, so keep an open mind.
For the developer: This is not a critic of your coding skills, but an exercise to improve the code in the code base.