[转]关于软件外包风险管理问题的探讨

软件外包(Software Outsourcing)是经济全球化的一大特征,是社会分工不断细化和IT技术发展相结合的产物,更是企业培育和提升核心竞争力的战略手段。软件外包最近几年呈几何级数增长。在高度复杂的现代软件生产活动中,风险无处不在。软件外包作为软件生产的新方式同样存在各种风险。但是,存在风险并不可怕,可怕的是缺少风险意识和规避风险的手段。仔细分析风险的来源和特征,在软件外包的全过程实行动态和连续的跟踪控制,可以防患于未然,有效规避软件外包风险。

1.软件外包的风险表现

随着软件外包业务的迅速开展,软件外包风险的快速识别与有效控制也应该成为软件外包业务实施过程中应该重点考虑的问题。软件外包是发包商和承包商互相信任、高度协作的共同行为,因此,软件外包过程中的风险来源于两方,具体表现形式也多种多样。我们分别从软件外包发包商和承包商两个方面来分析风险的来源和特征。

1.1 发包商方面的风险

(1)决策失误风险。不正确的外包决策,在不具备软件外包的能力下,盲目实施外包策略,没有采取有效的管理手段,造成项目的失败。也即对企业的财务、技术、战略和时机分析错误造成的内部决策错误的风险。

(2)误选承包商的风险。对承包商的核心能力和过程能力评估不准确所造成的对承包商的错误选择。如果承包商具备渊博的技术专家,但是它的机构混乱、管理思想陈旧、财政能力薄弱,从而会使外包可能会在服务的及时提供和服务的质量方面失去控制。

(3)监管风险。在外包合同执行期间,发包商很少对承包商的财务状况以及支持软件外包业务的技术和关键人员进行有效地监督和管理,忽视了必要的审计检查。

(4)合同风险。外包合同是软件外包执行过程中必须遵循的标准,因此外包合同的不完整和缺乏灵活性很可能造成外包的失败。在软件外包合同的制定过程中,没有全面地在合同中考虑承包商的综合状况以及业务需求可能发生的种种变化,没有详细地指明承包商必须提供的最低服务水平、详细的服务范围和标准、发生故障时的服务级别及相应时间等,从而使得实际发生变化和意外故障发生时,发包商处于被动和无奈的地位。

(5)成本核算失误风险。外包成本包括显性和隐性成本,前者包括人力成本、软件工具成本、硬件和办公环境成本等,可以较明显地观察到。而隐性成本包括外包项目管理的交流和沟通成本,处理外包内容的变更成本等,这些成本因为不好估计具体的工作量,往往造成实际成本大大高于最初的预计成本。

(6)人员配置不当的风险。一些发包商可能没有类似经验,所以经理或者财务主管等企业领导来和软件承包商谈判。这样就会导致双方谈判人员的信息不对称,发包方的人员懂得企业管理方面的知识,不懂计算机方面的知识,导致发包方不知道软件能够具体实现什么功能。因此,在双方探讨的时候,技术方面的事项基本上都是由承包商来决定,结果开发出来的软件会让发包企业大失所望。

(7)信息安全风险。由于软件承包商不承担发包商的系统业务运营,所以承包商没有营销业绩压力,也不会真正关心系统信息的安全。另外,一旦发包商内部的信息技术业务或资源交由承包商管理之后,发包商无法对外包的内容进行直接控制,也得不到来自承包商人员的直接报告,失控的风险显而易见。因此,将软件业务外包出去势必会带来信息安全的风险,可能造成业务知识流失或商业机密泄漏,失去产业和战略信息等。

(8)依赖性风险。随着软件外包服务范围的日益扩大,发包商对承包商所提供的全方位、高质量服务的依赖性逐渐增强,随着合作时间的推移,这种依赖性会越来越强,最终导致了发包商完全依赖承包商,对需求的任何变更都必须经由或取得承包商的同意,这样就降低了软件服务的灵活性,软件承包商也就成为发包商发展的主要障碍之一。同时,发包企业的技术水平和综合能力大打折扣,对产品的创新能力也会下降,最后导致发包企业总体服务水平下降,从而可能会使发包企业失去了真正的竞争力。

1.2 承包商方面的风险

(1)误解发包商业务需求的风险。在请求建议阶段,承包商没有和发包商进行充分的沟通和交流,甚至有的业务需求或变更没有双方的确认签字;承包商对发包商内部业务的流程和处理等业务需求不能有充分的理解,这都会影响承包商为发包商提供的服务,结果造成成本上升,项目进度延迟。

(2)承包商内部发生变更的风险。在合同执行期间,承包商的人力、物力、财力等发生了较大的变化,特别是支持发包商外包业务的关键人员发生了重大变更后没有及时地采取补救措施,不及时通知发包商,使发包商没有充分的心里准备和技术准备,最终导致承包商无力提供外包合同中规定的服务水平,破坏了双方合作的氛围。

2.软件外包的风险管理过程

既然软件外包面临着以上各种风险,必须对此进行有效管理。笔者认为通过建立风险管理模型,分阶段进行风险分析与管理是值得借鉴的方法。风险管理模型包括风险识别、风险分类、风险分析预测和风险控制等一系列过程。

2.1 风险识别

风险识别是风险管理的第一步,风险识别指识别并记录可能对项目造成不利影响的因素。对风险成因的分析目的在于认清风险的源头,对引起风险的诸因素进行全面的剖析和细化,为风险评估的量化计算提供全面的指标集。

2.2 风险分类

风险分类就是通过开发一个风险分类模型,并把各种风险的特征属性和风险事件也嵌入该模型的过程。即采用各种方法,对软件外包所面临的潜在风险进行特征化和分类,并由此建立一个事件、风险评估宝库。将外包风险加以区分有利于更好地识别风险,进而控制与监管风险。

2.3 风险分析

风险分析是一个综合性分析、判断、评价的过程,它包括风险评估和风险预测两部分。风险评估是对信息资产面临的威胁、存在的弱点、造成的影响,以及三者综合作用而带来风险的可能性的评估。在软件外包的风险评估过程中,需要考虑的问题主要有五个方面:

(1)确定保护的对象是什么?它的直接和间接价值如何?

(2)资产面临哪些潜在威胁?导致威胁的问题所在?威胁发生的可能性有多大?

(3)资产中存在哪些弱点可能会被威胁所利用?利用的容易程度又如何?

(4)一旦威胁事件发生,企业会遭受怎样的损失或者面临怎样的负面影响?

(5)企业应该采取怎样的安全措施才能将风险带来的损失降到最低程度?风险预测是在进行风险评估的基础上,对风险进行测度,确定风险模式或风险情景所造成的潜在影响和后果、估计风险发生的概率和对项目的影响力,得出安全状况和风险级别,识别项目的重大风险。风险分析就是在以上风险评估、预测的基础上,就软件外包过程中的所有潜在风险、各种风险之间的相互影响、相互作用以及外包主体的经济承受能力进行综合分析、研究。

2.4 风险控制

风险控制就是根据风险分析,对可识别、可测度风险建立风险控制体系和风险管理机制,并执行相应的管理策略,对软件外包的实施过程进行风险控制的过程。即当风险发生时,及时决策相应的纠正行为,采取有效措施进行控制,并对重大风险进行重点监控、管理。风险管理过程是一个动态、反复和循环的过程,其目的就是对软件外包所面临的各种风险进行实时监测、分析、评价和控制干预。

3.软件外包的风险防范

3.1 发包商的风险防范

(1)制定切实可行的外包策略。在确定软件外包策略的时候,相关的内部因素和外部因素非常多,发包商要实现真正有效的外包,必须权衡各种因素和关系的影响,要对企业内部的财务、技术、战略和时机进行全面的分析。如果发包企业内部没有满足外包要求的技能和资源,不能在内部实现较高级别的项目管理,则说明当前的软件企业没有足够的外包能力,不宜实行软件外包,否则外包失败的风险大于成功的几率。

(2)选择合适的承包商。发包商必须对承包商进行评估以决定其财务和营运方面的能力是否能够满足发包商现有和未来发展的业务需求。在选择软件外包承包商时,必须对承包商支持软件外包业务的技术能力和水平、关键技术人员的综合素质和业务能力、业务处理的操作能力和控制突发事件的能力以及服务商的财务状况等四个方面进行全面评估,以此选择业务能力强、信誉好的承包商。

(3)重视对承包商的监管。选择了合适的承包商之后,在合同的执行期间,应该重视对承包商的管理。成立监管小组,定期不定期地对合同的执行情况进行监督,及时补充修改发包商的业务需求,及时与与承包商进行谈判磋商;聘请第三方机构实现全方位、全过程、全天候地外包过程监控和控制,把关项目进度和质量。

(4)签订完整而灵活的外包合同。一份完整而灵活的外包合同是外包是否成功的基石。外包合同应具有充分的弹性以允许在技术和操作方面进行改革或应对技术甚至策略目标方面可能出现的变化。一般的外包合同应包括如下内容:明确软件外包服务的范围和灵活性的外包协议;明确双方在合同中的权力和义务,尤其要明确发生问题时的赔偿责任与解决争端的程序;合理的服务级别说明和度量;安全性和保密性的要求;突发应急事件的应急方案与具体实施计划;限制外包费用增加和终止合同的权利;需求变更;价格调整方法等。

(5)核算和控制外包的综合成本。外包执行过程中,由于情况的变化可能会要求承包商做一些原合同中没有规定的额外工作,这会产生额外费用。签订合同前,应充分考虑这些因素,在合同中加以体现,防止承包商漫天要价,从而控制发包商外包的成本。

(6)合理配备人员。发包企业必须选派既精通产品业务和软件外包技术,又具有善于交流能力的项目管理人员,进行过程跟踪和度量。

(7)知识产权保护。要制定政策,同时也要签署一份保密协议,一份同业禁止协议以避免承包商未经授权盗版你的技术。比如,承包商可能会利用他们的私有技术或者是开源技术开发新产品,而这种新产品是以后的应用中可能会用到的。在这种情况下,提前定义好哪些源代码属于发包商,哪些属于承包商,哪些属于客户,并阐明授权问题,这是非常重要的。在开发工程中,一定要使项目开发工程中产生的代码文档化,这样代码才能变成公司的财产,并受到法律保护。

(8)营造学习型氛围。软件外包并不意味着发包企业可以一包了之,不再需要软件开发人员,不用学习相关知识。选择了外包的同时,一定不能切断企业学习所处商业领域技术的最新发展及应用的机会,不管外包项目的大小,都需要保留一部分原先部门的精英来应对外包后可能发生的各种情况。发包企业相关高层应该在企业内部倡导良好的学习氛围,以使企业更好地适应变化的环境。

3.2 承包商的风险防范

(1)重视需求分析。承包商首先要对发包商的需求作认真分析,然后通过业务建模、会谈、问卷、需求会议等方式收集客户完整需求,形成文档,最后经过客户讨论、客户审查、文档修订等多次反复的过程以明确最终需求;对某些不明确的需求应与发包商一起讨论;对于项目实施过程中的需求变更,规定处理办法并使意见达成一致,形成项目的最终需求。

(2)加强与发包商的沟通。要保障外包业务的顺利进行,承包商应该保证合适的人员和组织时刻监控其内部关键人员的变动情况,尤其是其高层的变动,以便与软件发包商交流、报告进度和人员变动情况,使得双方内部的情况呈透明状态。虽然软件外包成为企业提高竞争力的必走之路,然而目前我国企业软件外包的现状还不容乐观,软件外包的成功率还比较低,软件外包的风险随时存在。希望本文会给企业软件外包决策提供帮助。


[本日志由 eddy 于 2013-06-20 11:46 AM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 软件外包 风险
相关日志:
评论: 0 | 引用: 0 | 查看次数: 6997
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 300 字 | UBB代码 关闭 | [img]标签 关闭