There are three different types of Quality Checks depending on the objectives and end deliverable:-
Inspections for defect removal (product)
Quality reviews (product and standards)
Reviews for progress assessment (product and process)
A review happens when a group of experts or subject matter specialists examines part or all of a process or system and its documentation to find potential problems. For example in a typical software project - code, designs, specifications, test plans, standards, etc. can all be reviewed. Outcome of review is documented and these documents may be 'signed off' by management, which signifies that progress to the next development stage has been approved by management.
Quality Inspection is a proven quality assurance method to identify problems and correct them early stages of the project lifecycle. This technique requires a pre-defined process to be followed so as to ensure inspections are well planned, prepared, and successfully conducted. Defined roles and responsibilities are assigned to the participants so as to ensure that the inspection meetings are focused and productive.
These are peer reviews where engineers examine the source of a system with the aim of discovering anomalies and defects. An inspection differs from a review from the point that Inspection does not require execution of a system so it may be done before implementation. They have been shown to be an effective technique for discovering potential errors. Usually Inspections uses an Inspection checklist. Checklist of common errors should be used to drive the inspection. Error checklists are project dependent and reflect the characteristic errors that are likely to arise in the particular project work.
Agile methods and inspections
Agile processes rarely use formal inspection or peer review processes. Rather, they rely on team members cooperating to check each other’s work, and informal guidelines which suggest that engineers should check their own work. For example in a Extreme programming practitioners argue that pair programming is an effective substitute for inspection as this is, in effect, a continual inspection process where two people look at every line of code and check it before it is accepted.
Problems with Quality measurement
It is difficult to quantify the return on investment of introducing a quality metrics program
There are no universal standards for certain metrics or standardized processes for measurement and analysis
In many companies, processes are not standardized and are poorly defined and controlled
At many places on quality measurement are merely focused on formula-based metrics and not on plan-driven quality processes
In smaller projects Introducing measurement adds additional overhead to processes
A quality metric should be a predictor of product quality. There are two Classes of product metric:-
Dynamic metrics which are collected by measurements made of a program in execution. Dynamic metrics help assess efficiency and reliability
Static metrics which are collected by measurements made of the system representations. Static metrics help assess complexity, understandability and maintainability
Techniques to improve quality – Inspections
When a piece of work is completed, distribute copies to co-workers
Coworkers need to spent time individually, going through the work noting defects
Held a meeting where the work and issues are discussed
A list of defects requiring re-work is produced