一、 引言
世界银行的统计表明:在发展中的政府信息系统项目中,只有15%是完全成功的。因此,加强软件项目开发中的风险管理是软件开发中的重要的工作之一,尤其对于大型的软件项目,软件风险管理的奠基人之一,Charatte认为大型软件项目的管理是风险管理。
Microsoft的量化研究表明,在风险管理中投入5%的项目工作可以获取50%~75%的如期完成的机会。可见风险管理在软件开发中的重要性。风险管理的研究在起源于20世纪80年代末,经过二十多年的发展,产生了大量的理论成果并对软件项目的开发起到积极的作用。其中,风险管理的过程研究是风险管理的框架和基础,为风险管理提供规范的模式。本文在分析现有研究的基础上建立软件项目的建设方和承包商风险管理的协同过程模型,以实现更加完整的规范的风险管理。
二、 风险管理过程模型的比较
1. Boehm模型
Boehm于1991年详细描述了他的思想体系。Boehm认为:软件风险管理这门学科的出现是试图将影响项目成功的风险形式化为一组易用的原则和实践的集合,是在风险成为软件项目返工的主要因素并由此威胁到项目的成功运作前,识别、描述并消除这些风险项。他将风险管理过程归纳成二个基本步骤:风险评估和风险控制。其中风险评估包括风险识别、风险分析、风险排序;风险控制包括制定风险管理计划、解决风险、监控风险。
Boehm风险管理理论的核心是维护和更新十大风险列表。他通过对一些大型项目进行调查总结出了软件项目十大风险列表,其中包括人员短缺、不切实际的工期和预算、不合时宜的需求、开发了错误的软件功能、开发了错误的用户界面、过高的非实质性能要求、接连不断的需求改变、可外购部件不足、外部已完成任务不及时、实时性能过低和计算机能力有限。在软件项目开始时归纳出现在项目的十大风险列表,在项目的生命周期中定期召开会议去对列表进行更新、评比。十大风险列表是让高层经理的注意力集中在项目关键成功因素上的有效途径,可以有效地管理风险并由此减少高层的时间和精力。
2.Charette模型
1989年Charette设计的风险分析和管理的体系分为两大阶段,分别为分析阶段和管理阶段,每个阶段内含三个过程,这是一个相互重叠和循环的模型。Charette同时为各个过程提供了相应的战略思路、方法模型和技术手段。
3.CMU/SEI的CRM(Continuous Risk Management)持续风险管理模型
CMU/SEI的软件风险管理原则包括:
(1)全局观点;
(2)积极的策略;
(3)开放的沟通环境;
(4)综合管理;
(5)持续的过程;
(6)共同的目标;
(7)协调工作。
具体来说是要不断地评估可能造成恶劣后果的因素;决定迫切需要处理的风险;实现控制风险的策略;评测并确保风险策略实施的有效性。CRM模型要求在项目生命期的所有阶段都关注风险识别和管理,它将风险管理划分为五个步骤:风险识别、分析、计划、跟踪、控制。它强调的是对风险管理的各个组成部分的沟通。
4.IEEE风险管理标准
IEEE风险管理标准定义了软件开发生命周期中的风险管理过程。这个风险管理过程系统地描述和管理在产品或服务的生命周期中出现的风险。包括以下活动:计划并实施风险管理、管理项目风险列表、分析风险、监控风险、处理风险、评估风险管理过程。
5.CMU/SEI的CMMI(Capability Maturity Model Integration)风险管理过程
CMMI是由SEI在CMM基础上发展而来。目前,CMMI是全球软件业界的管理标准。风险管理过程域在CMMI的第三级,即已定义级中建立一个关键过程域(KPA,Key Practice Area)。CMMI认为风险管理是一种连续的前瞻性的过程。它要识别潜在的可能危及关键目标的因素,以便策划应对风险的活动和在必要时实施这些活动,缓解不利的影响终实现组织的目标。CMMI的风险管理被清晰地描述为实现三个目标,每个目标的实现又通过一系列的活动来完成,如图1示。
该模型的核心是风险库,实现各个目标的每个活动都会更新这个风险库。其中活动“制订并维护风险管理策略”与风险库的联系是一个双向的交互过程,即通过采集风险库中相应的数据并结合前一活动的输入来制订风险管理策略。