“风险”一词的由来,最为普遍的一种说法是,在远古时期,以打鱼捕捞为生的渔民们,每次出海前都要祈祷,祈求神灵保佑自己能够平安归来,其中主要的祈祷内容就是让神灵保佑自己在出海时能够风平浪静、满载而归。在长期的捕捞实践中,他们深深地体会到“风”带来的无法预测的危险,认识到,“风”即意味着“险”,因此有了“风险”一词的由来。
现在,风险一词的意义,已大大超越了“遇到危险”的狭义含义,而是“遇到破坏或损失的机会或危险”。经过了两百多年的演义,风险一词越来越被概念化,并随着人类活动的复杂性和深刻性而逐步深化,被赋予了从哲学、经济学、社会学、统计学甚至文化艺术领域的更广泛更深层次的含义。不管如何定义风险一词的由来,其基本的核心含义是“未来结果的不确定性或损失”,也有人进一步定义为“个人和群体在未来遇到伤害的可能性以及对这种可能性的判断与认知”。
一、风险的定义
风险有两种定义:一种定义强调了风险表现为不确定性;而另一种定义则强调风险表现为损失的不确定性。
若风险表现为不确定性,说明风险产生的结果可能带来损失、获利或是无损失也无获利,属于广义风险,金融风险属于此类。而风险表现为损失的不确定性,说明风险只能表现出损失,没有从风险中获利的可能性,属于狭义风险。
广义的风险展现出来的是机会,虽然这种机会可能让我们的项目变得颗粒无收,但如果一旦机会有利于项目,则可以大赚一笔,风险投资家们心中的风险正是广义的风险,所以风险才会吸引他们投入巨大的资金。而作为项目管理者来说,风险对他们意味着失败的危险,因此必须将任何风险扼杀于摇篮之中。
二、IT项目风险的特征
由于软件本身的特点,导致IT项目与传统项目有很大差异,因此IT项目的风险管理难度要比传统项目大。
1.需求不稳定
软件项目的需求多变已成为软件业界的共识,正因为需求的多变,才让瀑布模型一直遭受到软件工程界的抨击,因此诞生了原形模型。在IBM的RUP和众多的敏捷方法论中,一直将需求不确定列为软件项目的最大特点,因而出现了拥抱变化一说。
当一个IT项目开始实施的时候,如果客户连他需要做什么,要实现一些什么功能都不能确定的话,那么做软件实施的工程师他们又如何能够知道自己要开发一个什么样的软件系统出来呢?所以他们只有在漫长的等待过程中,不断遭受到客户的“批评”,在经历了“九九八十一次磨难”之后,才恍然大悟,原来就是要做一个这样的系统啊!
这有点像盲人走路一样,盲人根本就不知道前面是什么,因此他往前走一小步,如果不是路,则向左旋转一点点,再次用脚探探前面,如果是路的话,则可以往前迈一步。如果这个盲人运气不好的话,第一脚就在悬崖边上踏空,那么他将跌入万劫不复的深渊。我们的项目也如同这个盲人,稍有不慎就可能让自己走向失败,这是一个多么大的风险啊。
2.项目规模估计不准确
当老师给我们布置作业的时候,如果他多布置了几个题目,下面的同学便会大声地嘘叹,开始私下的.嘟噜:“又要做一个多小时了!”。学生们在很短的时间内就能够准确的估计作业量大不大,他们的估计凭借着他们每天一次的做作业的经验和那一瞬间对题目的印象,虽然他们并没有做过刚布置的这些题目,但是估计得仍然是那么的准确。
任何一个建筑工程的项目经理都能对自己的项目进度掌握准确,在他们的眼中,只要资金到位,则进度就可以得到保证。工地需要多少人,什么时候需要开始进行什么工序的施工,什么时候需要加班,这些都在他们的心中掌握着。资金就是他们最大的风险。
而软件项目与之不同,在软件项目开始后,很少有缺钱的。只看到过资金没有到位的“烂尾楼”,但是从来没有看到过由于项目资金没有到位的问题而导致未完成的软件项目,就算是缺钱也是因为签合同的时候要少了。
再优秀的软件项目经理,他也无法预计好自己的项目什么时候能够完成,因为在他进行估算的时候,客户的需求还没有搞清楚呢!再者,建筑工程可以通过预算很准确地得出整个建筑的工程造价,而软件项目却很难,因为不管是代码行估算法,还是功能点方法,都远不及“我猜,我猜,我猜猜猜”中猜得准确,这些方法很多时候甚至不如算命先生算得准。