CMM与软件外包管理

发表于:2008-02-03来源:作者:点击数: 标签:cmmCMM管理软件外包
“任何企业中仅做后台支持而不创造营业额的工作都应该外包出去,任何不提供向高级发展机会的活动与业务也应该采取外包形式。企业的最终目的不外乎是最优化地利用已有的生产、管理与财务资源。” 这是管理学大师彼得·德鲁克的预言,同时也反映了现代企业运作
“任何企业中仅做后台支持而不创造营业额的工作都应该外包出去,任何不提供向高级发展机会的活动与业务也应该采取外包形式。企业的最终目的不外乎是最优化地利用已有的生产、管理与财务资源。”

  这是管理学大师彼得·德鲁克的预言,同时也反映了现代企业运作的一条金科玉律——“利润最大化,成本最小化”。 软件业是一个高速变化、新技术层出不穷的行业,同时又是人力资源、人力成本相对较高的行业,更需要采用外包服务形式来合理地配置资源,最大限度地从分工合作、资源共享中获益。综观软件产业的现状,发达国家的软件外包已经成为软件企业发展的必要手段,国际间的软件外包与转包业已经日渐成熟。因此,中国软件产业要发展,就必须大力发展软件外包服务,做到专业分工明确、协作配合良好,形成一个完整的软件产业链。

  软件外包在CMM中的体现

  CMM2中的“软件子合同管理”KPA涉及了软件外包管理问题,它规定了企业应如何管理软件开发业务和软件开发子合同。但是,软件外包管理实际上涵盖了软件生命周期中的各个过程,任何一个软件外包过程都会涉及到需求管理、软件计划、质量管理、项目追踪、配置管理等内容,因此,不能孤立地看待CMM的软件子合同管理,而应该将其视为能将其他软件开发过程从公司内部部分或全部延伸到公司外部的管理规范与管理技术。通过软件子合同管理过程的实施,软件开发机构能够有效地管理与控制他们的业务分包过程。

  实际上,SEI还开发了另一个模型——SA-CMM(Software Acquisition Capability Maturity Model,软件采办能力成熟度模型),它是为需要采购或分包软件系统的公司或组织设计的能力成熟度模型,用来评估、改善或控制软件系统的获取过程。软件采办能力成熟度模型也分为5级:初始级、可重复级、已定义级、定量管理级、优化级。与CMM 不同的是,SA-CMM关注的是软件购买者的软件能力成熟度;而CMM关注的是软件系统承包者或开发商的软件能力成熟度。软件采办能力成熟度模型适用于软件生命周期的各个阶段,包括维护过程。

  因此,在CMM模型体系中,SA-CMM是作为管理软件的外包或分包过程的模型,需要评估或改善软件采办或分包过程的公司或组织可以按照SA-CMM模型去调整自己的组织管理能力和操作过程。由于软件采办能力成熟度模型是1996年才公布的,其影响还很有限,真正成功地实施了SA-CMM的公司或组织也比较少,因此,国内企业要想按照SA-CMM模型改善软件外包管理过程会遇到一定程度的困难。

  实施软件外包管理

  从CMM的“软件子合同管理”KPA开始实施软件外包管理是比较好的办法。CMM模型定义了软件子合同管理要达到的目标、实施时必须履行的承诺和需要具备的能力,定义了进行软件子合同管理应该进行的活动。但是,就像SEI对软件能力成熟度模型其他KPA的描述一样,只是给出了“应该做什么”,而对“如何做”这一关键问题并没有给出相应的指导,很多想实施软件外包管理的企业和组织都感到无从下手。我们参考了一些国外的资料,结合具体的实践经验,提出了一个框架性的描述,它包括以下13个方面的具体活动:

  ◆ 按照文档化的规范定义和规划子合同;

  ◆ 按照文档化的规范,根据承包商完成工作的能力选择承包商;

  ◆ 把与承包商签署的协议作为管理子合同的基础;

  ◆ 评审和批准文档化的承包商软件开发计划;

  ◆ 以软件开发计划为标准,跟踪软件开发过程;

  ◆ 按照文档化的规范,对承包商的工作陈述、子合同条款、条件以及其他约定进行更改;

  ◆ 双方的管理者一起执行定期的状态或协调评审;

  ◆ 承包商参与定期技术评审和交流;

  ◆ 按照文档化的规范在所选择的里程碑处进行正式评审,评价承包商的软件工程完成情况与结果;

  ◆ 软件质量保证组按照文档化的规范监控承包商的软件质量保证活动;

  ◆ 按照文档化的规范进行验收测试,定期评价承包商的能力。

  企业按照这些步骤,就可以初步开展软件外包管理活动。

原文转自:http://www.ltesting.net