发布网友 发布时间:2022-05-15 18:25
共1个回答
热心网友 时间:2024-02-26 08:18
识别风险是系统化地识别已知的和可预测的风险,在可能时避免这些风险,且当必要时控制这些风险。根据风险内容,我们可以将风险分为:
(1)产品规模风险:与软件的总体规模相关的风险。
(2)商业影响风险:商业风险影响到软件开发的生存能力。商业风险包含的五个主要的风险是:
l 市场风险:开发了一个没有人真正需要的优秀产品或系统;
l 策略风险:开发的产品不符合公司的整体商业策略;
l 销售风险:开发了一个销售部门不知道如何去卖的产品;
l 管理风险:由于重点的转移或人员的变动而失去了高级管理层的支持的风险;
l预算风险:没有得到预算或人力上的保证。
(3)客户特性风险:与客户的素质以及开发者和客户沟通能力相关的风险。
(4)过程定义风险:与软件过程定义相关的风险。
(5)开发环境风险:与开发工具的可用性及质量相关的风险。
(6)技术风险:技术风险是指在设计、实现、接口、验证、维护、规约的二义性、技术的不确定性、陈旧的技术等方面存在的风险。技术风险威胁到软件开发的质量及交付的时间,如果技术风险变成现实,则开发工作可能变得很困难或根本不可能。
(7)人员数目及经验带来的风险:与参与工作的软件工程师的总体技术水平及项目经验相关的风险。
在进行具体的软件项目风险识别时,可以根据实际情况对风险分类。但简单的分类并不是总行的通的,某些风险根本无法预测。在这里,我们介绍一下美国空军软件项目风险管理手册中指出的如何识别软件风险。这种识别方法要求项目管理者根据项目实际情况标识影响软件风险因素的风险驱动因子,这些因素包括以下几个方面。
(1)性能风险:产品能够满足需求和符合使用目的的不确定程度。
(2)成本风险:项目预算能够被维持的不确定的程度。
(3)支持风险:软件易于纠错、适应及增强的不确定的程度。
(4)进度风险:项目进度能够被维持且产品能按时交付的不确定的程度。
每一个风险驱动因子对风险因素的影响均可分为四个影响类别——可忽略的、轻微的、严重的及灾难性的。 在进行了风险辨识后,我们就要进行风险估算,风险估算从以下几个方面评估风险清单中的每一个风险:
(1)建立一个尺度,以反映风险发生的可能性;
(2)描述风险的后果;
(3)估算风险对项目及产品的影响;
(4)标注风险预测的整体精确度,以免产生误解。
对辨识出的风险进行进一步的确认后分析风险,即假设某一风险出现后,分析是否有其他风险出现,或是假设这一风险不出现,分析它将会产生什么情况,然后确定主要风险出现最坏情况后,如何将此风险的影响降低到最小,同时确定主要风险出现的个数及时间。进行风险分析时,最重要的是量化不确定性的程度和每个风险可能造成损失的程度。为了实现这点,必须考虑风险的不同类型。识别风险的一个方法是建立风险清单,清单上列举出在任何时候可能碰到的风险最重要的是要对清单的内容随时进行维护,更新风险清单,并向所有的成员公开,应鼓励项目团队的每个成员勇于发现问题并提出警告。建立风险清单的一个办法是将风险输入缺陷追踪系统中,建立风险追踪工具,缺失追踪系统一般能将风险项目标示为已解决或尚待处理状态,也能指定解决问题的项目团队成员,并安排处理顺序。风险清单给项目管理提供了一种简单的风险预测技术,下表事一个风险清单的例子:
风险 类别 概率 影响
资金将会流失商业风险40% 1
技术达不到预期效果技术风险30% 1
人员流动频繁 人员风险 60% 3
在风险清单中,风险的概率值可以由项目组成员个别估算,然后加权平均,得到一个有代表性的值。也可以通过先做个别估算而后求出一个有代表性的值来完成。对风险产生的影响可以对影响评估的因素进行分析。
一旦完成了风险清单的内容,就要根据概率进行排序,高发生率、高影响的风险放在上方,依次类推。项目管理者对排序进行研究,并划分重要和次重要的风险,对次重要的风险再进行一次评估并排序。对重要的风险要进行管理。从管理的角度来考虑,风险的影响及概率是起着不同作用的,一个具有高影响且发生概率很低的风险因素不应该花太多的管理时间,而高影响且发生率从中到高的风险以及低影响且高概率的风险,应该首先列入管理考虑之中。
在这里,我们需要强调的是如何评估风险的影响,如果风险真的发生了,它所产生的后果会对三个因素产生影响:风险的性质、范围及时间。风险的性质是指当风险发生时可能产生的问题。风险的范围是指风险的严重性及其整体分布情况。风险的时间是指主要考虑何时能够感到风险及持续多长时间。可以利用风险清单进行分析,并在项目进展过程中迭代使用。项目组应该定期复查风险清单,评估每一个风险,以确定新的情况是否引起风险的概率及影响发生改变。这个活动可能会添加新的风险,删除一些不再有影响的风险,并改变风险的相对位置。 在风险评估过程中,我们可以采取以下的步骤:
(1)定义项目的风险参考水平值。要使风险评估发生作用,就要定义一个风险参考水平值,对于大多数项目而言,通过对性能、成本、支持及进度等因素的分析,可以找出风险的参考水平值,对于性能下降、成本超支、支持困难或进度延迟(或者这四种的组合)等情况,超过这一参考水平值项目就会被终止。
(2)建立每一组(风险、风险发生的概率、风险产生的影响)与每一个参考水平值的关系。
(3)预测一组临界点以定义项目终止区域,该区域由一条曲线或不确定区域界定。
(4)预测什么样的风险组合会影响参考水平值。 风险驾驭包括对策指定、风险缓解、风险监控、风险跟踪等内容。
所有风险分析活动都只有一个目的——辅助项目组建立处理风险的策略。如果软件项目组对于风险采取主动的方法,则避免永远是最好的策略。这可以通过建立一个风险缓解计划来达到即制定对策。
对不同的风险项要建立不同的风险驾驭和监控的策略比。如对于开发人员离职的风险项目开始时应作好人员流动的准备采取一些措施确保人员一旦离开时项目仍能继续;制定文档标准并建立一种机制保证文档及时产生;对每个关键性技术岗位要培养后备人员。对于技术风险,可以采用的策略有,对采用的关键技术进行分析,避免软件在生命周期中很快落后;在项目开发过程中保持对风险因素相关信息的收集工作,减少对合作公司的依赖尤其是对延续性强的项目应该尽可能地吸收合作公司的技术并变为自己的技术,避免因为可能发生的与合作公司合作的终止带来的影响和风险降低投入成本。
一个有效的策略必须考虑风险避免、风险监控和风险管理及意外事件计划这样三个问题。风险的策略管理可以包含在软件项目计划中,或者风险管理步骤也可以组成一个独立的风险缓解、监控和管理计划(RMMM计划)。RMMM计划将所有风险分析工作文档化,并且由项目管理者作为整个项目计划的一部分来使用,RMMM计划的大纲主要包括:主要风险,风险管理者,项目风险清单,风险缓解的一般策略、特定步骤,监控的因素和方法,意外事件和特殊考虑的风险管理等。一旦建立了RMMM计划,我们就开始了风险缓解及监控,风险缓解是一种避免问题的活动,风险监控则是跟踪项目的活动。它有三个主要目的:评估一个被预测的风险是否真的发生了;保证为风险而定义的缓解步骤被正确地实施;收集能够用于未来的风险分析信息。
软件开发是高风险的活动。如果项目采取积极风险管理的方式,就可以避免或降低许多风险,而这些风险如果没有处理好,就可能使项目陷入瘫痪中。因此在软件项目管理中还要进行风险跟踪。对辨识后的风险在系统开发过程中进行跟踪管理,确定还会有哪些变化,以便及时修正计划。具体内容包括:
(1)实施对重要风险的跟踪;
(2)每月对风险进行一次跟踪;
(3)风险跟踪应与项目管理中的整体跟踪管理相一致;
(4)风险项目应随着时间的不同而相应地变化。
通过风险跟踪,进一步对风险进行管理,从而保证项目计划的如期完成。