CMM对中国软件产业是非常有价值的,它的重要性是它的那个笔者在“ 软件工程与软件能力成熟度模型SW-CMM”一文中提到的“合成的菜单与菜谱”的特性。
中国软件产业较年轻,专业人员也年轻,企业的数量也是近年来才增长起来的,没有大量通过长期实践积累起来的经验。不象外国公司能做到以老带新。大概许多企业还未能建立起一套健全的软件工程过程。在这种近乎一张白纸的情况下,充分地利用CMM和其他的软件工程过程管理与改进的方案,可以帮助企业迅速地学习与建立起一个软件工程过程,从而开始实施管理与改进。
利用别人已有的经验,取其对自己有用的部分,或作修改后采用,以此作为一个起点。然后,在实践中继续改进,加以创新。这应该是我们赶超世界水平的一种办法。
然而,在国内,许多人一谈到ISO9000,就必讲“质量 认证”;一提到SW-CMM,就必讲“评级”。这是一个预示危险的信号,处理不好的话,引进国外软件工程过程技术的工作很有可能在一开始就走上弯路,严重损害中国软件产业的发展。花力气讨论清楚这个问题,比讨论具体的技术问题更为重要。
论“质量认证”
首先,必须讨论“质量认证”这个问题。(可能这个错误的术语原来指的是与ISO9000有关的“ 质量管理体系认证”,但是,讲成“质量认证”,会有误导性的影响。)
笔者认为,有人提出要以“质量体系认证”作为提高软件质量的突破口,把软件业推广ISO9000认证作为促进软件业发展的一个战略方向,是一种不妥的做法。把企业追求的目标定为“质量体系认证”,取代了实际的产品质量。在追求“质量体系认证”的时候,华而不实,甚至弄虚作假的“豆腐渣认证”、“两张皮”现象必然发生。结果将会是劳民伤财,损害了国家和企业的利益,也误导了用户。中国必须停止再吃这类的亏!
我们并不是完全不需要“质量体系认证”(对于CMM来说,是“能力等级评鉴”或“评级”),但那只适用于合同承包企业的选择或其他一些特殊的场合。搞一场“认证、评级运动”,弄不好会为软件产业带来一场灾难,因为我们错失了真正的目标。同时,中国的软件企业并不富裕,不一定能担负得起咨询与认证费用。或者,他们也还未有足够的人力与财力去全面推行CMM。一定要让他们有自由去选择与制定一种最适合各自具体情况的发展方案与时间表。
国内有学者指出,有些企业搞“质量体系认证”只是为了做个 广告,作为一种市场竞争的手段。但是,为什么企业会有这种错误的认识呢?为什么通过了“质量体系认证”,就可以用作广告和竞争手段呢?追根寻源,这种错误的认识是来自广布于媒体的一些错误的提法,出现于各种形式的文章、讲话、报道、甚至是一些政策性的文件中。实际上是这些宣传误导了企业。如果没有把“质量体系认证”捧到不切实际的地位,与实际的产品质量混同起来,就没有人可以利用它大作广告。客户使用的是产品,而不是“认证证书”。我们的客户和市场还很年轻,辨识力还不是很强,因此,有机会在媒体上发表言论的人,千万不要忘记自己的责任。技术上的问题,是绝不能搞“炒作”的。
许多企业是有口难言,同行业的竞争对手都搞了“质量体系认证”,并且大作宣传,因此自己也被迫要搞。我们自己要问一问,为什么会形成这么一种风气呢?我们必须立即纠正任何误导与误解,明确指出,通过“质量体系认证”或达到CMM“等级评鉴”的某一级,只表明该企业有某一程度的潜在能力去开发和制造出高质量的软件产品。但并不等于它真正能做出好产品,或它的任何一个产品都是质量好的。
让我们看看几个质量方面的著名学者对质量所下的定义:
丹明(Deming):“质量由满足需求的能力组成。”
左兰(Juran):“质量就是适于使用。”
克罗斯比(Ceosby):“质量意味着符合基于用户需要而制定出来的要求。”
可见,“质量体系认证”完全不同于真正的产品质量,称之为“质量认证”,更是一种误导。
我们应当建立一种健康的 标准:“在质量面前人人平等”。鼓励企业在开发和制造出高质量的产品,提供高质量的客户服务方面进行竞争。媒体要宣传这两种质量。在报道软件企业的过程管理与改进的成效时,谈的还应该是这两种质量,而绝不是把通过了“认证”或“评鉴”作为一种终极的成果来宣传。
这里必须注意到,一些从事咨询业务的公司有意夸大“认证”的作用。有些甚至严重到明知被评鉴的对象并未符合条件去开展“评级”,或是在评鉴过程中有意放水,以满足客户的要求。这种现象,一切有关的方面都要有清醒的头脑。这种咨询公司只求收入,他们是不管客户是否真正提高了软件能力的。通过这种手段获取“认证”或通过“评级”的企业,实际是在自欺欺人。以为是拿到了什么“通行证”,但没意识到,缺乏真正的质量,最终是要被“驱逐出境”的。
让我们仔细地考虑一下两个问题:
1、“质量体系认证”的结果可靠吗?
2、通过了“质量体系认证”之后,企业就一定能开发生产出高质量的软件产品了吗?没做“质量体系认证”,就不能开发生产出高质量的软件产品了吗?
答案都是:“不”。因为关键并不是“认证”不“认证”。
国内与国外都有有关的文章论述这些问题并且举出了具体的实例。因此,关键是企业内部的实际运作,“质量体系认证”保证不了什么。
这可以说是一个常识性的问题。在现实的生活中,同样是在学校中所有科目都考满分的学生,在工作中的表现会大不相同;有高学位的人不一定能出好成果;具有同样专业级别的人,工作实绩会有天壤之别。因此,片面地强调和依赖考核评鉴是非常危险的。
轻视与迷信SW-CMM都是错误的态度。应当把它作为参考资料,就象一本某间名饭店编的“菜谱大全”、一本某美术学院编的“油画技法”、或某出版社编的一本“写作教程”。如何理解参考资料的内容的灵魂,学到其中的基本原则与目标,并结合自己的实际加以灵活运用,才是我们应取的态度。
关键是什么?关键是企业实行过程管理与改进,真正达到按时、按预算地开发生产出高质量的软件产品。给用户拿出高质量的产品来!在这里,“认证”与“评鉴”都不是必须的。
“用友”、“金蝶”等企业在软件过程管理方面所取得的成绩,关键是由于领导层的重视和参与,致力于实质的内部 过程改进。没有“认证”,他们同样会成功。
软件企业都希望能够生存与发展,都希望能建立过程管理与改进,以提高自身的能力,并不需要别人去迫。有人说,软件业推广ISO9000认证,应是以企业自愿为前提。但是,当相关的政策上有这么一些条文:“通过ISO9000体系认证的企业,优先...,优先...;政府优先采购通过ISO9000体系认证的企业的产品。”、“优先支持和推广通过质量认证企业的软件产品。”的时候,哪一个企业还可以“自愿”呢?从这么一些条文中,人们无法不得出这么一个结论:ISO9000体系认证,比实际的产品质量更重要!
笔者认为,要适当控制“认证”与“评级”的使用。只有在无法对最终产品的质量进行鉴定(例如,发出软件合同)的时候,才应用这类方法。
笔者建议,有关部门是否可以考虑成立一个软件产品质量鉴定系统,对上市的同类软件进行测试比较,评定分数,公布结果。测试人员可分为两类:专业工程师与产品用户。测试的项目可以各方预先商定。可从最简单的两点做起:1.说明书是否清晰。2.产品是否如实执行说明书中的各种功能。
举一个例子,硅谷这里有一间公司,专门作电路仿真器的评比。他们设计出了一系列的测试项目,用以比较各产品在不同 平台上运行,对不同类型的电路进行仿真时的功能表现。他们的评比结果是很有权威的,成了用户选购产品的依据。而仿真器的制作厂家则不断努力改进产品,以期在下一次评比中有更好的表现。这间评比公司是附属于一个电子专业刊物的。他们向参加评比的厂家收取评比费用。我们可以用各种灵活的方式进行官办或民办的评比。
笔者使用的一个国产软件,在功能的实现上错误很多,自认为领先的核心技术竟带有违背一般常识的结果,甚至产品说明书与实际产品完全对不上号。借用一位国内同行的话:“简直不能相信这样的产品竞能够通过他们自己的质检关!”但我相信,这类公司是满有可能会花力气去通过“质量认证”的。
我们应该做的是,帮助企业认识实行过程管理与改进的重要性,向他们提供有关的知识与讯息,与他们一道解决遇到的困难,协助企业间交流经验,大力宣传企业由于实行过程管理与改进而取得的最终产品与用户服务质量及企业业绩的成果,以这些成果来进行竞争。有关的从业人员、专家学者与媒体在这些活动中可以大有作为,作出应有的贡献。
文章来源于领测软件测试网 https://www.ltesting.net/