What is the Goal Question Metric (GQM) approach?
The Goal Question Metric approach, or “GQM”, is an approach to software metrics that improves and measures the quality of software.
GQM is broken down into three levels:
Goals (conceptual level): Define the purpose, vision, and objectives of an initiative.
You establish goals for an initiative, considering the quality of that initiative from various perspectives and in a variety of contexts.
Setting a goal for an initiative is never easy, especially when you consider the different quality models that are always in play. Different points of view can make it easier to decide which model applies best to your environment.
Questions (operational level): How will this initiative achieve its goals?
The initiative is modeled using a few questions in order to gather insight about how it will achieve its goals. Questions help determine: “what”, “where”, “who”, and “when” things are done.
Questioning helps identify responsibilities, constraints, and prerequisites. It also reveals interrelated goals and their purpose in the context of the initiative being questioned.
Questions aim to understand all sides involved in achieving a goal; therefore, they can be used in the context of any goal.
Metrics (quantitative level): Describe the quantifiable value that helps create a shared understanding of what is being measured.
A set of goal metrics, based on the models, is associated with every question in order to answer it in a measurable way.
Based on the models, a set of metrics is associated with every question. The aim is to have a set of metrics associated with every question in order to adequately answer it.
GQM is used in the same way as traditional metrics. While metrics are quantitative, goals and questions are qualitative: they have value without a unit of measure.
They must be applied strategically to obtain information about why an initiative is important and how it will achieve its goals
There are three types of metrics:
Overview: This is the level of an initiative. It describes what an initiative is and what it wants to accomplish. Its purpose, vision, objectives, and benefits are described at this level.
Philosophy: Why is an initiative valued by the organization? The approach(es) it takes to reach its goals will be defined through a philosophy.
Planning: When does an initiative occur? How is it done? Who is responsible for each piece of the initiative? What constraints and prerequisites exist?
A metric could be objective (average time to complete, defects per line of code) or subjective (customer satisfaction, employee satisfaction).
Metrics are typically quantitative (e.g.: average time to complete). Goals and questions are qualitative: they have value without a unit of measure.
GQM helps you answer key business questions
GQM is used in the same way as any other metrics. It is applied strategically by asking these types of questions:
What are we trying to accomplish? Why do we care? What will be different because of it?
Why did this initiative fail, and what can we learn from that failure? Understanding why an initiative failed or succeeded is important.
If an initiative was successful, what metrics helped demonstrate that success? What business outcomes were realized because of it? Examples: reducing time to market by 2 weeks; doubling sales over the previous year; decreasing maintenance costs by 25%.
If an initiative was not successful, what contributing factors might have affected its failure? Examples: not enough time for the developers to finish; not enough marketing support.
If the answer is NO, then you need to re-think your approach or adjust your assumptions, so that you can achieve value by doing this differently. For example, if a developer worked for two weeks straight before running out of time, but had no time to test their code, then you need more time (e.g.: half-days, weekends, or overtime) for testing; additional marketing support is needed if sales are not increasing.
Your GQM approach should address these four questions:
Have I answered my question? The easiest way to find out whether you have answered your question is to see whether you can demonstrate positive, or at least definitive, business results.
What have I accomplished? A successful initiative delivers value in its execution intentions. It achieves the benefits that are intended for the organization and its customers, not what was originally expected. We need to make sure we have achieved real business outcomes (ex: increased productivity, reduced costs).
What do I need to do differently? Did anything go wrong and why? Answers will help you avoid future problems. If the initiative had non-value-added activities (i.e.: rework), then what needs to be removed or done differently in the next cycle? If there are too many changes in the requirements, then how can you predict these better and factor them into your schedule?
What’s working well, and how can this be applied more broadly? What did you discover that needed change? The GQM approach fosters learning and improvement—what we learn from one initiative informs us about what to do differently or better with the next.
The goal is to use the GQM process to understand why you sought to do something (i.e.: what the initiative’s objective was) and how it achieved its goals (the outcome). This will help you improve upon your future initiatives, which will lead to a better end-to-end product or service that helps you achieve your goals.
More philosophy, less framework
GQM is not intended to replace other metrics, but rather provide a different way for solving problems. It’s more of a “philosophy” than a “framework”.
It approaches metrics from the viewpoint of how to get information about why an initiative was important and how it achieved its goals, not just reporting on what happened in terms of what you did or spent. It is intended to help make decisions by answering the question: why is this important?
The main reason we use goal metrics at all is to obtain information about why an initiative was important and how it achieved its goals. We can do that with GQM as well, but the way we do it is different. In other words, GQM is both a philosophy and a framework for software metrics.
More information on GQM can be found here.