CMM―软件能力成熟度,如今,已经成为了软件质量保障的代名词。其实,只要有一个科学合理的软件管理流程,不实施CMM也一样能够生产高质量的软件产品。但是,这并不代表CMM就不应该推广,只是,我们应该提倡因企业而异,根据企业自身实际情况选择保障软件质量的方式。
软件能力成熟度模型是软件组织管理的一种方法和工具。我国软件业以何策略应对国内国际市场和用户的最终需求是一个很值得研究的问题。我们特别提出要加强软件测量研究这个观点,而不是盲目追从某一种规范。
软件质量 必须重视
当今是个信息时代。信息产业已由平台(单机)时代发展到了网络系统时代。各种各样的商业模式正在迈入基于网络系统的新时期。信息产业的制造商正大力开展基于数字信息的全寿命管理运动,其中包括需求生成、产品系统分析、初步和详细设计、制造验收、批量生产和运用管理。信息使市场战争形态发生了根本变化,我们把21世纪的市场战争定义为信息化的战争应该是恰如其分的。
信息技术深刻影响着世界,影响着每个人。几乎所有的人都看到了信息技术是经济增长的新发动机(如图1所示)。
在信息产业中,计算机的发展速度最为迅猛(如图2所示),其中软件产业比硬件产业发展速度更快。例如:1979~1992年,美国防部采购软件的费用增长了8.5倍;采购硬件的费用只增长了2.6 倍。同时,软件开放也在日趋成熟,例如廿世纪80年代后期生产的F-16C战斗机的相关软件,只需要230000条软件语句,而新型飞机F-22估计需要4~6百万条语句。
但是,众所周知,软件中微小的失误,可能会导致质量事故、产品报废甚至人员伤亡。软件质量的极大重要性,早已为世人所知。随着软件自身价值的提升,软件修复费用也在攀升。
软件是:
* 人造的最复杂的系统;
* 以个人劳动为基础的产品;
* 和文化、心理、集体性有极大关系。
所以,要重视软件质量、加大软件质量研究的投资势在必行,否则,自已于客户的损失不言而喻。
质量管理 方法众多
世界上成功的软件生产商,如微软、Oracle、Sybase等都没有参加CMM评估,但是他们的软件质量确实得到了广泛的信任。这些厂商都有自己一套成熟的软件质量管理规范,我们就称之为“洋办法”吧。当然,这些大公司的雄厚资金、大量的软件人才及其他“硬件”条件也不是一般的企业可比拟的。
就我们身旁的一些软件企业来说,多年来一直为社会各界输送着质量可靠的软件产品,至今依然活跃在软件业。这样的企业内部也有自己的软件质量管理规范,我们姑且称之为“土办法”吧。印度通过CMM评估的企业很多,但是没有参加CMM评估的软件公司也一样朝气蓬勃。看来是否要走国际化道路是选择是否一定需要CMM评估的一个重要因素。
不论是现在流行的“时尚规范”――CMM、“洋办法”还是“土办法”,能够让企业生存、发展就是好办法。所以,如果只是从这一点上讲,实施CMM就不是唯一的质量保障措施。但是,我们今天还是要研究CMM,因为,不可否认CMM评估是具有代表性和科学性的。我们可以通过分析CMM评估而提升自己的管理水平。
软件能力成熟度模型重点是从组织管理方面研究评估软件生产过程,从而提高软件质量。软件业通过多年实践,总结出软件质量是人才、过程和技术的函数,即
Q= f(M,P,T)
其中,Q表示软件质量;M表示人才;P表示软件生产过程;T表示技术。
* 三位一体的最高境界
根据这个公式,我们可以看到所有的企业都希望达到的最高境界:M、P、T三路齐整,和谐统一。
在上面给出的形式化的公式中,人才、过程、技术可以被看作是独立的,实际上人才、过程、技术是相互依存的关系。把三者都合理地管理起来,使人才、过程和技术相互配合,达到整体最佳状态,这必然是应追求的目标。这一策略对大小软件组织都是适用的,都是必须应用实施的。
*百花齐放的质量控制
具体说,我国软件企业对参与CMM评估的问题应根据实际情况区别对待。而且,我们再次提醒那些有能力发展CMM评估的企业,一定要抓住时机、坚持到底,千万不可半途而废。与其干了一半再放弃,成了一个“半吊子”,还不如一开始就不要做。
这里我们为大家提供一些选择:
(1)欲进军国际市场,通过CMM评估,是软件产品质量达标的标志,也是通行证;
(2)大型软件企业,财力人力足够强,可借助主任评估师经验,进行评估,发现优点、弱点,制定措施,提高软件质量,培养人才;
(3)咨询服务公司可培养软件质量管理人才,开展软件质量管理(包括CMM评估)服务;
(4)我国是软件潜在大市场,未来软件生产大国,应组织开展软件质量研究;
(5)军用和国防工业用软件,要自己搞研制、质量管理、测试和运用维修。
在当前世界软件市场上,我国软件产品所占份额很少。如果我们的企业在此时采取合理得当的策略,这种情况必然会改变,一个新的软件大国将会出现。
*必须开展的质量研究
无论怎么样,我们都应大力开展软件质量研究。
在软件质量方面,我们需要投入人力和资金,需要在理论和实践上进行深入研究。软件质量研究需要软件工程知识、统计质量控制方法、软件测试和计量、软件质量管理知识、管理科学和管理工程等。特别地,需要研究全面质量管理思想和方法,并把它用于软件生产过程。全面质量管理是全面质量控制的逻辑性的发展:
质量:是连续满足顾客需求。