Building inspectors will examine a house at different stages of completion. They are usually a licensed professional engineer specializing in a specific area and qualified to determine if it meets code. The end goal for the building inspector is to ensure that the house is being built to the best practices for each area.
There are a multitude of shortcuts that can be taken while building a house. Each shortcut may result in a less reliable and\or safe house. The great thing about a house is that these shortcuts can be physically seen and examined. An inspector can physically spot and touch a cracking foundation, broken water pipe, and faulty wiring. The building inspection process is done in stages and can even pause construction if an inspection does not pass.
In software development, peer reviews, static analysis, unit tests, and a multitude of other tools help ensure the software is written correctly. However, few methods ensure the software has been architected correctly for the environment in which it will run. The issue with software is that it is not easy to spot a memory leak or a non-thread safe function. Sometimes even poorly written software will run without problems for a very long time.
Just as we depend on our houses, we also depend on the software in our cars, planes, and traffic lights to keep us and our family safe for many years. I believe software should be held to higher standards and there should be “building inspectors” during the stages of development to ensure quality, well-written, reliable software.
How do you inspect your software development?