Most development managers innately understand that code review is an indispensable strategy to improve software quality. What many managers don’t know is that time invested in the up-front process of code review not only saves time later, but also helps managers position themselves more strategically within their organization.
As a development manager, you likely already understand how code review improves software quality. But have you thought about how code review can benefit you directly? There are four important code review benefits that can reduce your stress levels and increase your visibility in your organization.
We often use the phrase, “code review saves time.” However, managers of Agile development teams convey frustration with this perspective, saying that adding yet another activity to already tight sprints was not viewed as a time saver. Many Agile teams fear that reviewing code is too time-consuming a step to add to their sprints.
We hear you. We feel your pain. But we have a different view.
Consider this: If the code you pass over to QA has fewer bugs and anomalies, then it stands to reason that QA cycles will shorten. There are plenty of Agile code review successes that substantiate this reality. Many Agile team managers have found that the time invested in code review is made up during QA.
Code passed to QA that has better code quality (i.e., had been reviewed) decreases QA time. These Agile managers and Scrum masters also found that the constant interaction and collaboration about the code provided needed communication among developers regarding existing coding standards, especially important to Agile teams since they often have fewer artifacts to reference when questions arise.
By periodically examining metrics, you can measure and trend your software’s quality over time and understand what aspects of the code tend to be the most complex. For larger development teams, careful interpretation of metrics provides helpful insight so managers can align resources with anticipated demand spikes (i.e. post-release support and defect remediation.)
Metrics also come in handy for managers wanting to streamline ongoing resource planning, including new feature costing and estimation refinement.
3. Knowledge Sharing
The knowledge transfer that results from code review is an unheralded yet significant benefit. Knowledge sharing reduces the risk of gaps in expertise across your team. That mentoring component of senior developer to junior developer is invaluable—it establishes a coaching relationship that gently fosters skill sets across the team.
The unexpected gift for managers is even more appealing: Knowledge transfer can reduce your long-term project costs. That’s right – collective insight into the code base, coding conventions and standards not only eliminates confusion and mistakes in your imminent release, but it also reduces unanticipated costs that result from catastrophic defects and technical debt arising from future software evolvability issues.
For these reasons code review is truly a strategic activity that all development managers should seriously consider implementing if they haven’t already.
4. Issue Detection
Code reviews are not just a huge part of the software development life cycle, they are also an essential process for any development organization that creates complex software. Information system managers need the power to predict and plan the long-term evolution of their systems on an objective, quantified basis. This is a pretty difficult task, especially when a system is deeply embedded within an organization’s business processes. Simply put, managing software evolution and estimating the extent of future projects takes a lot of work!
Perhaps the most popular justification for spending time on code review is to increase code quality. New features and enhancements can cause downstream issues in maintainability and performance if not properly integrated.
Code reviews can reveal issues related to the inner quality (evolvability) of software, because reviews find defects in the system whether they’re visible to the user or not. Since evolvability defects are not visible to the customer, some people believe that they can’t cause a system failure. In reality, evolvability defects can have a huge impact on the cost and quality of the final product.
To read more about how peer reviews can up the quality of your code, download our eBook:
- High-Availability Basics for Developers
- Embedding Jython in Java Applications
- Your Death By Kerberos