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. |