One of the most important lessons we’ve learnt over time is that we are unable to provide unbiased, objective opinions of our work, let alone check it for errors. In no ways is this an admission of inferior quality of work, as we humans are liable to err due to many reasons.
This is why we as software developers need another developer of equal or higher skills to review the code produced.
“If debugging is the process of removing software bugs, then programming must be the process of putting them in.” – Edsger Dijkstra (Dutch computer scientist, winner of the 1972 Turing Award)
The reasons for code reviews vary based on many factors, including but not limited to, the project, the client, the developers and quality assurance processes built into the development cycle. Their biggest impact, however, lies in,
- Teaching and knowledge sharing
- Ensuring coding standards
- Defect-free software
Other very common outcomes are security, scalability, maintainability and complete unit tests.
How does it work?
“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” – Brian W. Kernighan (Canadian computer scientist, co-author of “C programming language”)
Code reviews are performed by developers who played no part in its creation in order to provide objective, unbiased feedback. Such feedback is not necessarily positive as their end goal is to maintain code that is readable and clear to everyone, not only for those deeply involved in the project. Such reviewers of code usually possess a checklist to find common mistakes and validate it against the company’s coding standards.
Code reviews should take place during all stages of development, except for demos or experiments. This is all the more important when the project is nearing its end, as code reviews can greatly reduce the number of bugs and are essentially a developer’s insurance for the company’s coding standards. Code reviews also go a long way towards reducing the development costs as finding and fixing bugs during development will be cheaper than finding them later on.
The code review checklist looks for common mistakes and those that are typically harder to find such as:
- Thread synchronization
- Error conditions
- Accounting for reference-counting
- Resource leaks
- Security problems
Remember, software development is a constant process that needs regular updates, which is why we place a heavy focus on code reviews to ensure the created code is clear to any developer who might read it. They help keep the code organized and create a space for making comments which can be priceless for another developer who might be given the job of updating the said code late on.
They also allow a developer to pass tacit knowledge gathered from the initial mistakes made at the beginning of development to a developer who might be new to it. Code reviews are therefore an excellent means of transferring knowledge between experienced developers and rookies.
Code reviews help launch successful products and save money. It is also a great way of transferring knowledge from senior developers who can offer their advice to juniors, whilst the juniors can help to find errors in the code. Remember, good code review practices should be integrated into any software development cycle as they are the hallmarks of a software house you can trust.
Have an idea that we can help with? Tell us more about it here.