출처:Crafting A Measurement Framework Using A goal-Question-Metric Approach
The GQM(Goal Question Metric) 6 step process
- Develop a set of corporate, division and project business goals and associated measurement goals for productivity and quality.
- Generate questions 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 those 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 postmortem fashion to assess conformance to the goals and to make recommendations for future improvement.
Levels of GQM
- Goal Level: CIO, CTO, VPs, Stakeholders
- Question Level: Project managers, developers, customers, other stakeholders
- Metrics Level: development team, practitioners, project managers, developers
- Select the right people (at all levels)
- Secure management commitment to support measurement results
- Set and state explicit measurement goals
- Thoroughly plan the measurement program and document it (explicit and operational definitions)
- Don‟t create false measurement goals
- Acquire implicit quality models from the team
- Consider context
- Derive appropriate metrics
- Stay focused on goals when analyzing data
- Let the data interpreted by the people involved
- Integrate the measurement activities with regular project activities
- Don‟t use measurements for other purposes
- Establish an infrastructure to support the measurement program
- Ensure that measurement is viewed as a vehicle not the end goal
- Get training in GQM before moving forward
The GQM Template of Activities
Sample Goals, Questions, Metrics
|1. Increase AD Productivity||1.1: What was the productivity of AD projects (based on source size)?||1.1a: ADP = total source size / incremental AD effort [Ri to Rj]
1.1b: ADP-delta = delta source size / AD effort [for Ri]
|2. Improve Project Predictability||2.1: What was the accuracy of estimating the actual
value of project schedule?
2.2: What was the accuracy of estimating the actual value of project effort?
|2.1: SEA = actual project duration / estimated project duration
2.2: EEA = actual project effort / estimated project effort
|3. Increase Software Reliability||3.1: What is the rate of software failures, and how does
it change over time?
|3.1: FR = number of failures / execution time|
|4. Increase Defect Containment||4.1: What is the currently known effectiveness of the
defect detection process prior to release?
4.2: What is the currently known containment effectiveness of faults introduced during each constructive phase of AD for a particular application? 4.3: What is the relative time spent dealing with defects with respect to the overall AD time?
|4.1: TDCE = number of pre-release defects / number of pre-release
defects + number of post-release defects
4.2: PCEi = number of phase i errors / number of phase i errors + number of phase i defects
4.3: RDT = time spent dealing with defects / time spent for AD
|5. Decrease Software Defect Density||5.1: What is the normalized number of in-process
faults, and how does it compare with the number of in- process defects?
5.2: What is the currently known defect content of software delivered to customers, with respect to source size?
5.3: What is the currently known customer-found defect
content of delivered software, with respect to source size?
|5.1a: IPF = in-process faults caused by incremental AD / delta
5.1b: IPD = in-process defects caused by incremental AD / delta source size
5.1c: IPE = in-process errors caused by incremental AD / delta source size
5.2a: TRD-total = number of released defects / total source size
5.2b: TRD-range = number of released defects caused by incremental AD / total source size [from Ri to Rj]
5.2c: TRD-delta = number of post released defects / delta source size
5.3a: CFD-total = number of customer found defects / total source size
5.3b: CFD-range = number of customer found defects caused by incremental AD / total source size [from Ri to Rj]
5.3c: CFD-delta = number of customer found post-release defects / delta source size
|6. Improve Customer Service||6.1: What is the number of new problems that were
opened during a time unit?
6.2: What is the total number of open problems at the end of a time unit?
6.3: What is the mean age of open problems at the end of a time unit?
6.4: What is the mean age of the problems that were closed during a time unit?
|6.1: NOP = total new post-release problems opened during the time
6.2: TOP = total number of post-release problems that remain open during the time unit
6.3: AOP = (total time post-release problems remaining open at the end of the time unit have been open) / (number of open post-release problems remaining open by the end of the time unit)
6.4: ACP = total time post-release problem closed within the time unit were open / number of post-release problems closed within the time unit
|7. Reduce the Cost of Nonconformance||7.1 What was the cost to fix post-release problems
during a time unit?
|7.1: CFP = dollar cost associated with fixing post-release problems
within a time unit
• AD = Application Development
• ACP = Age of Closed Problems
• AOP = Age of Open Problems
• CFD = Customer-found defects
• CFP = Cost of Fixing Problems
• EEA = Effort Estimation Accuracy
• FR = Failure Rate
• IPD = In-process Defects
• IPE = In-process Errors
• IPF = In-process Faults
• LOC = Line of Code (excluding lines that contain only comments or blanks)
• NOP = New Open Problems
• PCE = Phase Containment Effectiveness
• RDT = Relative Defect Time
• SEA = Schedule Estimation Accuracy
• SP = Software Productivity
• TDCE = Total Defect Containment Effectiveness
• TOP = Total Open Problems
• TRD = Total Release Defects
• TSS = Total Source Size of the release
• TSS-delta = The size of the source code added, deleted and modified from the previous release