6

I was thinking, we are taught to perform code reviews, inspections etc. but in reality, does anyone really do formal (Fagan) inspections? I cannot find anything on the topic.

9
  • 4
    I bet they do! May 30, 2016 at 9:35
  • Yes, I believe that critical systems (power plant control etc.) will use it.. But even for this I cannot find some references.
    – Melioer
    May 30, 2016 at 9:37
  • @MainMa wow big article, but really worth reading May 30, 2016 at 10:07
  • Yes, I always send my documents for a review (if that is what you meant). Only stupid people think they know everything. May 30, 2016 at 10:08
  • 1
    I really liked the audacity of the now deleted answer that compared these inspections to unit testing. The parallel is actually very insightful.
    – user44761
    May 30, 2016 at 11:40

2 Answers 2

7

Fagan inspections are meant to catch errors in early phases of an explicitly waterfall process so that the team is less likely to have to move back up the process to fix errors, because doing so is extraordinarily expensive.

Waterfall processes in general and the work products that support them have fallen very much out of favor for consumer software because the cost of being late to market is much higher than even the cost of rework in most cases.

However, if you are writing something that must work correctly the first time, then a waterfall process and Fagan inspections are the way to go. I expect they are still extensively practiced within organizations like NASA and aeronautics. I once chatted with a programmer from Honeywell and he commented that he spent so much time in inspections that he was lucky to write one function a day, but that one function was so well specified and reviewed that it was virtually impossible for it to be incorrect. (Note the "virtually" in the sentence. The Mars Polar Lander and Ariane 5 maiden flight are famous examples where even that level of inspection failed.)

-4

Yes they do, I would say that is what is usually known as unit testing - not code reviewing.

From the linked Wikipedia article: "Fagan Inspection defines a process as a certain activity with a pre-specified entry and exit criteria. In every activity or operation for which entry and exit criteria are specified Fagan Inspections can be used to validate if the output of the process complies with the exit criteria specified for the process."

Unit tests test units of code by pre-specified entry and exit criteria. Note that no where in that article it says that the 'review' has to be performed by a human reading code with their eyes. It is explicitely about comparing input and output, and says nothing about how well-written a piece of code is. Unit testing is an automated way of reviewing if a piece of code with a pre-specified entry, fulfills the pre-specified exit criteria.

So yes, many software developers do Fagan inspections - but those are not code reviews, they are unit tests.

4
  • 1
    Sorry, unit tests are something different. Point of inspection is to go through the code with careful examination, usually takes days and involve several experts.
    – Melioer
    May 30, 2016 at 14:14
  • I think this is an interesting take, but at best you could only consider unit tests as one form of inspection for one particular type of document. Fagan inspections define a process for inspecting the correctness of any process, including requirements gathering, design and documentation. It isn't just for code like unit tests are.
    – Daniel T.
    May 30, 2016 at 14:26
  • 2
    While the phrase you cherry-picked out of the Wikipedia article does bear some superficial resemblance to unit testing, unit testing itself is not mentioned at all, which seems like quite a glaring omission. I have to conclude that Fagan Inspection doesn't have anything to do with unit testing, despite the superficial resemblance implied by "pre-specified entry and exit criteria." May 30, 2016 at 14:30
  • @RobertHarvey I would add that cherry-picking from that article should be done very carefully to avoid occasionally catching phrase "formal software inspections" which refers an article that makes it abundantly clear that inspections are only about code review and have nothing to do with unit testing
    – gnat
    May 30, 2016 at 15:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.