最近在工作的时候遇到一个软件研发效能度量的工作,所以就在查应该度量哪些方面,怎样度量之类的,查到一个官方指导文档:《软件研发效能度量规范》,这个文档是由中关村智联软件服务业质量创新联盟、中国软件行业协会系统与软件过程改进分会发起的一款团体标准。依托于国内企业在研发效能领域的先进实践,通过对研发效能进行体系化梳理及定义,制定研发效能度量的原则、框架、方法和指标集,可以帮助企业的软件组织、团队及个人通过有效的度量和指标支持构建、执行、评估、提升软件研发效能,实现质效双增。我读之后现在的理解是这样的,我们要定好一定的指标,在研发过程中收集相应的数据来进行度量,便于决策。如下图:
编辑
一、了解行业指标
那在软件研发效能目标一般我们要关注哪些方面呢?现在的理解是要关注效率、效果、卓越能力三个方面,其中效率指可以速度快、质量好、成本低的交付高价值产品,效果指交付的产品和服务能够达成用户和业务的目标,卓越能力指软件研发过程以健康的、可持续的方式交付产品和服务。
拆解到研发过程中可以分为:交付价值、交付速率 、交付质量、交付成本、交付能力,其中每个方面下面还有很多细的指标,具体如下图,在每个指标下都有具体的小指标: 编辑
二、明确自己的指标
确定有如下这些指标后,我们如何在自己的项目中来进行使用呢? 首先团队的主要人员能在尽可能的时间精力范围内来学习上述的指标含义,在没有精力的情况下,最想做成这件事的人应该简化讲一讲,最次大家应该一块坐下来聊一聊团队现在的问题是什么,从目标需要回答的问题或信息需要出发,选取能够回答当前问题或者满足当前信息需要的指标
将问题排排序,然后看问题所需要确定的现状所对应的度量目标是什么,此时切记度量的范围应该应充分考虑软件组织的现状和约束,例如根据当前团队运行的各个项目和周期确定,要分别是从人、事、时间维度上来界定,确定目标时应可根据其重要性、迫切性和可行性或基于权重进行计算对目标进行排序,不要贪多求全,否则大家很难接受一个长期没有明显效果的改造大多数人习惯的项目。且在执行中要留有一定的变通口,防止很多预想不到的情况发生。
三、实施度量
实施度量的第一步我们还是要先讲一下度量的原则,便于采集数据是遵循一定的规则,可以更好的支撑度量,度量的原则主要有适用性、系统性、可靠性和持续性这几项,这怎么理解呢?我理一下自己的理解:
适用性是指我们还是要根据目标和现状选择度量的范围、方法和数据。适用性包括两个方面:一是根据改进的目标,选择适用的度量范围和指标,而不应在目标不明确的情况下, 盲目过度实施度量;二是应根据软件交付模式、软件周期模型、软件组织特点等,选择适用的度量范围和指标。
系统性包括两个方面:一是指标能够反映度量目标的主要方面,满足认知或改进需要;二是指标之间应能够相互印证或制 约。度量的系统性可有效防止研发组织面向单一指标优化,造成局部最优而整体不优,从而影响研发效能整体提升。
可靠性包括三个方面:一是数据是否及时采集、及时分析,并支持及时采取措施;二是数据是否是真实数据,人工填报数据,往往真实性会打折扣;三是数据的客观性是否可通过多视角相互校验和排查予以保证。
持续性是指研发效能改进通常无法一蹴而就,宜基于系统视角、采用迭代的方式组合实施。每个迭代应聚焦少 数重点目标,通过根因分析寻找并确定改进方案、实施专项改进、度量和验证改进效果,并沉淀最佳实 践。如果改进效果达到预期,下一轮迭代可选取其他目标;如果改进效果未达预期,应改度量以反映更 本质的问题,并支持下一轮迭代的目标设定和改进。
在理解了上述的原则之后,我们开始采集度量的数据,度量数据宜更多采用代码或工具平台中存留的数据,使之更具客观性,提升数据质量并降低度量成本。度量之后进行分析可采用基本的分析图表,如:散点图、直方图、箱线图、饼状图、柱状图、趋势图、 雷达图、累积图等;也可进一步采用统计技术,如描述统计、相关分析、方差分析、回归分析、控制图、 能力分析、假设检验等。在建设初期,可以做好基本的分析图表基本也够用了。下面我来用文中图标解释下要采集的小指标在研发过程中具体代表什么意思,方便大家有一个更有体会的感觉。
编辑
编辑
编辑
编辑
编辑
编辑 编辑
编辑
编辑
四、汇报解决
在定完目标和收集好数据做好分析之后,无论我们是研发效能组还是自己团队的tl都面临一个问题是需要向团队或者更高级的领导来汇报,便于达成一定的共识和制定一些改进方案,这方面文档也给了一个视图卡片的例子,假设我们以项目经理站在项目视角,进行项目进展汇报为例:
列出主要的意图:汇报项目进展和问题,以支持项目级决策和采取纠正措施;
写明聚焦的问题:1)项目能否按时交付?2)产品质量如何?3)存在哪些问题?
分析主要的指标涉有:1)项目进度;2)开发进展;3)测试进展;4)缺陷修复进展;
分析的方法有:1)根据项目特点,从进度、质量、缺陷多维度进行分析;2)关注计划、时间和偏差,必要时进行根因分析;3)和项目目标进行比较,和历史基线进行比较,以便作出决策;
根据上面的分析指标、图标数据和分析方法来获取一些结论,然后再制定一些改进计划,然后再去汇报便于达成共识。
具体卡片如下:
编辑
原文档上次了几次都没成功,大家可以私信我,或者关注公众号 “小强聊it” ,我近期会更新上去获取方式的。