Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

How Do You Know Your Metrics Are Any Good

DZone's Guide to

How Do You Know Your Metrics Are Any Good

· Agile Zone ·
Free Resource

Discover how you can take agile development to the next level with low-code.

 Originally authored by Derek Huether

gqm diagramSo you want to create some metrics.  More importantly, someone has told you that you need to create some metrics.  How do you know if you’re just making work for yourself or if you’re just putting a spin on the same old data?

Ask yourself what the goals are.

In trying to determine what to measure in order to achieve those goals, I recommend using a Goal-Question-Metric (GQM) paradigm. It can actually be applied to all life-cycle products, processes, and resources. I’ve been using this process for years and it really helps me create a quality metric, independent of processess lifecycle.

The GQM paradigm is based on the theory that all measurement should be [1] goal-oriented i.e., there has to be some rationale and need for collecting measurements, rather than collecting for the sake of collecting. Each metric collected is stated in terms of the major goals. [2] Questions are then derived from the goals and help to refine, articulate, and determine if the goals can be achieved. [3] The metrics or measurements that are collected are then used to answer the questions in a quantifiable manner.

Here is an example of the GQM in action:


Image based on Basili, Caldiera, and Rombach “The Goal Question Metric Approach“, 1990


Download this eBook to learn how to prepare your business for agile adoption, how to ensure the proper business-IT collaboration that is critical for agile development, and how to choose the right stakeholders to increase productivity and enable accelerated time-to-value.

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}