- Finish a given software project in three weeks.
- How close are we to completion?
- Number of completed (coded and tested) features
There are a couple of key things to think about when setting the goal. As with any time you are setting a goal, you want to make sure it is a SMART (Specific, Measurable, Achievable, Reasonable and on a Timeline) goal, although one of the advantages of GQM is that if you don't it will become obvious as you go on to define the question and metric. More importantly, you want to make sure you are setting the right goal. A goal that is only meaningful to the programmers may be perfect if you are setting goals for the programming department, but probably isn't a good choice if you are setting goals for the entire company.
In the book Software Measurement Laird and Brennan discuss an extension to GCM, GCM2 that involves adding the additional term Mechanism. Mechanism refers to when the metric will be gathered and reported, who is responsible and what resources will be needed. For our earlier example, we could add:
- Collected in the existing test management system by the testers on a daily basis and reported by the head tester at the end of the day. The head tester is responsible and it will take approximately 15 minutes total of the testers time daily.
GQM is a simple way to get started doing metrics and is very versatile, it can work equally well for an individual trying to keep track of their own work or a whole company and anywhere in between as long as the goal is appropriate to the entity being tracked.
Learn more about GQM and other sofware measurement topics in Software Measurement and Estimation: A Practical Approach. Available at Amazon.com