Quality Gates

 

Controlling and Steering Software Quality

Issues concerning the quality of software products still pose a significant problem. IEEE Std 610.12-1990 (IEEE Standard Glossary of Software Engineering Terminology) defines software-related quality as:

  1. The degree to which a system, component, or process meets specified requirements.
  2. The degree to which a system, component, or process meets customer or user needs or expectations.

Especially the latter aspect poses a problem because of the well-documented symmetry of ignorance between customers and developers. Consequently, requirements most likely will not be captured completely or will be captured at a level which is too abstract. A systematic requirements engineering including the capturing of use cases, elicitation techniques and user interface mockups helps to complete the requirements. Refining techniques such as quality models help to transfer abstract quality requirements (e. g. flexibility and usability) to a measurable level.

Quality assurance includes three different areas:

A great number of software companies conduct Quality Gates to analyze the quality of their software products and to take actions in time. The following section explains the Quality Gate concept in more detail.

The Quality Gate Concept

Quality Gates are significant milestones and decision points within a project [1, 2]. At each Quality Gate products are evaluated against predefined and quality focused criteria. Based on the fulfillment of these criteria gatekeepers (which are usually part of the quality management) make a decision whether a project may proceed or not. Consequently, the quality situation of a project can be uncovered to the management and actions can be made in time. Quality Gates are often used in certain domains, e. g. in car development or in serial production of industrial goods. In the domain of software development Quality Gates are used cumulatively in the last years.

A software company can use Quality Gates in two ways (we will refer to them as strategies):

Figure 1 depicts a typical waterfall process, while figure 2 shows a possible network of Quality Gates. Obviously not every activity must be completed with a Quality Gate. It is also possible to run a project without any Quality Gate. Especially for small projects Quality Gates pose an extreme overhead. On the other hand large and risky projects require the maximum set of Quality Gates in order to ensure product quality.


Figure 1: Waterfall process model

 


Figure 2: A suitable network of Quality Gates for a waterfall like process

Assessing the Quality of Implementation

A Quality Gate reference process encapsulates special structures, activities, methods, roles and documents, which can be implemented by a software company individually in order to satisfy their quality and business goals. This Quality Gate reference process then can be tailored to meet the needs of a special project. The result is a Quality Gate process, containing a set of criteria and a set of Quality Gates.

The main idea of our assessment concept is very close to the idea of process maturity models such as SPICE and CMMI: it does not matter how a software company implemented a Quality Gate concept because the actual implementation depends on the company's size and its domain. Rather it is only relevant to rate the degree of implementation of a each concept. Nonetheless, a faulty implementation of a concept can cause problems even if the concept is fully implemented. Based on this idea all concepts can be assessed on a three-valued ordinal scale. The following listing explains the values of the scale.

A ? denotes a fully implemented concept. This means that it is clear, how the concept has to be mapped to a project in order to be applicable. A fully implemented concept must be fixed within a process description. For example a role with a clear and fixed ability profile is a fully implemented concept.

A ∗ denotes a partly implemented concept. A partly implemented concept must be interpreted in order to be applicable. Partly implemented concepts often are fixed as an abstract description or a written description is missing, but is intuitively clear how the concept has to be applied. Sometimes it is necessary to leave a concept abstract because it must be applied to different business units of the software company. For example the protocol concept is partly implemented if most people in a company know how to write a protocol but there is no fixed guideline.

A ο denotes an unimplemented concept. Reasons could be:

Figure 3 shows an assessment of different Quality Gate reference processes.


Figure 3: Our assessment concept applied to Quality Gate reference process



Different consequences might arise from shortcoming in the implement Quality Gate reference process. For example an unimplemented gate network concept might result in a lower comparability and quality level, because different sets of Quality Gates might be applied.

References

  1. Flohr, T. NetQGate - Tool Support for Quality Gate Processes, in 9th International Conference on Quality Engineering in Software Technology (CONQUEST). 2006. Berlin: dpunkt.verlag.
  2. Knauss, E. and T. Flohr. Managing Requirement Engineering Processes by Adapted Quality Gateways and critique-based RE-Tools, in Workshop on Measuring Requirements for Project and Product Success at 19th International Conference on Advanced Information Systems Engineering. 2007. Palma de Mallorca, Spain.