在中国开展CMM评估的几点建议
周伯生
(本文转载自软件工程专家网www.21cmm.com)
从美国的软件产业发展可以看到,软件产业有结构化生产方式(1975年-1995年)、以过程为中心的生产方式(1985年-2005年)和工业化生产方式(1995-今)等三个发展阶段。
我国软件组织在软件过程的现状可以概括为以下三个方面:第一,我国正在由结构化生产方式向以过程为中心的生产方式和工业化生产方式前进。目前已有很多企业(不论是国营或者民营公司)认识到要按CMM改进软件过程,实施科学化、系统化的管理,以提高组织的软件能力成熟度,这表明具备了改善自我的强大动力。第二,目前在前进的道路上仍然有一些困难,如一些组织想通过ISO9000和CMM提高能力成熟度,但是他们不熟悉CMM的概念,也不知道CMM和ISO9000之间究竟有哪些区别。大部分软件组织在软件工程理论和实践两方面都比较薄弱,虽建立了软件过程,但过程阶段不明显,软件生产无序,对进度,预算,质量的预测和控制不得力,常常在遇到问题时就放弃原定计划,重视编程与测试,忽略需求分析和构架设计。高层管理对软件管理尚未引起足够的重视,没有配备足够的资源或合格的人员承担过程改善工作。第三,缺少文档化的过程描述,特别是缺少工作文档(如过程中的变更请求报告)、工作量统计文档(如时间和工作量统计表,周状态报告)和风险管理文档(如风险估计报告、风险评测报告)。缺乏对过程和产品进行测量,软件过程的历史数据很少,因此很难基于历史数据对工作量和进度进行合理的估计。各个软件组织应该基于对目前状态的了解,按照CMM标准找出存在的差距。差距就是不够成熟的地方,也正是应该加强改善软件过程管理的地方。
软件过程改进是一种含有大量管理成分的工作技术,它主要包括以下三个关键步骤:对比目前的状态和期望达到的状态,找出存在的差距;确定要改变哪一些差距,要改变到什么程度;制定相应的具体实施计划,其中的“具体”是指:要有明确的,可以检验的目标;要定出检验成功与否的标准;要有具体的实施办法;指定具体执行计划的人,并明确具体的职责与任务;要明确执行计划的主要领导或协调者,以负责解决在计划执行中出现的问题;要列出“实施计划”所应用的新技术与新工具以及如何获得这些新技术与新工具。
我国软件产业方兴未艾,实施CMM可以在起跑线上改变我国的软件工程文化,改善软件人员的素质,不仅对我国的经济具有重要意义,也是提高软件企业素质,增强软件企业的国际竞争力的必要前提,而且还为软件的出口创汇创造了条件。CMM是一个较好的软件改善框架,但CMM只给出做什么,并没有给出如何做。因此要认真研究如何遵循CMM模型进行具体操作的问题。
为了更好地理解CMM,提高软件组织的过程管理能力,顺利通过CMM评估,基于我们对 CMM的研究与评估实践,给出如下建议:高层管理应该把更多的注意力放在过程改善上,设立过程改善的专职队伍。这一方面是因为过程改善是思想观念和工作方式的改变,是企业文化的转变,它涉及到企业中绝大部分工作人员。另一方面是因为以过程为中心是软件工业化生产的三大支柱之一,只有高度重视,加强研究,学习和实践,才能真正使软件生产向产业化方向迈进。
在软件过程改善上应配备必要的资源,要建立一支有相当规模的改进队伍,在投资上应达到足够的力度。在组织内部,首先要建立软件工程过程组(称为SEPG),负责软件过程改进任务,并挑选合格的人员担任全职的SEPG组长。根据国外经验,一般需要占该软件组织中开发资源的5%~10%,根据世界上近1800个组织的评估实践证明,进行CMM评估的效益是投入的4倍~8倍。
建立合适的组织结构,研究软件工程理论和软件过程改进方法,负责制定和实施过程改进计划,他们是实现企业评估活动的具体组织者。在执行计划的过程中,注意检查它的遵从性,如遇偏离,应研究原因,并采取相应的纠正行动,他们是企业进行定期过程诊断的内部评估师和企业过程改进活动的监控者。
要加强培训工作,开展能力成熟度评估既要有高素质的主任评估师,也要有相当的过程评估队伍,更要有庞大的过程改善队伍。要认识到只有高素质的人员,执行成熟的良好过程,才能生产出好的产品,应普遍开展CMM及软件工程基础的培训,使每个岗位的人员都具备过程改进的意识,并掌握所必要的过程改进知识和技能。
测量数据是进行过程改进的基础,要重视过程与产品的测量过程。在项目的整个开发过程中,特别是在里程碑处,要收集过程的执行数据,记录活动状态,既为当前项目的测量和分析提供数据,又可作为历史数据保留下来为今后的项目参考。这些数据主要包括:软件规模、工作量、成本和进度的估计数据和实际数据,产品质量测量数据,需求变化情况以及风险分析数据等。
应重视软件配置管理及配置管理工具的开发。配置管理最主要的目的是在项目的整个软件生命周期中建立和维护软件项目产品的完整性,系统地控制对配置项的改变,并管理组织的软件工程资产。配置管理的内容繁多,权限管理复杂,开发或采购合适的配置管理工具是非常必要的。
在我国开发CMM评估,既要注意智力引进,聘请国外的主任评估师为我国进行过程评估,更要着力培养我国自己称职的主任评估师。这不仅还是因为中国是一个潜在的IT 大国,而且还因为CMM实施与一个国家的文化密切相关。此外,改善软件过程本身也是一个过程,需要长期地得到有资格的主任评估师的帮助。各行各业的主管部门都要扶持和支持培养我国自己的主任评估师,把培养主任评估师看作是转变观念和创新知识的新产品。要充分认识到过程改善工作的长期性与艰巨性。过程成熟度升级本身就是一个过程,而且有一个生命周期。因此,过程改善工作必然具有一切过程所具有的固有特征,不能急功近利。
在CMM评估工作中,要提倡将能力成熟度模型CMM与个体软件过程PSP以及群组软件过程ISP有机地结合起来,同时密切注意过程改进的新动向。各地应在软件产业主管部门的支持和协调下,统筹社会各界的力量,加大软件过程改进的研究、评估和实施的力度,把我国的软件产业推向前进。首先要在企业内部建立庞大的过程改进队伍,积极研究、实践和推动过程改进工作。认真建立CMM主任评估师队伍,认真建立各门有关课程的合格的教员队伍。还要通过市场竞争机制,扶植和建立过程改进的咨询机构和中介机构。