技术开发 频道

商业软件企业如何借鉴CMM管理

【IT168 技术文章】

    虽然近年来,商业信息化推动了我国商业企业的管理进步,提高了全行业的科技素质,然而,由于种种原因,商业信息化的成功项目所占比例并不太高,一个突出的问题是软件系统/产品的研发周期长、质量低、成本高、开发进度难以控制、系统修改与维护困难等。

    实践表明:要低投入、高效率、高质量地开发软件,仅仅依靠运用新的软件开发方法与技术所达到的效果是十分有限的,必须以改进并加强管理软件的生产过程为中心,实施科学的、规范的软件工程管理,才是解决问题的根本所在。关于软件过程的改进和管理,目前国际上以卡内基·梅隆大学软件工程研究所CMU/SEI主持研究开发的软件能力成熟度模型(CMM,the Capability Maturity Model forSoftware)研究得最为深入,虽然目前还不是软件过程改进的工业标准,但用得较广。它为软件工程管理开辟了一条新的途径,能帮助软件企业改进和优化自身的管理,在提高软件开发水平和效率的同时提高产品的质量和可靠性,实现软件生产工程化。

    CMM模型是什么

    如同一个人在某个特定领域的能力是积累起来的一样,一个企业的软件能力也是逐步获得和增长的。如果在其发展过程中能得到一个很好的指南,那么就能不断达到一个个设定的目标,变得越来越成熟;否则可能会盲目发展,离自己的目标越来越远,甚至南辕北辙。CMM正是这样一个指南,它以几十年产品质量概念和软件工业的经验及教训作为基础,为企业的软件能力不断走向成熟提供了有效的步骤和框架。

    1、CMM框架

    CMM侧重于各项管理过程,将质量管理原理应用于软件成熟度框架的建立,指明了改进的目标,提供了循序渐进的步骤。根据软件生产的历史和现状,CMM框架可用5个不断进化的层次来表达,每个层次的主要特征为:

    (1)初始级是混沌的过程。软件生产过程的特点是杂乱无章,有时甚至混乱,几乎没有明确定义的步骤,项目软件的成功完全依赖核心人物,而没有相关组织、标准、规程的保证。
    (2)可重复级是经过训练的软件过程。建立了基本的项目管理过程来跟踪成本、进度和机能,有必要的过程准则来运用以前同类项目的成功经验。
    (3)已定义级是标准一致的软件过程。管理和工程的软件过程已文件化、标准化,并综合成整个软件开发组织的标准软件过程。所有的项目都采用根据实际情况修改后得到的标准软件过程来发展和维护软件。
    (4)已管理级是可预测的软件过程。制定了软件过程和产品质量的详细的度量标准。软件过程和产品的质量都被开发组织的成员所理解和控制。
    (5)优化级是能持续改善的软件过程。加强了定量分析,通过来自过程质量反馈和来自新观念、新科技的反馈使过程能持续不断地改进。

    基于这种级别的划分,既可以标识软件企业的过程能力,又可以方便地、有所遵循地实现持续不断的软件过程改进。因为,每种级别都提供了一个软件过程改进层次,每一个层次是通过实现软件过程中的一些关键过程区域来实现达到软件成熟度结构的。例如,软件企业达到CMM的第二级,则它要实现可重复级的全部关键过程区域,这包括6个关键过程区域:需求管理、软件项目计划、软件项目跟踪和监督、软件子合同管理、软件质量保证和软件配置管理。这样便可真正地推动软件企业的能力提高。

    2、基于CMM的软件过程管理

    CMM模型的成熟度理论主要涉及对软件组织和各类资源的管理,以及对软件工程过程的定义管理和如何度量、管理、改进这些过程,同时还包含对软件工程过程中使用的开发工具和技术的管理。因此,CMM模型实质上是一个管理标准,其软件过程成熟度级别的高低实质上就是管理水平的高低。

    在工程实践中,可视化是实用化的一种形式,是管理人员和不同人员之间进行交流的最重要手段。在CMM模型中,不同层次表现了不同的过程可见度,层次越高,过程的可见度越强,对过程的控制能力也越强。图1描述了不同成熟度级别下软件项目的可视状况以及不同成熟度级别所能采用的不同管理方式。

    (1)初始级的可见度最低,整个软件过程像一个黑箱,处于一种不可控状态。对管理者或用户而言,只能看到项目的需求和项目的结果,无法看到项目的软件过程,无法对软件开发进行监督。管理者和决策者不可能根据开发过程状态及时作出合理决策,项目组经常处于“救火”状态。
    (2)可重复级具有阶段可见度,可对软件过程实施阶段控制。开发过程好像一系列的黑盒子,可以按阶段来进行软件开发的控制和管理。但黑盒的内部结构仍不可见。这时已经建立了基本的项目管理活动,并在过程的检查点上对产品进行检查,以考察过程是否正常进行,或对发生的问题作出反应。用户也可在检查点上了解项目的进展。
    (3)已定义级具有了企业自己的标准软件过程。其软件过程中任意两个控制点之间的过程内部结构是可见的,每一个管理者和工程师都明确自己的位置和责任以及相互之间的关系,这些内部结构实际上是企业已定义好的标准软件过程在具体项目中的应用。同时,管理者能预见可能发生的风险,并为此做好准备。用户也能得到较为准确而快速的状况报告。
    (4)已管理级在已定义的软件过程基础上进行过程量化管理。管理者可以根据客观的度量,预见过程中的经费支出和其他情况,并定量地、有目标地做出决定。用户也能定量地理解过程的能力及存在的风险。
    (5)优化级的过程具有动态优化能力和自适应能力,可以很清楚地看到软件过程。为了提高生产率和质量,企业不断尝试新的软件开发方法和技术来优化过程。该层的软件过程不仅具有对存在过程的可见性,而且对过程潜在的改变、影响因素也具有预见性。管理者有能力估计及定量跟踪变化的影响和效果。用户和开发组织合作关系良性发展。

    3、基于CMM的软件过程改进

    任何软件过程必然属于这五个层次中的某一个层次。在不同层次中,需要实现带有不同层次特征的关键过程区域。在致力于软件过程改进时,只能由所处的层次向其紧邻的上一个层次进化,而不能是跳跃式的。并且,改进过程本身也是一个规范的、循环的、永不停止的过程。一个软件企业首先要通过过程评估、能力评估等手段诊断自己处于哪一个层次、还存在什么问题,然后根据诊断结果列出改进计划,经过相关的培训、实施,最后作出总结。一个过程的改善结束紧跟着下一个更高层次过程的开始,从而进入“评估—诊断—计划—培训—实施—总结”的又一循环。CMM模型使过程的改进成为有序。

0
相关文章