Home About IUP Magazines Journals Books Archives
     
A Guided Tour | Recommend | Links | Subscriber Services | Feedback | Subscribe Online
 
Projects and Profits Magazine:
Software Projects: Role of a Code Reviewer
:
:
:
:
:
:
:
:
:
 
 
 
 
 
 
 

As the global economy goes through arguably its worst ever crisis, the onus is on software firms to deliver projects free of defects, thus saving hundreds and thousands of dollars on rectification. The importance of thorough code reviews cannot be over emphasized to ensure that the code is delivered, with very minimal or zero defects. Given this scenario, the role of a "good" code reviewer is significant. The article takes a critical look at the role of a code reviewer and the challenges a project manager faces in identifying "good" reviewers. The article also looks at the best possible practices to ensure quality delivery of software projects.

 
 
 

What it takes to improve the reviewer capability, is certainly a concern in the minds of most Project Managers, as well as the most meticulous reviewers. The reasons are not too difficult to comprehend. Organizations are increasingly seeking to reduce the average cost of building applications/software products, which, in itself, translates to "doing it right the first time" and reducing the cost of rework. The cost of fixing defects increases exponentially at various stages of the Software Development Life Cycle (SDLC) (Table). Overall, this also means reducing the cost of production and teams constituting resources with varying abilities, coding styles, standards and last, but not the least, experience levels. There is a drive within the organizations, to staff the project teams with rookies, which also puts the onus on relatively fewer experienced resources, having to take up the unenviable task of determining the fitness of purpose for each unit/module of code. Though the phase of development is well supported by various levels of testing, it is to be remembered that all such activities should be categorized under Failure mode (reactive efforts) as per COQ (Cost of Quality) definition, whereas only review activities can be considered under appraisal category.

There is considerable commonality in all types of review tasks - be it architecture, design, or code review. The primary difference is in the level of abstraction with which one looks at things and, of course, the expertise/profile of the person being called upon for review. Conceptually, all types of review activities should be similar. However, for the purpose of this article, we shall focus on the topic of `code review'; while there can be generic applicability for the points discussed with the two other types of reviews as well.

Firstly, the review activity is a very detail oriented task. We can recall the saying "The devil lies in the detail", which aptly describes the task cut-out for the reviewer, i.e., unravel the detail (maze of code) and find what is (can be) an erroneous situation. So, the capacity to deal with an incredible amount of detail with ease is a huge plus point for being a successful reviewer. We tend to refer to a certain category of people as "The devil's advocate" who easily foresee what can go wrong. If we were to talk from a `DeBono's six thinking hats perspective' - it is the black hat that we are after. So, identifying and developing such people as reviewers is a crucial task in the first place.

 
 
 

Projects & Profits Magazine, Global Economy, Software Development Life Cycle, SDLC, Coding Styles, Architecture, Design, Ensure Quality Delivery of Software Projects, Software Products, COQ, Cost of Quality, TSP, PSP, Testing Stages, Cost of Fixing Defects, Unit Test, Integration Test, System Test, High-Level Design, Low-Level Design