GQM, the initialism for "goal, question, metric", is an approach to software metrics  that has been promoted by Victor Basili of the University of Maryland, College Park and the Software Engineering Laboratory at the NASA Goddard Space Flight Center after supervising a Ph.D. thesis by Dr. David M. Weiss. Dr. Weiss' work was inspired by the work of Albert Endres at IBM Germany.
GQM defines a measurement model on three levels:
- Conceptual level (Goal)
- A goal is defined for an object, for a variety of reasons, with respect to various models of quality, from various points of view and relative to a particular environment.
- Operational level (Question)
- A set of questions is used to define models of the object of study and then focuses on that object to characterize the assessment or achievement of a specific goal.
- Quantitative level (Metric)
- A set of metrics, based on the models, is associated with every question in order to answer it in a measurable way.
The open literature typically describes GQM in terms of a six-step process where the first three steps are about using business goals to drive the identification of the right metrics and the last three steps are about gathering the measurement data and making effective use of the measurement results to drive decision making and improvements. Basili described his six-step GQM process as follows:
- Develop a set of corporate, division and project business goals and associated measurement goals for productivity and quality
- Generate questions (based on models) that define those goals as completely as possible in a quantifiable way
- Specify the measures needed to be collected to answer those questions and track process and product conformance to the goals
- Develop mechanisms for data collection
- Collect, validate and analyze the data in real time to provide feedback to projects for corrective action
- Analyze the data in a post mortem fashion to assess conformance to the goals and to make recommendations for future improvements
GQM templates are a structured way of specifying goals. A GQM template contains the following fields:
|object of study||pair programming, static analysis tool|
|purpose||characterize, understand, evaluate, predict, improve|
|focus||programmer effort, program reliability|
|stakeholder||developer, customer, manager|
|context factors||(other important factors that may affect outcomes)|
Here is an example of applying the GQM template to express the goal of a software engineering study:
The purpose of this study is to characterize the effect of pair programming on programmer effort and program quality from the point of view of software managers in the context of a small web-development company.
Although GQM has served the software industry well for several decades, it never provided explicit support for integrating its software measurement model with elements of the larger organization, such as higher-level business goals and strategies. The GQM+Strategies approach was developed by Victor Basili and a group of researchers from the Fraunhofer Society. It is based on the Goal Question Metric paradigm and adds the capability to create measurement programs that ensure alignment between business goals and strategies, software-specific goals, and measurement goals.
- Basili, Victor R. 'Using Measurement to Build Core Competencies in Software'. Seminar sponsored by Data and Analysis Center for Software, 2005.
- Basili, Victor; Gianluigi Caldiera; H. Dieter Rombach (1994). "The Goal Question Metric Approach" (PDF). Retrieved 2008-11-12.
- Van Solingen, Rini; Egon Berghout (1999). The Goal/Question/Metric Method (PDF). McGraw-Hill Education. ISBN 0-07-709553-7.
- Basili, V.R.; J. Heidrich; M. Lindvall; J. Münch; C.B. Seaman; M. Regardie; A. Trendowicz (2009). "Determining the impact of business strategies using principles from goal-oriented measurement". Business Services: Konzepte, Technologien, Anwendungen. 9. Internationale Tagung Wirtschaftsinformatik. Books OCG. Vienna, Austria: Österreichische Computer Gesellschaft. ISBN 978-3-85403-246-5.