软件产业的发展给予一定的政策扶持是必需的,上海软件产业的发展,始终受到市政府极大的关怀和支持,因此软件产业在近年得到了迅速发展。但是软件企业在企业管理和软件开发过程管理方面却一直不能得到充分的提高,产品和服务的质量以及与国际产业界对话的能力一直存在较大的问题。看来,仅仅只有政策上的扶持是不够的,一定的政策和订单还不足以使软件企业充分重视企业管理水平和软件开发过程管理水平的迅速提高,还需要通过“双管齐下”,同时通过强制性的准入手段来推动软件企业总体管理能力和素质的提高。
2002年7月,就提高软件企业能力素质的方法、途径和CMM在软件企业中的实施等问题,会同市信息办产业处共同组团赴美国进行了考察。
一、政府采购软件与服务,供应商须通过CMM认证
1986年底,美国联邦政府,特别是国防部,希望能有一套评估软件供应商能力的方法,以此来选择供应商(其实我们现在很多的客户,特别是政府部门,对如何判断供应商的能力也大为头痛,供应商们在介绍自己的能力和方案的时候,几乎都将自己说成是最完美的公司,真是难以抉择)。为此,卡内基·梅隆大学的软件工程研究所(SEI)正式开始着手这项工作。1987年9月,发布了一份“能力成熟度框架”和一套“成熟度问卷”。四年后,SEI总结了实施“框架”和“问卷”以及对软件公司评估过程中的经验与教训,在"成熟度框架"的基础上建立了一个模型(CMM1.0版),这个模型可以更有效地帮助软件企业建立和实施过程改进计划。1993年SEI又推出了CMM1.1版本。2001年底推出更具创新意义的CMMI。
CMM的诞生主要是服务于政府的软件与服务采购,帮助政府在软件与服务的采购过程中不至于出现严重的选择错误。它的产生又是美国千百个软件公司数十年软件开发经验的总结和升华。对客户(包括政府)来说,CMM是衡量软件供应商状况的一个基本标准,而对于软件企业来说,CMM是基础的、科学的管理体系。由于美国政府对软件企业设立了软件与服务采购的CMM认定,因此CMM在美国的广泛实施和认同就是必然的了。从美国的实际情况来看,CMM的推广与实施起到了一个良性循环的作用:政府所采购到软件和服务的质量不断提高,效率和效益也在提高;企业在实施CMM的过程中又切切实实地提高了管理水平,从而出现了一个双赢的局面。
现在美国已经形成这样一条制度:凡是要承接政府订单的软件公司,必须通过CMM认证,否则一切免谈。因此,想做政府项目的软件公司无不积极地实施CMM。由于美国政府的导向作用,如今,不仅做政府项目的公司积极实施CMM,其他的企业也同样在积极实施CMM。
二、CMM实际作用与价值
软件开发与服务的过程是一个无法看见的过程,软件公司管理人员和软件客户都难以对过程进行有效的了解和控制,等到发现问题再进行修正,工期、预算、生产率就会受到严重影响。CMM的作用是使得一个软件项目的参与者(软件公司管理人员和开发人员、软件客户等),根据业务分工充分把握项目的时间节点、技术、文档规范、人员、工时、预算、成本等各个方面的情况与要求,从而实现软件开发过程“透明化”和高度可控性,同时可以有效降低编程过程中的差错率。
在雷神(Raytheon)电子系统公司,有一本超过三百页的“蓝皮书”。这是一本从1988年开始制定,1991年在该公司实施CMM过程中重新修订,此后每年都进行更新的公司软件开发人员的“宝典”,它对整个软件开发过程中的所有环节都制定了严格、详细、规范的标准,从而使得公司软件开发的时间、成本、预算、人员数量得到精确的控制,差错率大大下降,效益大大提高。该公司从最初在预算、时间、人力等方面的估计与实际相差大约40%,到现在的估计与最终结果误差控制在5%以内,劳动生产率在10年中提高200%(见图一、二)。