『软件工程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
创作不易,如果这篇文章对你有用,记得点赞收藏哦~
『软件工程7』详解软件项目管理之风险分析与管理相关推荐
- 『软件工程6』详解软件项目管理之软件范围与估算
软件项目管理--软件范围与估算 一.软件项目计划 1.目标 2.步骤 二.软件范围 1.软件范围定义 2.软件范围--引例 三.影响估算的因素 四.软件项目资源 1.软件项目资源构成 2.分析图 3. ...
- 『软件工程1』详解软件是什么
软件基本概念 一.什么是产品 二.软件的双重角色 三.软件的涵义及特征 四.软件应用 五.软件危机 六.软件神话 一.什么是产品 1.从用户的角度 产品实际上就是信息,以某种方式使得用户世界更加美好 ...
- 『软件工程2』详解软件工程和软件过程模型
文章目录 一.软件工程的定义 1.Fritz Bauer在NATO上给出的定义 2.Barry Boehm 3.IEEE在软件工程术语汇编中的定义 二.软件工程的层次 1.软件工程三个要素 2.软件工 ...
- 「软件项目管理」一文详解软件项目管理概述
一文详解软件项目管理概述
- 『矩阵论笔记』详解最小二乘法(矩阵形式求导)+Python实战
详解最小二乘法(矩阵形式求导)+Python实战! 文章目录 一. 矩阵的迹 1.1. 转置矩阵 1.2. 迹的定义 1.3. 七大定理 二. 最小二乘法 2.1. 求解介绍 2.2. 另一角度 2. ...
- 详解软件项目管理流程的每一步
一.项目启动(项目开工会) 了解项目干系人及其利害关系. 所有项目组成员是否到位,如到位则拿到项目开发人员的简历,详细了解每个开发人员的情况(可能会组织到客户方面试). 根据项目需求规格列出项目功能列 ...
- 「软件项目管理」一文详解软件配置管理计划
一文详解软件配置管理计划 前言 一.配置管理概述 1. 配置管理(SCM)定义 2. 软件配置项目(SCI) 3. 基线 4. 软件配置控制委员会(SCCB) 二.软件配置管理过程 1. 管理过程 2 ...
- iOS 开发:『Runtime』详解(二)Method Swizzling
本文用来介绍 iOS 开发中『Runtime』中的黑魔法Method Swizzling. 通过本文,您将了解到: Method Swizzling(动态方法交换)简介 Method Swizzlin ...
- 「软件项目管理」一文详解软件项目质量计划
一文详解软件项目质量计划
- IBM虚拟化与云计算研究员吴玉会——虚拟化三大优势详解:共享、优化、管理...
IBM虚拟化与云计算专家- IT热书<虚拟化与云计算>作者组做客51CTO巅峰访谈-2 IBM虚拟化与云计算研究员吴玉会--虚拟化三大优势详解:共享.优化.管理 <虚拟化与云计算&g ...
最新文章
- leecode_二叉树中序遍历
- python右键没有idle编辑了_python右键Edit with IDLE
- windows命令行无法启动redis_windows系统安装redis
- PHP 安装xdebug
- linux防火墙允许dns服务,Linux防火墙设置-DNS服务器篇
- centOS下lnamp安装
- 如何使用Java读写系统属性?
- python3基本语法规则,Python中的语法规则
- win10清理注册表的方法
- 谷歌浏览器利用开发者工具截取长图
- python ocr文字识别竖排繁体_古籍族谱繁体竖排中文识别图文攻略-千百OCR
- windows WTS 服务与桌面交互
- PRML读书会第五章 Neural Networks(神经网络、BP误差后向传播链式求导法则、正则化、卷积网络)...
- 新时达电梯服务器维修,常见的新时达电梯维修时问题分析
- Firewalld的区域(zone)
- 【SpringBoot2—junit5断言、前置条件】
- linux jmap命令详解,jmap命令 linux jmap如何使用
- ONVIF工具使用说明
- 一文彻底讲透@Async注解的原理和使用方法
- ESP32从零开始(2)—— VScode 安装 Espressif IDF(安装ESP32)