漫步问道

本人从事7年以上软件测试,主攻性能、接口、自动化等测试。目前从事互联网行业!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

软件项目风险管理

Posted on 2010-12-17 09:13  漫步问道  阅读(425)  评论(0编辑  收藏  举报

 

1  软件项目风险管理

1.1风险的定义

软件项目预算的超支、进度的偏离、需求的膨胀、人员流失等等。如果这些事件还没有具现,那么它就属于风险。如果已经具现了,那么它就成为了问题。风险是尚未发现的问题,问题是已经成真的风险[4]。我们给风险下如下的定义:

(1)一件不好的事件所带来的伤害、损失的可能性;

(2)这件事件具现时所造成的不良结果本身;

1.2 进行风险管理的理由

风险与收益往往同时出现,因为风险将你带入了一个新的领域,这个新领域并不是你所有的竞争对手都敢涉足其中。它给了带来挑战的同时也给予了你更大的机遇与市场。微软公司总裁比尔·盖茨在他的《未来时速》中写道:“成熟工业”这个短语暗示着更小的风险,然而在很发达的工业里,虽然销售商在大部分领域里都接**等,但冒一下信息技术能改变游戏规则的风险,是做出产品和市场突破的最佳方法。正是比尔·盖茨拥有这种游离于灰色地带的勇气,才使他击败了众多竞争对手,从而成就了今天的微软帝国。请不要去做毫无风险的项目,因为一个毫无风险的项目意味着众多的竞争者,所以也必定收益全无。

1.3 风险与运气

杰拉尔德·温伯格曾经举了一个他所遇到的例子,讲的是一个咨询师告诉雇用他的项目经理,他的项目只有1%的可能用户会接受他现在的样子,但是这位经理还是打赌那个可能性,不顾一切的将项目发布了,最后糟糕的产品产生了愤怒的用户。他举这个例子主要是为了说明当一个人的工作悬于一线时会不顾一切的抓住任何能保住他工作的机会。但是从这个例子中还可以得出另外的结论:“依靠好运气来排除这些风险,把成功寄希望于好运气之上,那就是将项目当初儿戏了”。

有两家企业都经历了火灾摧毁了他们服务器中的资料。一家企业的因此而导致项目的失败,他们的主管把原因归结于“坏运气”。而另一家企业却是简单的从备份数据库中恢复数据,进而继续推动项目成功的运行。“坏运气”仅仅是一家风险管理不善的企业的借口而已。

1.4 泰坦尼克号效应

泰坦尼克号在它生产的时候就被定位为“永不沉没的船”,于是没有对“可能会沉没”这个风险进行很好的管理,所以当沉没的风险具现的时候并酿成了巨大的悲剧。风险并不会因为你有足够的理由与信念来坚信它不会,它就真的不会发生。相反,那些造成巨大损失的事情往往是那些你认为绝对不会发生的事情,就像泰坦尼克号那样。

1.5 “无需管理”的风险

有一种风险我们可以不去管理它,甚至可以忽略它的存在。这样的风险基本上都有如下几个特征:

(1)具现的可能性非常的小:如果一件事情发生的概率只有百万分之一,那么这样的风险我们也可以不去考虑,因为对于发生可能性极小的风险做过多的准备是一种浪费。

(2)风险即使具现了,造成的后果也微不足道:对于像供电局检修将停电一天,这样的风险我们可以很轻松的通过自己发电来解决,风险所造成的损失我们可以轻松的弥补。

(3)如果风险具现了,你的全部努力(你的产品)将变得毫无意义:对于像2012年世界末日,这样的风险可以完全的不去理会他,因为万一风险具现了,那么你的产品也就没有意义了。

(4) 那是别人的风险: 如果这是别人的风险,那么就将这风险交给他自己解决吧。

但是我们所遇到的大部分风险都不具备以上的特征,如果我们忽视掉应该管理的风险,那么将会造成巨大的损失。对风险进行管理,尽量的将损失降到最低。

1.6 风险管理方法

对于风险我们首先要做的就是识别出潜在的风险,将它列在风险清单里面。然后对它发生的可能性及严重性进行估算。最后利用风险储备及风险缓解策略对它进行有效的控制。

1.6.1风险识别

风险识别是试图识别出对项目计划产生威胁的事件,并列入风险清单中。常用的风险识别方法如下:

(1)头脑风暴法:如果惩罚那些敢于说出真实想法的人,那么就很难获得项目的真实情况,直到那些坏消息将项目拖垮。所以要鼓励公司里那些敢于传播坏消息的员工。利用头脑风暴的方式让大家踊跃发言,说出可能遇到的风险。

(2)报纸新闻法:试想一下,如果你的项目失败并且被媒体报道了。那么想象一下媒体会报道项目失败的原因是什么。

(3)失败是最好的老师:昨天的问题既是今天的风险。从失败中吸取教训,从而使得下次不再犯类似的错误,如图1。所示例如一个公司有次因为火灾导致正在开发的产品被火吞灭。那么下次风险分析的时候就要将火灾列入风险清单中。正如温伯格所说:如果前一个项目耗费巨大而无所成就,那就更值得坚持——不是坚持完成或批准那个项目,而是坚持从中进行学习[7]。如图3.1所示。

项目1

项目3

项目2

风险清单

新项目

风险输出

风险输入

图1.1 风险获取图

  

 

(4)对于我不知道的事情,能知道什么:可以从公司过去项目所获得的信息来为我们的判断提供依据,如果一个公司的项目经常延期,那么就必须为延期这个风险留下足够的储备时间资源。

1.6.2风险预测

风险预测又称风险估算就是预测风险发生的可能性,以及风险发生后造成的严重性。主要有四项活动:

(1)建立一个风险发生可能性的标准。

(2)描述风险发生的后果。

(3)评估该风险对项目所产生的影响。

(4)标明风险预测的准确度。

1.6.3风险评估

风险评估就是,评估当风险发生时包含该风险所需要的成本,即风险成本:

风险成本 = 损失 * 发生的概率

例如一件风险发生的概率是5%,而当这个风险发生后所造成的损失为20万,则风险成本为1万。

1.6.4风险应对

分析风险并评估风险后,我们可以采取一些应对措施来处理这些风险,处理方法包括远离风险、包容风险、缓解风险、躲避风险。

1.6.4.1       远离风险

例如你不愿承担企业文化变革带来的风险,那么你可以远离这个风险,即不去变革企业的文化。但是,你选择远离这个风险的同时也意味着你远离了企业文化变革带来的好处。你所损失的成本就是你远离风险时所损失的利益。

1.6.4.2       包容风险

例如一个项目承诺在120天内完成的可能性只有40%。那么为了包容项目无法按时完成的风险,则可以将最后期限定为150天。如果你选择包容风险就意味着要为风险留下足够的资金与时间储备,以便弥补风险发生后造成的损失。若是风险不发生则不消耗风险储备。

1.6.4.3       缓解风险

例如在项目中预留替补人员,这样在人员流失后可以接替他们的工作,缓解因为人员流失而导致工作进度停滞的损失。利用风险缓解策略可以降低最后因为包容风险所造成的损失。但是风险缓解策略所消耗的风险储备,即使风险不发生也不会返还了。

1.6.4.4       躲避风险

例如风险清单中有项目可能会延期这项风险,但是你不打算对它做任何事情只是期望有足够好的运气来躲避它,此时你就选择了躲避风险。但是如果风险真的发生了而你又没有做任何准备的话,那么所造成的结果将是灾难性的。所以我们不能期望好运气来排除风险。