『软件工程7』详解软件项目管理之风险分析与管理

软件项目管理——风险分析与管理

  • 一、风险及风险管理的含义
    • 1、风险的含义
    • 2、风险管理含义
  • 二、被动和主动的风险策略
    • 1、被动风险策略
    • 2、主动风险策略
  • 三、风险的特性
  • 四、风险的类型
    • 1、项目风险
    • 2、技术风险
    • 3、商业风险
  • 五、风险管理的步骤
    • 1、风险识别
    • 2、风险预测
    • 3、风险缓解、监控和管理(Risk mitigation, monitoring and management,即RMMM)
  • 六、风险表
    • 1、建立风险表的步骤
    • 2、风险表图例
  • 七、结束语

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

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
…………………………

七、结束语

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

  • 公众号:星期一研究室
  • 微信:MondayLaboratory

创作不易,如果这篇文章对你有用,记得点赞收藏哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/308060.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7-1 页面置换算法--FIFO (50 分)(思路详解)

一:题目 先初始化页面大小,和物理块数。连续输入页面的逻辑地址,以“-1”作为结束标志,采用FIFO页面置换算法、固定分配局部置换分配策略。输出该页面的页号和页内位移,若该页不在内存,并且还有剩余的物理块&#xff…

7-2 页面置换算法--LRU (50 分)

一:题目(思路详解运行时错误解决) 先初始化页面大小,和物理块数。连续输入页面的逻辑地址,以“-1”作为结束标志,采用LRU页面置换算法、固定分配局部置换分配策略。输出该页面的页号和页内位移,若该页不在内存,并且还…

『软件测试3』八大典型的黑盒测试方法已来袭,快快接住!

文章目录一、等价类划分法1、定义2、等价类划分法步骤3、设计测试用例步骤4、案例:学生选修课程二、边界值分析法1、边界值分析法概述2、设计测试用例3、边界值设计原则三、错误推测法1、错误推测法概述2、错误推测法基本思想四、因果图设计法1、因果图设计法概述2、…

使用Jenkins来发布和代理.NetCore项目

Back toStudy!注:书接上文,上回《【CI/CD系列】使用Docker安装Jenkins》咱们说到了使用Docker镜像的方式,来建立Jenkins服务,用来持续集成和持续发布项目,但是上一篇文章有两个问题:01创建的容器不能操作和…

数据库课设(足球联赛管理系统)

一:前言 如果有关注博主的粉丝,可能会发现贴心杰又缺更好几天了,但是我是宠粉杰啊,怎么可能会忘了我的宝贝粉丝呢,只不过是临近期末,各种大作业课设如期而至,这几天我在写数据库课设&#xff0…

.NET Core实用技巧(一)如何将EF Core生成的SQL语句显示在控制台中

前言笔者最近在开发和维护一个.NET Core 项目,其中使用几个非常有意思的.NET Core 相关的扩展,在此总结整理一下。EF Core 性能调优如果你的项目中使用了 EF Core, 且正在处于性能调优阶段,那么了解 EF Core 生成的 SQL 语句是非常关键的。那…

695.岛屿的最大面积(026)BFS

二:思路 1.这里的遍历数据方式为BFS广度遍历 2.当我们遇到一个‘1’的时候,我们就遍历他的左右上下(邻接点),如果是1那就入队,直到队列 为空为止。 3.我们记录每个岛屿的面积是采用 我们设置初始值为1,当每遇到一个邻…

『软件工程8』软件项目进度安排与跟踪,一招学会计算关键路径

项目进度安排与跟踪一、项目进度安排的定义及原则1、进度安排的定义2、进度安排的基本原则二、通信开销1、通信开销的定义2、通信路径计算3、案例分析三、工作量分配1、40-20-40规则2、工作量分配图例3、工作量分布推荐四、项目进度安排方法1、关键路径方法(CPM,Critical Path …

await,async 我要把它翻个底朝天,这回你总该明白了吧

一:背景1. 讲故事await,async 这玩意的知识点已经被人说的烂的不能再烂了,看似没什么好说的,但我发现有不少文章还是从理论上讲述了这两个语法糖的用法,懂得还是懂,不懂的看似懂了过几天又不懂了&#xff0…

栈在前端中的应用,顺便再了解下深拷贝和浅拷贝!

详解栈在前端中的应用一、栈是什么二、栈的应用场景三、前端与栈:深拷贝与浅拷贝1、JS数据类型(1)js数据类型的分类(2)js数据类型的定义和存储方式(3)js数据类型的判断方式2、深究浅拷贝和深拷贝…

【招聘(深圳)】轻岁 诚聘.NET Core开发

招聘简介为了支撑公司互联网的战略转型,我们将基于.NET Core K8S/TKE 腾讯云云函数的微服务架构,打造高性能、高并发、高扩展的基础平台,同时基于该平台进行应用开发,包括Web端,移动端(微信公众号、小程序…

详解链表在前端的应用,顺便再弄懂原型和原型链!

链表在前端中的应用一、链表VS数组二、JS中的链表三、前端与链表:JS中的原型链1、原型是什么?2、原型链是什么?3、原型链长啥样?(1)arr → Array.prototype → Object.prototype → null(2&…

计网课设 模拟实验拓扑

一:前言 幸福的是考完两科了,抽出时间赶紧赶赶课设,两周遇到了好多事,开心的,烦心的,一堆堆的压过来,但庆幸自己迷失不太久,又能继续学习了 二:实验概览 1:实验拓扑图 2:实验要求…

快醒醒,C# 9 中又来了一堆关键词 init,record,with

一:背景1. 讲故事.NET5 终于在 2020-08-25 也就是前天发布了第八个预览版,这么多的预览版搞得我都麻木了,接踵而来的就是更多的新特性加入到了 C# 9 中,既然还想呆在这条船上,得继续硬着头皮学习哈,这一篇跟…

7-1 字母统计图 (10 分)(思路+详解)

一&#xff1a;题目 摆放在面前的是一小段英文文章。 afeng希望你能帮他统计一下每个小写字母出现的次数。 最后再以柱状图的形式(参照输出样例)输出出来。 输入格式: 输入第一行为一个正整数N(N<100)&#xff0c;表示文章的行数。 随后为N行文本。 输出格式: 由若干行组…

了解js基础知识中的作用域和闭包以及闭包的一些应用场景,浅析函数柯里化

js基础知识中的作用域和闭包一、作用域1、作用域、自由变量简介&#xff08;1&#xff09;作用域定义&#xff08;2&#xff09;作用域实例演示&#xff08;3&#xff09;自由变量定义&#xff08;4&#xff09;自由变量实例演示2、作用域链简介&#xff08;1&#xff09;作用域…

张朝阳一天只睡4小时?不知道,反正我每天都睡足7小时

这是头哥侃码的第213篇原创周末&#xff0c;一个很久没联系过的朋友突然在微信上发给我一个链接。我打开一看&#xff0c;原来是搜狐老板张朝阳近日发表的一个有关睡眠的神论&#xff0c;大致是说他每天只睡四小时&#xff0c;白天状态还特别好&#xff0c;每天员工到公司的时候…

Istio 1.7——进击的追风少年

2020 年 8 月 21 日&#xff0c;Istio 发布了 1.7 版本。除了介绍新版本的主要更新内容外&#xff0c;本文会重点分析 Istio 团队在产品更新策略上的激进态度和举措。是稳扎稳打做好向后兼容&#xff0c;带给用户所承诺的易用性&#xff1b;还是快刀斩乱麻&#xff0c;做进击的…

7-2 港口审查 (15 分)

一:题目 afeng是一个港口的海关工作人员&#xff0c;每天都有许多船只到达港口&#xff0c;船上通常有很多来自不同国家的乘客。 afeng对这些到达港口的船只非常感兴趣&#xff0c;他按照时间记录下了到达港口的每一艘船只情况&#xff1b;对于第i艘到达的船&#xff0c;他记…

JS中this的应用场景,再了解下apply、call和bind!

this的应用场景&#xff0c;再了解下apply、call和bind一、谈谈对this对象的理解二、this的应用场景1、作为普通函数被调用2、使用call、apply和bind被调用3、作为对象方法被调用4、在class方法中被调用5、箭头函数中被调用三、apply、call和bind1、apply、call和bind的共同用法…