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

简介: 该文章详细讲解了软件项目管理中的风险分析与管理,包括风险的定义、类型、管理流程以及如何建立和使用风险表来跟踪和处理潜在风险。

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

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

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

相关文章
|
人工智能 搜索推荐 算法
豆包角色制作指南
这篇文章是一份豆包角色制作指南,介绍了如何使用虚拟角色生成器创建IP或非IP角色,以及创作对话人物sp的技巧和Bot主动发消息的技巧。
|
安全 Linux Shell
【内网安全-CS】Cobalt Strike启动运行&上线方法&插件
【内网安全-CS】Cobalt Strike启动运行&上线方法&插件
3273 0
【内网安全-CS】Cobalt Strike启动运行&上线方法&插件
|
项目管理
「软件项目管理」一文浅谈软件项目风险计划
该文章深入探讨了软件项目风险计划的制定,包括风险识别、评估、应对策略等内容,并提供了风险条目检查表、风险概率及影响分析矩阵等工具,帮助项目管理者有效地管理和减轻项目中的潜在风险。
「软件项目管理」一文浅谈软件项目风险计划
|
7月前
|
XML 存储 Java
Python-docx编号列表解析:从XML迷宫到结构化数据的破局之道
本文深入解析了Word文档中自动编号的存储机制及解析难题,探讨了其在技术处理中的障碍,并通过三种实战方案对比,帮助开发者高效提取结构化数据。内容涵盖底层XML结构、常见问题解决方案及性能优化技巧,适用于合同条款、文档自动化处理等场景。
516 0
|
9月前
|
前端开发 JavaScript 测试技术
《存量项目蜕变之路:渐进式引入跨端框架》
在项目中引入跨端框架以实现多平台拓展时,直接重写成本高昂且风险巨大。渐进式引入是一种更可行的方式,它允许在保留原生代码基础上逐步实现新功能或模块的跨端化。首先需谨慎选型框架(如React Native、Flutter、uni-app),结合团队技术栈和项目需求选择最适合的工具。接着从边缘模块入手实践跨端开发,确保与原生代码的通信顺畅,再逐步渗透至核心模块。过程中要调整原生代码结构以更好集成跨端代码,保持应用设计风格和交互体验一致,并通过持续集成与全面测试保障稳定性。这种方式既能降低风险,又能逐步提升应用的多平台适应能力。
219 23
|
11月前
|
网络协议 安全
修复安全组未开放风险端口
安全体检结果显示,安全组22/3389端口TCP/UDP协议的入方向规则目的地址设置为0.0.0.0/0存在风险,易遭暴力破解。修复过程:修改安全组22的授权对象,限制访问源地址,增强服务器登录安全性,有效降低风险。
463 13
|
敏捷开发 监控 数据可视化
敏捷开发的6大方法与模型,帮助你快速适应项目需求变化
3分钟了解6种常见的敏捷开发方法,包括Scrum,看板Kanban,极限编程(XP),DSDM、特征驱动开发和水晶法等方法。
2107 5
敏捷开发的6大方法与模型,帮助你快速适应项目需求变化
|
存储 数据可视化 项目管理
设计团队总监如何通过文档管理工具简化文件共享与团队协作流程
设计团队不仅需创造优质视觉与交互设计,还需高效管理项目进度、文件资源及跨团队协作。合理的文档管理工具对提升团队效率、优化协作流程、确保项目按时高质量交付至关重要。本文介绍了六款适合设计团队的文档管理工具,涵盖Banli Kanban、Figma、Dropbox Paper、Notability、Lucidchart和ProofHub,详细分析了它们的特点、优势及适用场景。
设计团队总监如何通过文档管理工具简化文件共享与团队协作流程
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
22061 5
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
数据可视化 关系型数据库 MySQL
【MySQL】MySQL8.0 创建用户及授权 - 看这篇就足够了
本文介绍了在MySQL 8.0+版本中创建和管理用户的详细步骤,包括通过命令行进入MySQL、创建数据库、用户及授权等操作,并提供了具体命令示例。适合初学者参考学习,帮助实现系统的权限管理和安全控制。
8526 3
【MySQL】MySQL8.0 创建用户及授权 - 看这篇就足够了