当前位置:首页 > 软件项目风险的识别与风险的分析
软件项目风险的识别与风险的分析
摘自—项目管理技术
软件开发项目是一项复杂的工程,涉及的因素很多,风险的管理过程有:风险的识别、风险的管理计划的制定、风险追踪、风险控制。风险识别是风险管理的第一步,而有效的风险分析是进行风险管理的基础,因此做好这2个过程的工作是软件项目成功的关键。 1 软件风险的识别
风险识别过程的活动是将项目实施中的不确定性转变为明确的风险陈述。系统地识别风险是这个过程的关键,识别风险不仅要确定风险来源,还要确定何时发生、风险产生的条件,并描述其风险特征和确定哪些风险事件有可能影响本项目。风险识别不是一次性的活动,应当在项目执行过程中自始至终定期进行。 1.1 风险识别的依据
从项目管理角度讲,风险识别依据有:合同、项目计划、工作任务分解WBS、各种历史参考资料(类似项目的资料)、项目的各种假设前提条件和约束条件。
从软件开发的生命周期看,每个阶段的输出(各种文档)都是下一阶段进行风险识别的依据,许多技术风险都可据此来分析。 1.2 风险识别方法和工具
风险识别的方法很多,不同的方法适用于不同的场合,下表给出了常用的方法的适用情况。
识别方法 适用情况 专家访谈法(Delphi) 从定性方面出发进行初步风险识别 历史纪录统计法 从定性方面对新项目的风险进行预测 现场调查法 对一些动态风险因素进行识别与预测 风险数据库 故障树分析法 流程图法 聚类分析法 模糊识别法 类似项目的风险识别 直接经验较少的风险识别 分阶段进行的项目风险识别 具有相同或相似属性的风险识别 风险的形态或属性不确定 软件项目的风险识别通常采用的工具为:
(1) 风险核对清单:将可能出现的问题列出清单,然后对照
检查潜在的风险。
(2) 头脑风暴法:项目成员、外聘专家、客户等各方人员组
成小组,根据经验列出所有可能的风险。
(3) 专家访谈:向该领域的专家或有经验人员了解项目中会
遇到哪些困难。
(4) 风险数据库:一个已知风险和相关的信息的仓库,它将
风险输入计算机,并分配下一个连续的号码给这个风险,同时维持所有已经识别的风险历史纪录,它在整个风险管理过程中都起着很重要的作用。
在实际应用中,风险核对清单是一种最常用的工具,它是建立在以前的项目中曾遇到的风险的基础上。该工具的优点是简单快捷,缺点是容易限制使用者的思路。
1.3 风险种类
风险识别出来后应该规整分类,分类可从多种角度定义和划分,一般可按风险引发的原因、项目开发阶段、风险严重程度、风险区东引资等进行分类。下面介绍2种典型的软件风险分类方法。
(1)、SEI:1993年SEI发表了基于分类的风险辨识方法(TBQ)。该分类法把系统分为三个类(Class),每个类又分解为若干个因素(elements),每个因素通过其属性来体现特征。
(2)、美国空军软件项目风险管理手册:这种方法要求项目管理者根据项目实际情况影响软件风险因素的风险驱动因子,这些因素包括以下几个方面。
性能风险:产品能够满足需求和符合使用目的的不确定程度。
成本风险:项目预算能够被维持的不确定程度。 支持风险:软件易于纠错、适应及增强的不确定程度。 进度风险:项目进度能够被维持且产品能按时交付的不确定程度。
笔者借鉴SEI的思想,在大量调查和实践的基础上,结合已有的历史文献资料,对软件项目风险进行了分类和提炼,识别出8类风险,共48个风险因素,如表所示: 类型 需 求 风 险 风险因素 类型 项目的需求不明确,很难计 界定 系统需求不正确 划 和 控 对系统需求识别得不够充制 分,有遗漏 风 缺少大量的历史数据作为参考 对项目进度估算的不够充分 对项目资源估计的不够充分 没有完善、全面的项目计划 缺少严格的变更控制和版本控制 对项目执行过程监控不足 技 术 项目中需要购买未使用过 的设备 用户中部分人员对该项目比较抵触 缺乏用户参与 用户不重视项目管理 风险因素 相关人员对系统需求定义险 存在分歧 系统需求变动 项目采用的是以前未曾使 用过的新技术 使用不成熟的技术 用 户
共分享92篇相关文档