3.1 信息系统项目风险
3.1.1 风险的定义及其特征
风险是与不确定性相联系的。关于风险的一个最简单的定义就是“风险是起作用的不确定性”。之所以起作用,是因为它影响到了一定目标的达成。风险不是凭空存在的,必定与一定的事件相联系。在风险的定义中应该明确如果风险发生,将会发生什么事件,目标将会受到多大影响。由此,我们可以得到风险的一个完整的定义,即“风险是能够影响一个或多个目标实现的不确定性”。与所研究的事件没有关系的不确定性不成之为风险。另外,我们一般会把不确定性分为两类,“消极的与积极的”。对于积极的不确定性我们一般称之为机会,只有那些对目标产生不利的和消极的不确定性我们才称之为风险。因此,我们可以得到这样一个定义:“风险是能够对一个或多个目标实现产生消极影响的不确定性。”
根据风险的定义,结合项目的特征,在项目风险管理中我们可以这样定义项目风险:项目风险是指为实现项目目标的活动或事件的不确定性而可能发生的危险。
在项目管理中,风险具有共同的特征,把握项目风险的这些特征,有助于项目经理及其他项目管理者正确识别和防范风险。
1.项目风险的客观存在性和普遍性
在项目中,风险是客观存在的。风险的存在是不以人的意志为转移的,任何项目都存在风险。这是由于项目是基于一定假设条件的,项目的预测和计划以及环境的变化都会产生风险。
2.项目风险发生的概率性
项目风险不是一定都会发生,而是具有一定的概率。一定发生或一定不会发生的事都不是风险。比如,对于一个信息系统项目而言,项目进度由于突然断电造成数据损坏而延期是风险,因为突然停电是可能发生,也可能不发生,我们只能根据以往的电力供应历史记录给出这种风险发生的一个概率;相反,信息系统项目开发需要编程人员就不再是风险,而是必然的。
3.项目风险的多样性与层次性
大型项目开发周期长、规模大、范围广,涉及方方面面的因素,风险因素数量多且种类繁杂,导致了项目在生命周期中面对的风险多种多样。同时,各种风险之间的内在关系错综复杂,各种因素之间的交叉关系也使风险呈现多样性与层次性。
4.项目风险的可变性
在项目生命周期内,随着项目的进行和外界环境的变化,项目的风险不是一成不变的,有些风险可能消失,有些风险可能会发生并被解决,还有些原来并不存在的风险可能会日益凸显并被识别出来。项目风险的变化可以体现在风险的性质、风险的影响程度变化等方面。
5.项目风险的可预测性与可预防性
我们对风险进行研究的目的就是对风险进行预测和管理,项目风险的可预测性与可预防性使得项目风险管理工作具有意义。项目风险的存在和实现是与环境有一定关系的,要研究环境,识别风险诱因,我们可以根据历史资料和相关经验对风险进行预测。根据对风险的预测,采取措施、改变环境或适应环境,大部分风险是可以主动预防、避免和缓解的。
3.1.2 项目风险要素
对于任何一个项目风险,我们都可以将其分解为以下3个要素。
1.项目风险出现的概率
风险本身就是一种不确定性,随时可能发生。我们不能预见到一种风险是否会发生,只能预测发生的可能性是大还是小。对于有详尽历史资料的风险,我们还可以应用统计方法计算其发生的概率。
2.项目风险的影响及其程度
风险的影响程度是研究一项风险如果发生将会出现的影响,及影响的程度是逐渐造成损失还是突然性爆发的。如服务器崩溃造成的数据丢失,服务中断造成的工期延误和丢失的数据的价值等。
3.项目风险暴露
项目风险暴露是指风险对产品、系统或项目的影响。一个风险可以有不同的暴露程度,在特定情况下根据发生的概率产生变化。这样,风险暴露就可以简化为风险影响程度乘以风险出现的概率,即风险暴露是一个期望值。
例如,对于一个风险,我们可以这样进行描述:
风险出现的概率:50%(对于不同的风险概率可能从0~100%)
风险的影响程度:5(对风险的影响程度赋值,1表示影响程度最小,10表示影响程度最大)
风险暴露:50%×5=2.5
3.1.3 信息系统项目风险分类
1.政治风险
政治风险,是指由于政局变化、政权更迭、罢工、战争等引起的社会动荡而造成的财产损失和对项目进度以及项目产品质量的影响。同时,国家政策的变化、法律法规的修改也会对项目造成影响,形成潜在的风险。相比较而言,在一个政局稳定的国家,第二种风险的概率更大一些,当政局不稳定时第一种风险的影响程度更高。
2.市场风险
信息系统项目的最终产品在开发完成后能否适应变化的市场需求,构成了项目的市场风险,包括信息系统的适用性和价格。
3.金融风险
金融风险主要源于利率风险、汇率风险和信贷风险等因素对项目造成的不利影响。如外汇收入减少、信贷紧缩等。对于涉及到进出口的信息系统,汇率的变化会影响到项目的收支状况。
4.技术风险
技术风险,主要是指由于应用不成熟的开发技术、开发方法、需要创建新的算法、采用未经证实的软件产品接口,或者是采用了不合适的数据库架构,以及技术上不成熟的硬件设施造成的项目进度、项目成本等方面的损失。对于信息系统开发项目来说,技术方案的论证是项目非常重要的一项工作。所以需要组织专家对项目的技术进行充分的研究和论证,以确保项目满足业主和用户的功能需要。
同时技术风险还涉及到需求的功能和性能在现有技术下是否可行。一个不可能实现的需求只能被忽略。
5.管理风险
管理风险主要来自于项目管理人员的经营管理能力。在信息系统项目中,这种风险往往影响比较大,出现的可能性比较高。项目经理的经验、管理能力、沟通能力和对项目的控制能力等会严重影响这种风险出现的概率。另外,这种风险还可能来自于管理团队整体,比如管理团队的凝聚力、管理团队意见的一致性等。
6.人员风险
人本身也是一种风险。由于具有较强的主观能动性,人对外界环境及内部因素影响的反应会对其在项目中的工作有较大影响。不论在什么情况下,都不能将人的因素忽略。
在信息系统开发项目中,我们可以从以下3方面考虑人员风险。
(1)技术人员开发能力。在进行项目进度计划时,一般会对开发人员的开发进度和编程能力做出假设,但这种假设是否符合事实是值得商榷的。对于一些能力不足的技术人员,将成为风险的诱因。
(2)人员工作积极性。项目开发过程中,开发人员由于激励等各方面原因的影响,可能会导致工作积极性下降,其直接后果将会导致开发进度的拖延。
(3)关键人员的离职。关键人员是指对项目的开发和进度有着十分重要影响的人员。如掌握关键技术的开发人员,或者是关键管理人员项目经理等。关键人员离职可能造成项目进度拖延,甚至项目无法完成而被取消。
7.需求识别与变更风险
信息系统项目开发的主要依据是信息系统需求。但是,对项目开发人员来说最为困难的,是客户往往不能在项目开始时就清晰正确地做出需求定义。在项目初期,项目团队和客户在定义项目需求时,会出现定义不准确,或者由于对需求的理解错误而导致需求定义错误,这种情况的出现将会导致后续工作完全无效。另外,随着环境的不断变化,项目需求也会不断的变化。客户可能会在项目需求变化之后对项目开发方提出要求,项目需求变化要求项目开发随之而变。需求变化的直接影响是项目任务数量和规模的膨胀,以及由此带来的成本增加和工期延长。
8.项目计划风险
项目计划风险,是项目团队在前期做计划时,由于过于自信,使得项目计划过于激进和乐观,而对可能受到的约束以及可能遇到的不利条件考虑不周;在项目后期执行过程中,由于各种不利因素的影响,可能会出现项目不能按时完成或者不能按照预算成本完成,这种风险我们称之为项目计划风险。这是一种主观风险,可以通过加强项目的计划管理有效规避。
9.违约风险
信息系统项目的开发和实施需要外部机构的支持。比如,将一部分编程任务外包、购买硬件支持设备、购买网络连接服务和租用服务器等。这些外部服务是在项目开发前期,通过项目开发方与外部供应商签订供应合同确定的。项目进度的一个假设就是供应商能够按时供货,但这只是一个假设。供应商如不能按时供货,甚至违约不能按时交付,将会对项目的进度造成严重影响,或者直接造成项目失败。
另外,与客户的合约也将是违约风险的一部分。如客户能否按时提供资源,能否按照合同规定配合项目进度等。
3.1.4 项目风险对信息系统项目的影响
在项目管理中,我们之所以将主要精力集中在项目风险管理上,主要是因为风险将会对项目目标的实现产生不利影响。结合项目目标,在信息系统开发过程中,项目风险将会可能产生以下几种影响:
1.项目超期
信息系统开发的目的是为了满足客户的需求,需求的一个维度就是时间因素,超过了一定时间,需求的变化可能就使得信息系统变得无用。但风险的出现可能会使项目团队开发进度变得缓慢甚至停滞不前,最终可能造成项目超期。风险对工期的影响可能表现在两方面:一是对一个或多个任务的工作进度的影响,对于非关键作业,这种影响在一定程度内是可以接受的,但是对于关键作业的延误最终结果只能造成项目超期;另一方面,一些比较重大的风险的发生,如政治风险社会动荡,甚至是项目需求的较大变更等,都可能造成整个项目停滞不前,或者项目被迫取消。
2.项目预算超支
对信息系统项目而言,一般都是有项目预算的。一方面是基于财务方面筹集资金的能力,项目组织必须有能力筹集到足够的资金支撑信息系统的开发;另一方面是基于项目所能带来的收益,项目的成本一定要小于收益,并且有一个合理的投资回报。由于风险的存在,使得我们在信息系统项目可行性研究中估计的项目成本不再可靠,可行性研究报告中的成本只是一个估计成本。
在实际软件开发过程中,风险造成成本超支的主要原因是项目需求变化或工作错误造成的项目的返工,或者是由于需求膨胀造成的项目范围扩大,加班加点带来的劳动成本上升,项目进度安排错误造成的怠工等。同时,管理风险导致的其他风险也会间接增加成本。
3.项目交付的系统质量不合格
信息系统项目开发任务完成后,在客户验收时,可能会发现信息系统开发团队交付的信息系统并不是他们想要的。导致这种后果的原因主要是项目需求定义不正确,或者是双方对需求的理解不一致。在这种情况下,双方只能再重新回到项目定义阶段,对系统需求重新做出新的、双方都认可的定义,对开发完成的系统进行修改。如果双方分歧很大,甚至可能将原来的系统推翻,从头再来,或者取消项目。项目交付系统的不合格将会间接引起前面两种后果的发生。
4.信息系统项目被取消
当面对一些重大的项目风险,或是由于项目严重超期导致市场机会的丧失,或者项目成本严重超支导致超过投资方的能力,再或是从经济分析上项目不再可行,以及由于客户和市场需求的重大变化使得信息系统开发变得不再必要,项目开发团队能做出的最好决策就是将整个项目取消。在这种情况下,项目前期投入的资金、技术、人员以及资源都成为沉没成本。一个英明果断的项目经理应该在出现更大的损失之前果断决策,停止项目投入,努力将损失降到最低点。