走近软件度量:从暗箱摸索中走出来

发表于:2008-01-24来源:作者:点击数: 标签:软件度量
根据意识:言而有据的诉求 判断基于事实,承诺源自依据。日本软件企业在软件 开发 过程中让人感觉到一种习惯性的根据意识:立足于数据而不是假设之上。规模 估算 、进度估算、成本估算、人员估算,都需要说明理由,而不是仅仅凭借经验甚至感觉作出判断;进度调
根据意识:言而有据的诉求

  判断基于事实,承诺源自依据。日本软件企业在软件开发过程中让人感觉到一种习惯性的根据意识:立足于数据而不是假设之上。规模估算、进度估算、成本估算、人员估算,都需要说明理由,而不是仅仅凭借经验甚至感觉作出判断;进度调整、质量评估、费用超支、人员追加,仍然需要提出变更的原因,不管这种变更是否对企业有利;项目意见、作业提案、选择建议、管理流程,都需要通过调查分析阐述各自的依据。尽可能排除直观感觉可能带来的误差甚至错误,通过切实有效的数据来反映事实状况,并通过这些数据来判断发展趋势,作到“言之有据”。因为面对客户的需求,不能主观随意地作出判断或者抛出承诺,而没有相应的根据,否则顾客将会感到“不安”。这就是软件开发者的根据意识。根据意识源自危机意识,日本似乎与生俱来的危机感促使其在软件开发过程中尽量排除风险,而排除风险就必须基于科学的决策,必须拥有根据,而不是凭空决策。

  精度管理:敏感的数据倾向

  危险出在管理上,魔鬼藏在精度中。精度表现着对事物认识的深入程度,不管是软件成熟度模型,还是六西格玛,都表达着对高精度管理的诉求。日本软件开发过程中对精度的要求包括项目计划精度、工数估算精度、进程控制精度、缺陷统计精度、成本控制精度、品质控制精度等等,力求通过数据来描述和分析问题。特别是在项目规模、项目缺陷、累计工数、需求变更、测试和审查等方面,更加注重精度管理,更加注重度量。以前,日本企业的规模估算等方面依赖于KDD,即勘(Kan:直觉)、经验(Keiken)、度胸(Dokyou:胆识),但这种情况已经被基于数据和科学方法的精度管理所取代。数据敏感,具有较好的数据分析和判断能力,这已经逐渐成为现代企业管理者的基本资质要求。如果分析和判断建立在准确数据的基础之上,那么精度管理就获得了必要的操作依托。软件开发计划与实绩管理就是最明显的精度管理:精度意味着实绩与计划的吻合程度,如果实绩与计划相去甚远,那么其计划精度就存在问题。当软件品质中融入精度管理的时候,精度管理就成为与软件品质改善并驾齐驱的主线。

  可视作业:工具的灵活运用

  可视化作业能在作业的效率和质量上给项目团队带来惊喜。日本软件企业在软件开发过程中注重作业过程中的可视化,追求项目成果的可预见性、项目问题的可追溯性、项目绩效的可评价性,利用各种软件开发工具来阐明现状、沟通思想、分析问题和团队作业,防微杜渐,通过新旧七大工具以及Microsoft Project等工具推动可视化,并在数据、图表、模型等的熟练使用方面拥有相当的根基。项目管理方面的“看板”就是典型。工具是用来处理其他事务的手段或器材。灵活运用工具解决实际问题的能力,对管理层人员来说至关重要:没有对软件开发过程的可见度就无法管理;而没有对事物进行适当的度量,也无法进行有效和高效的管理。软件工程的方法论主要在提供可见度方面下工夫,从多个角度推动可视作业,对软件开发的绩效发挥着越来越重要的作用。

  我们相信上帝,但其他人请用数据说明

  —— In God We Trust, All Others Bring Data.

  “我们相信上帝,但其他人请用数据说明。”如果试图对某件事的过程绩效作出判断,请用数据说话。如果没有数据,那么不要为结论而烦恼。因为没有数据说明,结论几乎没有意义,经历将表明真相。

  洛德·卡尔文(Lord Kelvin)在一个世纪前曾说:“当你能够度量所说,并将其用数字表达出来,你就能对之有一些了解;但当你不能度量,不能用数字表达时,你的了解就会处于贫乏而不满意的状态;它可能是知识的开始,但你在思想上还远没有进入科学的阶段。”度量与数据已经成为一种伟大而无可争议的信息提供者。拥有数据,你就知道自己身在何处。你可能并不喜欢数据带来的结论,但是你将不再犹豫和迷茫。在顾客关系管理中,信任是构建有效关系的重要因素,但问题在于任何人都不能总是奢望得到人们的信任,你首先应该去证明,因为维持信任就像在鸡蛋上行走必须小心谨慎。没有尊重数据发言权的环境归根到底是一种文化上的欠缺;没有数据描绘的未来自始至终是没有证据的未来。

  不能度量,就无法控制,也就无法管理

  —— If you can’t measure it, you can neither control nor manage it.

  H.詹姆斯·哈林顿(H.James Harrington)认为:“量化管理是第一步,它导致控制,并最终实现改进。如果你不能量化某些事情,你就不能理解它;如果你不能理解它,你就不能控制它;如果你不能控制它,你就不能改进它。”比尔·科蒂斯(Bill Curtis)在美国计算机协会软件工程国际论坛(ICSE’91:ACM International Conference on Software Engineering)上曾阐明:“不能理解,就无法管理;不能度量,就无法理解;不能建模,就无法度量;不能设想,就无法建模。”

  度量的核心要义就在于可预测性和可控制性。就像要修改缺陷一样,首先要能使缺陷再现。要想有效管理软件,首先就要对软件进行度量。软件度量包含的内容有:工作量的度量、进度的度量、成本的度量、过程产品质量的度量等等。如果不能度量,就难以切实把握现状,难以准确预测趋势,难以真正加以控制和管理,也难以为下一项目提供依据。要对软件开发项目加以控制和管理,就必须实施度量。

  经由度量,我们获得了共同的沟通语言

  —— The common communication language comes from measurement.

  数据最能表达现状,也最有说服力,也是沟通的通用语言。经由度量获得的数据是和股东、顾客、管理高层、项目组以及其他利益相关者进行沟通的最佳沟通语言,因为数据可以跨越“方言”的障碍,具有天然的说服力,是无边界沟通的最佳选择。惟一能衡量和检测软件开发项目的手段就是数据。不管是企业经营者还是项目管理者,最重要的过程就是决策,而决策的质量依靠信息的质量,信息的质量来自正确的、精准的度量。度量是一种能够用于决策的可比较的对象,是数据驱动型决策的基础。商业领域中的事项,需要借助数据进行思考和沟通。大概、非常、些许、尽量、觉得等词汇最好在恋爱的时候使用,商业领域中沟通的最佳语言就是数据。

原文转自:http://www.ltesting.net