软件度量三定律

    实施CMMI的组织都会建立自己的度量体系以支持管理信息需求,但真正形成度量文化,形成用数据有效支持决策的少之又少!后面有机会我会列出这些年来看到的一些软件度量问题。今天和大家分享的是,在建立软件度量体系时也应关注的三个著名定律。

  

Goodhart’s Law (Goodhart定律


国内出版的Goodhart文集


这个定律是著名经济学家 Charles Goodhart提出来的,原话是 “When ameasure becomes a target, it ceases to be a good measure.” 它的大意是一个指标一旦变成了既定目标,那么它就不再具有指示整体情况的作用。


考虑一个简单的例子,可操作定义清晰的代码行(LOC)在一定场景下可以用来作为计划的一个重要依据,同时可以用来监控项目完成情况。但一旦它被用来作为每日编码的目标,它就失去了展示实际进展的意义。程序员为了完成代码行的目标,会追加一堆无效代码,不仅伤害了代码质量,LOC也无法真正反映项目的进展情况。


我这里给大家的建议是:重要指标不要同时用来作为监控度量项

 

Campbell’s Law (Campbell定律)


1996年去世的Donald Campbell教授


著名心理学家Donald Campbell给出了下列的著名定律:


“The more any quantitative social indicator isused for social decision-making, the more subject it will be to corruptionpressures and the more apt it will be to distort and corrupt the socialprocesses it is intended to monitor.” 


它的大意是当量化度量指标有重要后果时,会产生一些通过破坏过程以实现量化目标的行为,这就完全违背了监控完善过程的初衷。


2015年轰动美国的大众汽车丑闻就是一个典型的例子。美国环境保护局为环保设定了汽车排放指标,大众汽车开发了一个欺骗软件,在测试时能够保证车辆达到指标(虽然实际排放量大大超标),从而通过测试。环保局设置汽车排放标准是为了指导提升汽车制造过程的环保能力,但大众为了达到指标(当然为了降低成本),靠作弊手段破坏了这个过程。


另一个中国家长熟悉的例子,就是一考定终身的升学机制。它的本意一定是希望通过这些考试成绩,指导完善教育体系。但它在许多学校却带来了应试模式的教育方式。


这个定律也是我不建议用单一度量指标考核软件工程师的原因,指出了仅用单一指标考核的风险,包含定量和定性的KPI考核机制可以大大降低这类风险。

 

Hawthorne Effect  (Hawthorne效应)


大概工头就是这么来的


第三个定律被称之为Hawthorne效应。20世纪20-30年代,美国研究人员在芝加哥西方电力公司Hawthorne工厂做了一个工作条件、社会因素和生产效益关系的实验。其结果称之为称Hawthorne效应。它指出:Individuals modify anaspect of their behavior in response to their awareness of being observed.”也就是说意识到自己正在被别人关注的个人会改变自己的行为,由于受到额外的关注可以导致绩效和工作态度的改善。


这个定律告诉我们,尽管刺激因素确实能够将生产效率提高到一定程度,但是任何刺激因素(如薪水)都不是非常有效的,因为它总有效用饱和的那一刻。所以,不能够完全指望Hawthorne效应提高生产效率,如果要持续维持软件团队的预期产能,管理者需要源源不断的通过透明易懂的度量指标,关注激励团队的工作。许多敏捷精益团队在这方面提供了不少优秀实践。

 

这里我把三个定律总结成一个建议:度量决定行为,所以先搞清楚你的度量目标 (Intent)!


软件度量三定律》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/3136.html