Program inspections are effective for the following reasons:
1. They can find several faults in one pass without being concerned about interference between program faults.
2. They bring a number of people with different experience of different types of errors. Hence, the team approach offers greater coverage than any individual can bring.
3. They force the program author to re-examine the program in detail - this often reveals errors or misunderstandings.
The types of errors that inspections are unlikely to find are specification errors or errors that are based on a misunderstanding of the application domain (unless there are domain experts in the team).