Code review helps to spread knowledge and best practices around code across the team. It helps the team to grow as a unit. Some teams grow horizontally like front end team, database team and server management team, whereas other grow vertically on specific product features. Code reviews can help all kind of teams to grow and learn across the code base.
Why do we need code review
- A specific feature expert in the product can end up with all of the responsibility of the feature and if they leave or take a vacation then a major problem is created to maintain and manage that feature.
- Onboarding of new team members
- Discovery of bugs
- Better performing code
How to achieve it
- Code review should be a separate step in the sprint workflow, so that its visible to everyone.
- If required a waiting state can be added before code review, like waiting for code review, so that a bottleneck can be highlighted.
- QA team should be involved in the code review. ( Not sure if our QA team is able to do that with their Java experience )
- Code reviews should be done in a non-disruptive way, asynchronously when its a natural stopping point for the developer and reviewer.
- Code review feedback should be passed through an automated tool like version control system (Copy to JIRA for reference), so that it is easily managed along with the code. ( I have installed the subversion plugin to JIRA, so that we can associate our SVN comments into JIRA )