At least one documented target or strategic concern endorsed by leadership exists in written form.
Goal Question Metric
Prerequisite
What needs to be finished first
The team has defined quarterly or annual OKRs with measurable key results.
Preparation
What needs to be ready before start
GQM table (Goal, Question, Metric, source, owner, cadence); current team metric inventory; template for metric briefs; whiteboard or Miro board.
A measurement program owner (Engineering Manager, Product Lead, or Data Lead); 2-4 people who produce and consume the data; a Data Analyst for source and calculation questions.
Current goals in short form; existing dashboards and reports with rough coverage; known metric pain points (for example contradictory figures); list of available data sources.
2-3 h
Prepare the table in three sections: Goals at top, then Questions, then Metrics. Set the rule: no metric without question, no question without goal. Add a separate Orphan Metrics section for items without anchor connection.
Core question
The one question this method answers
Which questions must we be able to answer to know whether we are reaching our goal, and which metric answers each question?
Flow
Marker: Phase
| Step | Duration | Action | Hint |
|---|---|---|---|
1Phase 1: Clarify goals | 30 min | For each goal, add detail in Basili's goal template: object, purpose, quality aspect, viewpoint, context. Example: reduce Mean Time to Restore for Service X from the Operations team perspective in production. | If a goal falls apart during clarification, split it instead of keeping it vague. Vague goals create vague metrics. |
2Phase 2: Derive probing questions | 45 min | For each goal, formulate 3-6 questions that must be answered to assess progress. Questions must be answerable with evidence, not opinion. | If a question is not answerable without assumptions, it is too abstract. Example instead of Are we fast enough: How long does a typical restore take in P95? |
3Phase 3: Metrics per question | 45 min | For each question name 1-2 metrics that answer it. For each metric document data source, calculation, aggregation, cadence, and owner. | No metric should appear in two questions without justification. Duplicated metrics usually indicate a too broad question. |
4Phase 4: Clean existing set | 30 min | Run all existing metrics through the GQM grid. Mark metrics without a question as Orphan and set a deadline for deactivation or attachment. | Do not tolerate orphan metrics silently. They are the main source of metric sprawl and conflicting reports. |
5Phase 5: Briefs and cadence | 30 min | Create a brief for each metric with definition, source, calculation, thresholds, and owner. Define review cadence (for example monthly, quarterly). | Without a metric brief, a metric is just a number on a dashboard. It becomes necessary as soon as there is a disagreement about meaning. |
Artifact
What comes out at the end
GQM table with three hierarchy levels and a metric brief per metric. Header with date, owner, and scope. Section for Orphan Metrics with deactivation date.
Semiannual snapshot with date. Changes to metric definitions with rationale in edit log; do not overwrite older definitions. Keep deactivated metrics with status retired and date.
- Confluence or Notion page with nested tables
- Google Sheet with tabs for Goals, Questions, Metrics
- DataHub or OpenMetadata glossary linked to metric briefs
- Git repository with YAML per metric (for example metrics-as-code)
goal-question-metric-working-template.md
Compact working template for Goal Question Metric with context, input, output artifacts, and next step.
Goal Question Metric Working Template
Goal
Derives metrics from goals and probing questions.
Context
When and for what do we use this method?
Input
Which data, observations, decisions, or materials are available?
Execution
Short notes along the runsheet.
Output artifacts
- GQM table:
- Metric profiles:
Assumptions and open questions
- ...
Decision / next step
Owner, date, and success signal.
Example output
Concrete filled scenario, fictional example
goal-question-metric-beispiel.md
Concrete filled scenario, fictional example
GQM plan — Platform Reliability Team, H2 2026
Goal G1
Reduce Mean Time to Restore (MTTR) for Tier-1 services from the Operations team perspective in production.
Question Q1.1: How long does a typical restore take?
- M1: MTTR P50 in minutes by service (source: PagerDuty + Statuspage joins, monthly).
- M2: MTTR P95 in minutes by service (source: same, monthly).
Question Q1.2: Where is most of the restore time spent?
- M3: Time-to-Detect (source: Datadog alert logs, monthly, owner @ben).
- M4: Time-to-Engage (source: PagerDuty acknowledgment, monthly, owner @anna).
- M5: Time-to-Mitigate (source: incident notes, monthly, owner @marcus).
Orphan metrics (to deactivate by 30.09.2026)
- Server CPU max (no question link, owner @anna).
- Tickets in queue X (question unclear, owner @lisa).
Pitfalls
Recognize symptoms and steer against them
Starting from data instead of goals
Discussion begins with what data we have and which questions this data can answer.
Stop the bottom-up reflex and restart with the goal template. Bring in existing data only after questions are defined.
Unanswerable questions
Questions like are we agile enough with no one able to define what answer means.
Rephrase the question so that it can be answered with a number or a defined status. If not possible, move the question to a retrospective instead of GQM.
Metric inflation
4-5 metrics arise per question and the program becomes unmanageable.
Limit to maximum 2 metrics per question. If more are needed, split the question. Otherwise maintenance and credibility suffer.
Missing metric briefs
A number exists in the dashboard but nobody can explain how it is calculated or who owns it.
No entry in GQM table without a linked metric brief. During review, open the metric brief; otherwise the metric is considered non-productive.
Allowing orphan metrics
Reports continue to include metrics without question linkage because they are historical.
Maintain an orphan list with deactivation date. Escalate if overdue, otherwise wild metric sprawl accumulates.
One-off workshop instead of ongoing program
After the workshop, the table is not revisited and new metrics are created ad hoc again.
Fix review cadence at least quarterly. Only add new metrics via pull request into the GQM repo.
Stop criteria
Done signals checkable in under a minute
Finished the runsheet?
Go to the profile for purpose, similar methods, and sources or continue to the next method in the catalog.