Code Review Is an Architectural Necessity
May 2016 • Presentation
This presentation focuses on quality attributes valued by a team that conducts code reviews, and how code review enables these attributes in a system architecture.
Software Engineering Institute
This presentation was created for a conference series or symposium and does not necessarily reflect the positions and views of the Software Engineering Institute.
A wealth of material covers code review from a code quality standpoint, tracking a host of metrics and generating enough Big Data to employ a small army of analysts at some companies. But introducing code review at the architecture stage seems rarely to be done; it may even be sufficiently rare to qualify as novel. In this presentation, I will focus on some quality attributes valued by a team that conscientiously conducts code reviews, and how code review enables, but does not guarantee, these attributes in the team’s systems architecture: accountability, accuracy, auditability, debugability, efficiency, evolvability, failure transparency, inspectability, learnability, maintainability, manageability, modularity, predictability, repeatability, safety, serviceability, simplicity, standards compliance, testability, traceability, and understandability. I posit, based on my own meandering experience across several projects, both open and proprietary, that these quality attributes are enabled by code review and saved from being poorly timed afterthoughts or patches onto an architecture. To do so, I’ll analogize lawyers, debt collectors, and credit ratings.