摘要:软件项目的开发有很高的失败率。从20世纪80年代后期开始,软件理论界和产业界开始重视软件的风险管理,并产生了一系列的风险管理过程模型,这些模型对风险管理的规范有积极的意义。文章回顾了风险管理模型的发展,发现目前的软件项目开发风险管理模型只强调承包工程方过程,而较少关注建设方的参与。这将带来二方面的不足:第一,建设方对项目的参与是成功的重要保证,没有建设方的参与的管理过程是不完整的。第二,在信息不对称的情况下,软件项目的开发风险被转移到建设方身上。为了有效解决目前模型的不足,文章在原有的风险管理模型基础上建立软件项目的建设方和承包商风险管理的协同过程模型,并设计了相关的数据结构和项目干系人在项目周期的不同阶段的参与情况。
关键词:软件项目;风险管理;协同;过程
一、 引言
世界银行的统计表明:在发展中国家的政府信息系统项目中,只有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)协调工作。具体来说是要不断地评估可能造成恶劣后果的因素;决定最迫切需要处理的风