软件项目风险管理的研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件项目风险管理的研究
风险是遭受损失的一种可能性,发生在20 世纪70 年代初期的软件危机彻底让人们认识到软件开发过程中存在的风险。1989 年Boehm 首次提出了软件开发过程中风险管理这一概念,如今随着计算机技术的发展,软件的复杂度越来越高,而且针对具体行业的项目日益增多,对软件项目系统化、规范化管理的需求越来越迫切。
风险管理是项目管理中不可缺少的一部分,而软件项目的风险管理更是软件项目管理中的重要内容。大量的统计表明,实行有效的风险管理是软件项目开发过程中减少损失的一种重要手段。风险管理不仅仅存在于项目可行性研究阶段,是贯穿在软件项目开发周期的全过程中。
风险管理是指辨识、分析和控制风险的活动,这组活动不是孤立的,而是一组系统化、持续化的过程。根据美国项目管理学会的报告,风险管理有三个定义: (1)风险管理是系统识别和评估风险因素的形式化过程。(2)风险管理是识别和控制能够引起不希望变化的潜在领域和事件的形式、系统的方法。风险管理是在项目期间识别、分析风险因素,采取必要对策的决策科学与艺术的结合。软件项目风险管理出现在上世纪80 年代末,到现在只有三十多年的历程,在软件项目风险管理领域中,人们多是借鉴于工程项目的管理方法来解决软件项目开发中出现的风险问题,并且对于软件项目的风险管理概念的理解是来自于其他工程项目的风险管理,并在其基础上有所讨论和改进。
因此,软件项目风险管理是指项目管理团队通过风险识别、风险量化和风险控制,采用多种管理方法、技术和工具,对软件项目所涉及的各种风险实施有效的控制和管理,采取主动行动,尽量使风险事件的有利后果(带来的机会)最大,而使风险事件所带来的不利后果(威胁)降到最低,以最少的成本保证项目安全、可靠的实施,从而实现项目的总目标。
软件项目风险管理过程一般包括风险识别、风险分析、风险应对三个过程元素。
Boehm 将软件项目风险管理过程分为两个基本步骤:风险评估和风险控制。其中第一步风险评估包括风险识别、风险分析和风险优先级;就是说首先提出一个风险列表,评估列表中各项风险出现的概率和影响,从而判定风险的级别即风险考虑的优先顺序,这个风险列表是风险控制的基础;当风险因素的优先级判定出来后,第二步就是风险控制,包括风险管理计划、风险化解和风险监控。这一步中,首先要制定一个应对每项重大风险的方案,并按照方案实际执行化解风险的活动,并在过程中进行监控。
项目风险识别是确定何种风险事件可能会影响项目,并将这些风险的特性整理成文档。而软件项目的风险由于软件项目的复杂性、特殊性,可以归纳为以下三个主要方面:
(1)需求风险,就是需求不确定的风险,软件产品是非直观的,是一种一次性独一无二的努力,具有不可重复性,包含了许多不确定性的因素。比如软件系
统使用者对于系统将要现的目标即具体需求不能准确地描述。此外,软件项目开发链长,用户的需求不断地在变化。
(2)技术风险,软件开发过程中很多做法没有现成的行业规范和标准,而且软件技术发展飞速,各种新技术层出不穷,潜在的设计、实现、维护等方面的问题,会威胁到软件产品的质量和交互时间。
(3)管理风险,软件项目对协调性的管理工作要求更高,管理和控制更困难更复杂,使得管理者任务承担者很难达成双方一致的目标。项目内部人员沟通不充分,导致开发人员不能彻底了解用户对系统的具体需求,对系统设计的理解存在偏差。
Boehm 博士开发了一套风险分析模式,其中核心是前10 位的风险识别列表,它有助于识别高优先级的对需求、技术和管理方面有影响的风险项目,该列表还同时提供了有效避免和解决关键风险项目的风险管理技巧。
评价风险发生的概率以及影响可以使用定性分析方法和定量分析方法。定性风险分析通常是为风险应对规划过程确立优先级的一种经济、有效、快捷的方法,并为定量风险分析奠定基础。定性风险分析指通过考虑风险发生的概率,风险发生后对项目目标的影响和其他因素,对已识别的风险优先级进行评估。定性风险分析依赖于专家的直觉判断,它是利用专家的经验来对风险重要性进行评估。定量风险分析指对定性风险分析过程中作为对项目需求存在潜在重大影响而排序
在先的风险进行分析,它是在不确定情况下进行量化的一种方法,对项目结果以
及实现项目结果的概率进行量化,评估实现具体项目目标的概率,通过量化各项风险对项目总体风险的影响,确定需要重视的风险。
本文介绍了软件项目风险管理的基本内涵,论述了软件项目风险管理中三个重要的过程因素:风险识别、风险分析、风险应对及监控,并基于Boehm 十大风险列表对软件开发过程中各阶段的风险进行分析和研究,给出一般软件项目风险应对措施。风险是一个客观存在,软件项目的风险管理是一种特殊的规划方式,项目风险的后果不只有损失,还有机会和期望。我们必须正视风险,采取正确的风险应对策略,才可以避免、化解、控制风险,最后实现项目的总目标。