IT项目风险的特征
由于软件本身的特点,而导致IT项目与传统项目有很大的差异,因此IT项目的风险管理难度要比传统项目大。
1、需求不稳定
软件项目的需求多变已经成为了软件业界的共识,正因为需求的多变,才让瀑布模型一直遭受到软件工程界的抨击,因此而诞生了原形模型。在IBM的RUP和众多的敏捷方法论中,一直将需求不确定列为软件项目的最大特点,因此而出现了拥抱变化一说。
当一个IT项目已经开始在实施的时候,如果客户连他需要做什么,要实现一些什么功能都不能确定的话,那么做软件实施的工程师他们又如何能够知道自己要开发一个什么样的软件系统出来呢?所以他们只有在漫长的等待过程中,不断遭受到客户的“批评”,在经历了“九九八十一次磨难”之后,才恍然大悟,原来就是要做一个这样的系统啊!
这有点像一个盲人走路一样,盲人根本就不知道前面是什么,因此他往前走一小步,如果不是路,则向左旋转一点点,再次用脚探探前面,如果是路的话,则可以往前迈一步。如果这个盲人运气不好的话,第一脚就在悬崖边上踏空,那么他将跌入万劫不复的深渊。我们的项目也如同这个盲人,稍有不慎就可能让自己走向失败,这是一个多么大的风险阿。
2、项目规模估计不准确
当老师给我们布置作业的时候,如果他多布置了几个题目,下面的同学便会大声地嘘叹,开始私下的嘟噜:“又要做一个多小时了!”。学生们在很短的时间内就能够准确的估计作业量大不大,他们的估计凭借着他们每天一次的做作业的经验和那一瞬间对题目的印象,虽然他们并没有做过刚布置的这些题目,但是估计得仍然是那么的准确。
任何一个建筑工程的项目经理都能够对自己的项目进度掌握的很准,在他们的眼中,只要钱没有问题,则进度就完全是小儿科,可以轻易的得到保证。工地需要多少人,什么时候需要开始进行什么工序的施工,什么时候需要加班,这些都在他们的心中掌握着。钱就是他们最大的风险,只要钱到位了,一切工作都好开始了。
而软件项目与之不同,在软件项目开始后,很少有缺钱的。只看到过资金没有到位的“烂尾楼”,但是从来就没有看过由于项目资金没有到位的问题而导致未完成的软件项目,就算是缺钱也是因为签合同的时候要少了。
就算是再优秀的软件项目经理,他也无法预计好自己的项目什么时候能够完成,因为在他进行估算的时候,客户的需求还没有搞清楚呢!再一个,建筑工程的可以通过预算很准确的计算整个建筑的工程造价,而软件项目却很难,因为不管是代码行估算法,还是功能点方法,都远不及“我猜,我猜,我猜猜猜”中猜得准确,这些方法很多时候甚至不如算命先生算得准。
3、人的因素对项目影响很大
人可以说是整个软件项目的灵魂,软件项目不需要钢筋、水泥和沙石,也不需要任何的施工机械。软件项目的原材料就是人的思想和智慧,而计算机和CASE软件则是项目的施工工具。通过键盘和鼠标,无数的程序代码在程序员的手中诞生了。如果要问软件项目最大的成本在哪里,那么答案只有一个,就是人力成本。
一个优秀的程序员的工作效率要远远大于一个蹩脚的程序员,一个程序新手甚至根本就不能够产生任何生产效率。不仅如此,新手的错误行为,将让熟练员工牺牲很多时间来帮助新手纠正他们的错误,最后下来,甚至可能导致降低软件开发的效率。
虽然软件项目已经实施角色分工和管理,但是相对于其他工程的分工来说则分工比较单一。软件项目中,一般就分有,系统分析师、架构师、设计师、程序员、测试工程是及配置管理人员和项目经理等。这样的分工并不能有效的降低他们工作内容的复杂度。如果能像建筑工程中的砌墙、浇注混凝土、搭脚手架那样分工细致的话,则培训软件蓝领也不会需要费如此大的力气了。