Skip to content

一、风险及风险管理的含义

1、风险的含义

风险即所有在软件开发过程中带来负面影响的问题,是一个潜在的问题。

2、风险管理含义

风险分析和管理是标识风险评估其发生的概率估算其影响建立在实际发生情形下问题的应急计划,是一系列帮助软件小组理解和管理不确定性的步骤。

对于一个好的软件项目管理来说,理解风险和采取积极的措施管理风险是关键

二、被动和主动的风险策略

1、被动风险策略

(1)定义:被动风险策略是一种救火模式,是对风险不闻不问,直到发生了错误后项目组才赶紧采取行动试图迅速地纠正错误。

2、主动风险策略

(1)定义:在技术工作开始之前就已经启动,标识出潜在的风险,评估出现的概率和产生的影响,且按重要性加以排序。

(2)主要目标:主要目标是预防风险,但不是所有的风险都可以预防,因此需要建立一个应急计划,使其在必要时能够以可控的有效的方式做出反应。

三、风险的特性

风险有两大特性,分别为不确定性损失性。具体如下:

1、不确定性 —— 风险可能发生,也可能不发生;

2、损失 —— 如果风险变成了现实,就会产生恶性后果或损失。

四、风险的类型

风险类型有三类,分别是项目风险技术风险商业风险。具体如下:

1、项目风险

(1)主要威胁:威胁到项目计划。

(2)风险因素:①潜在的预算、进度、人力资源、客户和需求等方面的问题以及这些因素对软件项目的影响;项目复杂度、规模和结构不确定性。

2、技术风险

(1)主要威胁:威胁到要开发软件的质量和交付时间。

(2)风险因素:①潜在的设计、实现、接口、验证和维护等方面的问题;技术的不确定性、陈旧的技术和“领先的”技术。

3、商业风险

(1)主要威胁:威胁到要开发软件的生存能力。

(2)五种商业风险类型:

  • 市场风险——开发了一个没有人真正需要的优秀产品或系统;
  • 策略风险——开发的产品不再符合公司的整体商业策略
  • 销售风险——建造了一个销售部门不知道如何去做出售的产品;
  • 管理风险——由于重点转移或人员的变动而失去了高级管理层的支持;
  • 预算风险——没有得到预算或人力上的保证。

五、风险管理的步骤

风险管理主要有三个步骤,第一步为风险识别,第二步为风险预测,第三步为风险缓解、监控和管理。具体如下:

1、风险识别

(1)定义:风险识别是试图系统化地确定对项目计划(估算、进度、资源分配)的威胁。

(2)分类

  • 一般性风险:对每一个软件项目而言,一般性风险都是一个潜在的威胁。
  • 产品特定风险:指只有那些对当前项目的技术、人员及环境非常了解的人才能识别出来。

(3)风险识别的方法

风险识别的方法为建立风险条目检查表,具体步骤如下:

  • ① 产品规模 —— 与需要建造或修改的软件的总体规模相关的经验;
  • ② 商业影响 —— 与管理或市场所添加的约束相关的风险;
  • ③ 客户特征 —— 与客户的素质开发者和客户及时通信的能力相关的风险;
  • ④ 过程定义 —— 与软件过程被定义的程度软件被开发组织所遵守的程度相关的风险;
  • ⑤ 开发环境 —— 与建造产品所使用工具的可用性及质量相关的风险;
  • ⑥ 将建造的技术 —— 与待开发软件的“复杂性”系统所包含技术的“新奇性”相关的风险;
  • ⑦ 人员数目及经验 —— 与软件工程师的总体技术水平和项目经验相关的风险。

总结:

通过建立风险条目检查表,使得计划者通过得出每一项的答案后,能够估算风险产生的影响。

2、风险预测

风险预测从两个方面评估风险:风险发生的可能性或概率,即评估风险概率风险发生所产生的后果,即评估风险影响。具体如下:

(1)评估风险概率:以百分比表示

(2)评估风险影响

① 从定性角度看:有四个级别,分别为可忽略的轻微的严重的灾难性的

② 从定量角度看:即计算风险显露度,RE=P*C;其中P是风险发生的概率,C是风险发生时带来的项目成本。

举个例子:

Question:

某公司计划将使用 60 个可复用构件,其中只有 70%可能被使用,剩下的要重新定制开发,已知构件平均是 100LOC,每个 LOC 的成本是 14 美元,假设该风险发生的概率是 80%,计算风险显露度 RE。

Answer:

  • 风险:30%的构件要重新开发;
  • 风险发生的概率 P 为:P=80%;
  • 损失成本 C 为:C=60×30%×100×14=25200 元;
  • 风险显露度为:RE=P×C=80%×25200=20100。

3、风险缓解、监控和管理(Risk mitigation, monitoring and management,即 RMMM)

(1)风险缓解

目的:避免问题活动产生。

(2)风险监控

目的:提供关于风险的高低变化的指示。

监控措施举例:

  • 监控项目组成员对项目压力的态度;
  • 监控项目组的凝聚力;
  • 监控项目组成员的关系;
  • 监控与报酬和利益相关的潜在问题;
  • 监控在公司内及公司外工作的可能性。

(3)风险管理

目的:假设风险已发生,提前做好管理和应急计划。

总结:在一个项目中,RMMM 越详细越好,但同时,RMMM 步骤将导致额外的项目开销

六、风险表

1、建立风险表的步骤

1)列出所有的风险,并分类。

2)估算每个风险发生的概率。

3)评估每个风险所产生的影响,影响值分为:1=灾难性的;2=严重的;3=轻微的;4=可忽略的。

注意:根据概率和影响来进行排序:高概率、高影响的风险放在表上方。

4)形成 RMMM。

2、风险表图例

风险类别概率影响RMMM
…………………………

七、结束语

在一个软件项目中,风险分析是尤为重要的。如果前期没做好风险分析,那软件所产生的后果完全不堪设想。所以,学会做风险分析和管理,对软件能有一个更好的评估。 软件项目管理的风险分析与管理就讲到这里啦!如果有不明白或有误的地方欢迎私聊或加我微信指正~

Released under the MIT License.