为什么咨询师告诉你的度量指标是错的?

为什么咨询师告诉你的度量指标是错的?

1.

很多次软件开发主管问我,“我们的度量做得不好,请告诉我,我们需要度量什么?我让项目组去收集数据,一定要把度量做好!”

这时候我都会语塞,因为有太多的话要说。最后只能总结一句,“请外人告诉你去度量什么,你的度量体系还是做不好。知道为什么吗?”,我停顿一下,“因为你所度量的,并不一定是你真正需要的!”

我们为什么要去度量? 因为这是一个必须做的工作?还是因为我想获知身边事物的信息?当然是后者。我想知道,所以我度量!比如我的血压、考试分数、工资收入、奖金、销售额、项目规模等等。这些数据对我感知世界、理解世界非常重要。那些我不关心的,我为什么要花时间、花精力去度量?对于我不关心的,即使你强迫我去度量,我也不会做好,度量也不会持久。这也是为什么很多公司做不好度量的原因。

所以,要做好度量,不是外人要告诉你去度量什么,而是你自己要知道去度量什么!

 

2.

那么一个软件公司,怎么知道要度量什么呢?换句话说,怎样设定度量项或度量指标呢?

我认为的诀窍是,一切度量的目的,都应服务于企业的商业目标。举个例子。对于一个想3年后上市的公司,你要度量什么?假设上市的标准,是每年的销售额增长20%,软件销售额达到1亿以上。CMMI认证

首先,要实现上市的目标,我们必须知道目前的开发团队3年后能不能开发出1亿市值的软件,并且每年递增至少20%?其次,如果不能的话,开发团队后续应该怎样做?

根据3年后产值一个亿,年增长率20%的上市标准,可以推导出今年的产值应该是5787万。与去年的实际产值5000万元相比,在不增加人力资源的前提下,当前的开发团队需提升15.74%的开发效率,才能达到今年底5787万的产值目标。所以开发团队的生产率,是一个必须度量的度量项。没有这个数据,我们无法知道15.74%的效率提升目标是否达到。

软件开发的产出通常不用金额来定义,而是用软件规模来定义。去年公司100个开发人员,共开发出了2万个功能点的软件。假如今年软件市场价格不变,同样人数的开发团队,需开发出23148个功能点的软件,才能满足产值5787万的目标。如果市场价格降低,则公司需要相应开发出更多规模的软件。所以,软件规模是另一个重要的度量项。没有这个数据,我们就无法知道软件开发的产出是否达到目标,也就无法控制软件开发的过程。

我们知道,决定软件开发成本和效率的重要因素是返工【4】,而决定返工的重要因素是及早发现缺陷。因此代码评审的效率,即缺陷移除率,是编码过程中的重要指标,是另一个重要的度量项。假设通过推算,项目需要使编码评审的缺陷移除率达到70%才能实现15.74%的效率提升,那么项目组就会在编码过程中度量和监控缺陷移除率的数据,达不到70%就打回重新评审,这样就确保了预期的生产率的提升,从而达到年度产值目标和最终上市目标。

围绕公司上市这个商业目标,我们不断把目标分解到软件开发的每一个过程,就可以找到那些在开发过程中必须知道的数据项。这些数据,就是公司需要度量的度量项或度量指标!没有这些数据,你就无法控制开发过程活动,也无法间接控制软件产出,因此也就无法保证最终的商业目标是否能够达到。我们知道,过程决定结果,过程无法控制,当然结果也就不一定能够达到预期。

小结:

商业目标,是公司运营必须达到的目标,关系到公司的生死存亡,例如企业上市的目标、销售额目标、利润率目标等。商业目标与生产活动无关,但是会逐步分解到生产过程目标中。

过程目标,是软件开发过程的预期结果。此目标的实现,决定了商业目标是否可以达成,例如,开发生产率提升15.74%是过程目标,决定了当年软件产值目标是否可以达成,也决定了最终的上市目标是否可以达成。CMMI认证)

过程度量,例如开发生产率,是软件开发过程的度量项,刻画了软件开发过程的特征或结果,可能包括人员经验、工作方法、所用工具等过程属性,以及缺陷移除率、工作量、进度偏差、测试缺陷密度等过程结果。没有过程度量数据,就无法有效地控制软件开发活动,最终也就无法确保达到商业目标。

 

 CMMI认证

3.

有快捷、有效的度量体系方法吗?有!GQM【1】就是一个业界常用的方法。GQM的定义是:

Goal:确定度量目标

Question:定义理解目标是否达成的问题

Measure:回答问题所需要的度量值

我上面所讲的例子,就是一个使用GQM方法定义度量的例子。虽然很多企业包括咨询师都知道并使用GQM来定义软件开发活动的度量项,但是一个普遍的误区是没有把度量目标和最终的商业目标关联起来。从理论和实践的角度来看,是理论有余而实践不足。就像有些人,虽然电路理论考高分,但是让他们换一个电灯开关,一定会搞砸。咨询师虽然懂GQM方法,但是如果没有根据企业的实际情况,把GQM方法在企业里具体使用起来,最终还是纸上谈兵,不仅达不到度量的效果,可能还会起到反效果。

CMMI认证 

4.

 

很多企业度量项目失败的原因,除了度量不能提供价值之外,还有其它的原因。Carol Dekkers在文献【2】中曾做过详细的分析,现总结如下:

 

度量不能提供价值

度量不经济,成本很高

度量数据没有经过验证,并且有瑕疵甚至错误(Garbage in Garbage Out)

度量不及时,事后诸葛亮

没有度量的支持体系,没有工具

没有度量计划、跟踪和支持

度量项目只是一个临时项目(pet project),任何时候都会被砍掉

没有过程改进的企业文化

没有高层的实际支持,只是口头支持(lip service)

总结:

1. 度量必须为商业目标服务,否则没有价值。

2. GQM是建立有效度量体系的方法,但是度量目标必须最终和商业目标挂钩。

3. 有效的度量体系是有成本的,所以需要高层的支持。

image.png 

Campbell【3】说过,“没有度量,就没有管理 – 你只能随波逐流,最后跌入万丈深渊!”(“If you ain’t mesurin, you ain’t managin – you’re only along for the ride (downhill) “ 。意思是没有度量,就无法控制开发过程,因此也就无法控制结果,只能被动地接受任何可能的结果。就像水中无根的浮萍随波逐流,最终会落入无底的深渊。如果您不想随波逐流,那么朋友们,让我们今天从度量做起吧!

 

 

文章来源作者高山

 

 


点击关闭
  • CMMI认证客服

    CMMI3认证客服

    CMMI咨询

    CMMI4认证