导图社区 GQM
目标-问题-指标(GQM)是软件工程领域的一套系统方法,被称为研发效能度量方法的“事实标准”。 通过系统化的数据度量和分析,我们可以更好地认知软件研发过程和产物,为研发团队提供及时反馈,优化研发流程,提升研发效能,为开发者带来卓越的软件工程实践。
编辑于2022-12-29 17:08:42 北京市目标-问题-指标(GQM)是软件工程领域的一套系统方法,被称为研发效能度量方法的“事实标准”。 通过系统化的数据度量和分析,我们可以更好地认知软件研发过程和产物,为研发团队提供及时反馈,优化研发流程,提升研发效能,为开发者带来卓越的软件工程实践。
目标-问题-指标(GQM)是软件工程领域的一套系统方法,被称为研发效能度量方法的“事实标准”。 通过系统化的数据度量和分析,我们可以更好地认知软件研发过程和产物,为研发团队提供及时反馈,优化研发流程,提升研发效能,为开发者带来卓越的软件工程实践。 但目前产业界对 GQM 的应用存在两方面的误区: 一是简单从字面理解“目标”、“问题”和“指标”的概念,没有进一步理解它们的具体定义和背后的模型等精髓; 二是尚未充分意识到 GQM 是构建研发效能度量体系的一种根本性方法。
社区模板帮助中心,点此进入>>
目标-问题-指标(GQM)是软件工程领域的一套系统方法,被称为研发效能度量方法的“事实标准”。 通过系统化的数据度量和分析,我们可以更好地认知软件研发过程和产物,为研发团队提供及时反馈,优化研发流程,提升研发效能,为开发者带来卓越的软件工程实践。
目标-问题-指标(GQM)是软件工程领域的一套系统方法,被称为研发效能度量方法的“事实标准”。 通过系统化的数据度量和分析,我们可以更好地认知软件研发过程和产物,为研发团队提供及时反馈,优化研发流程,提升研发效能,为开发者带来卓越的软件工程实践。 但目前产业界对 GQM 的应用存在两方面的误区: 一是简单从字面理解“目标”、“问题”和“指标”的概念,没有进一步理解它们的具体定义和背后的模型等精髓; 二是尚未充分意识到 GQM 是构建研发效能度量体系的一种根本性方法。
GQM模型
整体构架
使用步骤
概念层:目标
目标陈述:目标应该以可度量的方式陈述组织的期望
五个维度具体说明
目的:在实践中,了解和评价往往伴随而生,单纯刻画对象(即了解)而不与其他对象对比(即评价)无法满足用户的信息需要,所以我们将两者归并称为认知;改进和控制都是希望通过开发过程对指标的变化做出干预,我们统称为管理,预测是相对独立的目的,保持一个单独的门类。了解、评价、改进、控制和预测中的一种或多种
对象:通常为研发的产物(如代码、文档、测试用例、制品等)、过程(如需求分析、设计、测试等)或资源(如人员、硬件等)。
维度:目标聚焦的角度或对象的属性。成本、缺陷、及时性、准确性、可靠性、性能、用户满意度等
角色:组织中关注该目标的角色。例用户、开发者、管理者、公司等
环境:度量的上下文,包括人员构成、研发模式、编程语言等,用于判断度量间的可比性
在(环境)下,(角色)关注的目标:(了解|评价|改进|控制|预测)<对象>的<维度> 例:项目经理关注的目标:改进代码修改请求处理的及时性。
操作层:问题
根据目标提出一系列问题,主要用于刻画目标,其中隐含着一个在目标维度上刻画目标对象的模型
提问环节要注意两点
先做加法:尽可能多地提出问题,使模型尽量全面、充分、有效,避免数据收集后才盘发现遗漏或者无效;完备的问题列表一方面可根据实际需要做裁剪,另一方面可提供多种模型可支持试题结果的交叉验证
结合实际情况:在提问环节,需要结合研发团队的实际情况和特征,补充问题的所需信息
体现出GQM方法及其通过问题表达隐式模型的灵活性,从实际应用出发,根据实际情况判断。通过这些问题,我们可以看到分布和关系是两种典型的刻画方式,并且,它们都可以通过度量数据采用统计方法计算
问题包含的几个主要方面
定义目标对象
当目标对象是研发产物:产物所有方面的属性、特征或构成
当目标对象是研发过程:过程所有方面的属性、特征或构成,以及两种符合性
过程符合性,刻画过程的模型多大程度上与实际相符合
领域符合性,过程执行者对所需知识或信息的了解程度
定义目标维度:应确保该定义的模型适用于目标环境且可收集有效数据,可考虑多个模型,最终度量结果相互印证
定义目标对象在目标维度上的改进
量化层:指标
回答问题所需的指标既可以是客观的,也可以是主观的,但都应当可量化的。
客观数据通常从研发产物或研发过程中的活动记录乃至上下游业务系统中获得
主观数据可来自对研发团队或用户的问卷调查
最佳实践指南
以往文献和实践的基础上做出的贡献主要有两个方面
一是兼顾本质和实操性,给出GQM的现代化理解,修正了以往认知和实践中的问题
二是从研发组织构建效能度量体系的现实需求出发,对GQM的形式进行规范和统一,亦有利于方法论的沉淀和共享
基本原理
本质上是一种因果分析,通过追问合理的问题进行统计分析实现
核心思想是通过问题来建立和表达有关研发的模型,解决了显式(数学)模型难以定义的困难,在严谨性和实用性之间找到了合理的平衡,可以说,GQM的精髓是一种提问的艺术
目标标准化四要素
对象:研发的过程、产物或资源中的一种。每种对象都可能存在层级结构
研发的交付过程,由需求、设计、开发、测试、发布、运营等组成;每个过程还可以进一步下探
产物包括软件、文档、制品等。以软件为例,它可以下探到组件、函数;同时,它的组成还包括缺陷、变更等研发过程中的产物
资源包括人员、设备等。人员组成团队,形成层级结构
维度:目标聚焦的角度或对象的属性
参考认知域的划分,速度、质量、价值、成本、能力都可作为一种维度
这是一个开放的集合,实际中目标可以有更细的维度
目的:了解、评价、改进、控制和预测中的一种
了解是认知研发效能的第一步,也是评价、改进、控制和预测的基础
在了解的基础上,通过与历史、同类或基准的对比产生评价
评价中定位的差距需要改进。改进最终体现为指标的提升或降低
除了改进,有些目标是为了控制指标在合理的范围内
了解、评价、改进和控制都是针对现状,预测则是面向未来,帮助我们提前实施改进和控制
角色:组织中谁会关注该目标,通常为开发者、项目经理、技术经理、高层管理者中的一个或多个
组织中的目标体系,核心是按照对象、维度和目的三个要素组织,它们直接影响目标的定义。而角色可以作为目标的一种标签,主要标记谁会关注该目标
问题
问题是对模型的定义,该模型一方面是对目标及其各要素的拆解和刻画,另一方面为数据解读为目标提供框架和途径
问题的设立会帮助我们根据数据分析目标进行数据收集,而不是先收集数据才发现遗漏或者无用功。
完备的参考问题列表
一方面方便实践者选择或裁剪
另一方面提供多种模型,可支持度量结果的交叉验证
为规范和简洁,参考问题可包含参数。这些参数通常反映隐式模型的定义,实践中根据具体应用环境设定
当目标包含层级结构时,每一层目标都有与之对应的问题
问题可针对当前目标对象(即其整体和现状)提出,也可深入其组成部分、历史周期,或者与其他同类对象进行对比
不同目的和范围下的典型问题
指标
指标的明确定义和规范化是解决问题描述可能存在模糊和歧义的关键
完备的参考指标列表
一方面方便实践者选择或裁剪
另一方面提供相关指标,可支持对问题更全面的理解
为了规范和简洁,以指标为基础的各类统计,归入对应指标的分析方法,而不单列为另外的指标。常见分析方法有
数值分布:指标数值作为随机变量,计算其分布或分布的统计量(如均值、方差、上下限等)。多用于回答了解对象现状的问题
时序分布:按时间顺序分析指标数值,即时间维度上的分布。回答面向历史数据的问题通常以此为基础
分类分布:将对象的组成部分分类后,进行统计分析。如缺陷按所在模块分类,统计各模块缺陷的数量。该方法在了解对象组成部分的场景下应用广泛
对比分析:通过指标数值间的比较量化差距,多用于回答评价类问题
帕累托分析:将组成部分或影响因素的指标排序,定位影响最大或最主要的部分,常用于改进或控制
相关分析:运用各类统计方法找到指标间的正负相关性,常用于改进或控制
拟合建模:运用各类统计方法或到有效预测指标的数学模型
延伸模型
GQ(I)M
GQIM 区别于GQM的地方就在于它在Q和M之间加入了可视化的指示器(Indicator),用于建立问题和度量数据之间的联系。
GQM-D
应从过程建模的角度考虑对过程度量的支持问题,并提出一种支持过程度量的软件过程建模方法的框架。
它包括面向目标的过程度量模型建模方法、支持过程度量的软件过程描述机制的选择和支持过程度量的软件过程建模算法。
扩展主要三个方面
对度量的分解
引入数据项分层D
增加度量集和数据项集的结构化描述
GQAM
GQAM(Goal-Question-Attribution-Metric,目标-问题-属性-度量)模型是在GQM模型基础上提出的,在问题层和度量层之间增加属性层以建立问题层和度量层之间的联系,同时对问题层进行简化
在实际的软件活动中,明确目标并确定与目标相关的关键问题之后,通过在属性层定义相关的关键属性,并根据属性得到具体度量,这样既可以避免选择度量的盲目性,还可以提高模型本身的可扩展性
起源及描述
如何选择和定义度量,确定度量目标、选择适当的测量项是做好度量的基础,事实标准
由美国马里兰大学的Vietor Basili博士及其助手提出
GQM:Goal(目标) Question(问题) Metric(指标)的英文缩写
一种面向目标、自上而下、由目标逐步细化到度量的度量方法
具备较强的操作性和灵活性
主要用于帮助理解“为什么(why)”以及“什么(what)”需要度量
GQM方法主要是实践这样一种想法,即组织中基于度量规程的所有度量都是有意义的,即能够面向目标,应用于产品、过程和资源的优化和完善,并能够基于组织的上下文、环境和目标对优化和完善机制进行解释
GQM是按照层次结构来组织的,即从最初的目标定义开始,把目标提炼成相关的考察问题,再标识相关问题的需求并通过组织中已定义的度量表示出来
作为一种结构化的方法,GQM被广泛的应用于改进软件产品和过程
GQM方法,也被一些公司应用于流程绩效管理指标识别、定义
GQM当初是为软件工程研究中的数据收集和分析而设计,其基本思想是
自上而下定义:每一个目标划归为一组可量化回答的问题,每个问题通过若干特定的指标来回答
通过提出问题,建立和表达隐式模型,解决研发难以定义数学模型的困难
自下而上分析解读,数据的收集和分析都服务于清晰明确的问题,进而达成定义的目标
GQM是一种面向目标的度量方法,也是管理者的一种科学的、具有逻辑性的思考问题的方式
首先定义需要度量的目标,再针对各个目标,提出可能会遇到的问题,来定义这个目标
然后通过回答问题的形式来衡量这些目标是否被实现,将一个个模糊的、抽象的目标,分解成具体的、可测量的问题
最后,针对每一个问题再给出一组测量方法,并且这一组测量方法测量出来的数据就是对这个问题的回答
分析过程的目的是把概念化的目标转化成比较具体的问题,再进一步把问题分解成可以度量的指标
误区
一、简单从字面理解“目标”、“问题”和“指标”的概念,没有进一步理解它们的具体定义和背后的模型等精髓
二、尚未充分意识到 GQM 是构建研发效能度量体系的一种根本性方法