When does an organisation need code inspection?

From the software quality point of view, deploying code inspections is always beneficial. It might not always solve the organisation's biggest problems, but it is a step in the right direction. It provides structure, rigor and closure to the software construction.

Structure enables predictability, it is possible to tell when you're done with coding. With structure you'll get the chance to alter your point of view.

Rigor means that the code inspections are an inseparable part of the coding process. Inspecting code is a natural phase in constructing software. It is a habit.

Coding is done when the code passes its tests. Especially for big systems, testing might take a long time and be conducted by other people than the programmer himself. The programmer performs the code inspection on his code with his peers as soon as it is ready and if it is good enough, the code passes to testing. This provides an immediate end to the coding phase. The programmer knows that from code quality point of view, he's done well enough. He has closure. Testing will later prove if the functionality is complete and correct, but for now the programmer is relieved.

With regular code inspections it is clear that the organisation cares about the code quality. In the Pragmatic Programmer, Thomas and Hunt use the "broken window" theory to elaborate on this caring issue. The gist of the matter is that if a window is broken and not fixed in a timely fashion, the whole house becomes trashed very quickly. The same can happen to software source code. If unnecessary complexity and extraneous comments and magic numbers and duplicated logic are allowed to remain in the code base for a long enough time, everybody will notice that quality is not cared for. This lowers the motivation to keep own coding to a high level, which quickly leads to the quality deteriorating all over the code base. It is necessary to show with practical actions that software quality is cared for.

Here's a list of symptoms that are tell-tale signs of software quality problems. How the situation changes when regular code inspections are deployed is also explained.