浅议软件外包的风险及预防
2017-07-06苏晓光
苏晓光
[摘 要] 在软件外包过程中,软件项目的自身、发包商和承包商等诸多因素,会造成软件项目的进度滞后、预算超支、质量缺陷等风险。分析软件外包过程中存在的各类风险,提出了如何针对性地预防这些风险的出现,并提出预防风险的解决办法,将软件外包的风险降到最低。
[关键词] 软件外包;风险;预防
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2017. 11. 037
[中图分类号] F279.23;TP311 [文献标识码] A [文章编号] 1673 - 0194(2017)11- 0077- 02
1 引 言
随着计算机技术的不断进步,软件行业也得到了蓬勃的发展,而且软件行业也逐步成熟,为了引进先进的、专业的软件技术,很多大公司已经将其软件的开发外包出去,寻找领域内优秀的公司进行外包,可以节省人力、物力、财力,转而投入到自己的核心业务,使其自身发展更好,更有竞争力。但是,在软件外包过程中,会存在软件项目的进度滞后、预算超支、质量缺陷等风险。
2 软件外包的风险分类
软件外包就是公司为了专注于核也竞争力业务和降低软件项目成本,将软件项目中的全部或者部分工作发包给提供外包服务的公司来完成的软件需求活动。由于软件外包项目所处环境和条件存在众多的不确定性和不稳定性,从而导致了高风险性。软件外包风险类型、样式较多,总结归纳为三大类:软件项目自身的风险、软件项目发包商的风险和软件项目承包商的风险,具体的表现细节如下所述。
2.1 软件项目自身的风险
进行外包的软件项目自身就存在很多不确定的风险因素,软件的项目的需求不明确或需求不断变更,造成一个看似很有“钱途”的软件项目,往往由于无限度的需求变更而让项目承建方苦不堪言,甚至最终亏损。有些软件项目对进度要求非常苛刻,项目进度的延迟意味着违约或市场机会的错失。软件项目自身对质量、进度、性能等各项指标要求过高,大大高于行业标准或整体水平,这类项目在实施过程中对各种要求极其严格,某一不确定因素就会造成项目的不理想或项目的失败。软件项目自身的风险因素也是决定软件项目成功的重要因素。是很难进行验证的。
2.2 软件项目发包商的风险
软件项目在进行外包过程中,如果发包商缺乏上层领导的支持是项目获得资源(包括人力资源、财力资源和物料资源等)的有效保障,也是项目遇到困难时项目组最强有力的“后台支撑”;项目需求沟通不良风险,项目组与业务需求方沟通不良是影响项目顺利进展的一个非常重要的因素;发包商内部各个部门之间协调是否顺畅、办事效率是否高效、相互之间是否推诿等因素,都会影响软件项目的成功。在与承包商签订合同时,签订的合同不科学、不严谨,项目边界和各方面责任界定不清等是影响项目成败的重要因素。
2.3 软件项目承包商的风险
承包商的资质、能力、信誉、行业经验等都是影响项目成败的重要因素。软件项目开发和实施过程,所用到的管理工具、开发工具、测试工具等是否能及时到位、到位的工具版本是否符合项目要求等,是项目组需要考虑的风险因素。在软件项目开发和建设的过程中,战略管理技术因素是一个非常重要的因素。项目组一定要本着项目的实际要求,选用合适、成熟的技术,千万不要无视项目的实际情况而选用一些虽然先进但并非项目所必须且自己又不熟悉的技术。如果项目所要求的技术项目成员不具备或掌握不够,则需要重点关注该风险因素。团队成员的能力和素质,对项目的进展、项目的质量具有很大的影响,项目经理在项目的建设过程需要实时关注该因素。团队成员是否能齐心协力为项目的共同目标服务,生产管理是影响进度和质量的关键因素。项目成员特别是核心成员的流动给项目造成的影响是非常可怕的人力资源问题。人员的流动轻则影响项目进度,重则导致项目无法继续甚至被迫夭折。
3 软件外包风险预防
上面分析了软件外包的各种风险,风险种类繁多,各种风险之间也项目影响,对于外包风险的预防,综合分析无非是需要做好下面几类风险预防。
3.1 建立专业的外包管理团队
建立一个业务需求团队,便于合作方的顺利沟通将软件项目外包开发后,很多分分包商会认为负责项目开发的是承包商,于是尽量节省人力,降低成本,控制本方技术、业务人员的参与。事实上,作为软件项目的建设方,分包商不应对开发项目放任自流,不闻不问,而要有自己的专业外包管理团队,积极参与到项目的开发过程中,对项目进行过程化管理,保障软件的开发质量,否则就难以达到理想的外包效果。
在外包管理团队中,最主要的人员应是计算机技术人员。技术人员在外包监督和管理的过程中起主要作用,充当项目经理、系统架构师、系统分析师、关系经理等角色,需要具备项目管理、外包管理、系统架构、信息安全等方面的知识,并要不断地更新知识结构,以适应快速发展的技术要求。外包管理团队中的技术人员应主要由具备计算机信息技术的人员组成,人员素质应较高,数量应较充分。在外包管理团队中,也要有业务部门的需求联系人。需求联系人需要提出合理的业务需求,并对软件系统进行用户接受度测试。在外包管理团队中,还要有采购人员和法律人员,分别负责软硬件的采购和合同事务的处理。
3.2 软件外包项目的选择或筛选
通过外包管理团队的充分论证,选擇合适的项目进行外包,对于分包商来说,术业有专攻,将一些自身缺乏研发经验、非核心的软件项目外包出去,交给有较强实力、有行业经验的公司来完成,这样可以达到缩短工期、降低成本,获取更大利益的目的。而且也可以使公司将有限的资源和力量建设自己的核心专业,使公司在同领域内更有竞争力。
3.3 软件外包合作方的实力及资质
首先要从外包服务商的公司资质、技术及研发队伍实力、知识产权状况、成功案例及以往合作经历等方面去考察。还应从公司所提供产品的功能、架构、成功案例等对产品方面进行评估。在有条件的情况下,可以搭建测试环境,通过测试案例对产品进行测试是对产品功能、性能、架构及需求开发过程最好的了解和检测方法。
3.4 合同的签订及合同约定内容要详细、准确及合理
在外包管理过程中发生的许多问题都是任务或者要求不明晰明确造成的,即客户有许多要求没有明示在合同或相关附件中,属于隐含要求。如果外包方理解有偏差,出了问题后再扯皮即无法挽回已经造成的服务质量损失,两败俱伤。因此将粗框型合同细化,尽量覆盖服务涉及的方方面面,对于日后的服务质量监督与检查非常有利。在外包服务合同中应明确任务。任务边界需要定制清楚,工作范围要明确,最好要约定遇到不确定职权范围时的协商机制和原则。要明确外包服务商项目经理及项目人员的条件,甚至明确到人。明确系统版权及源码归属。明确后续服务相关条款等等,在整个合同执行的生命周期持续控制服务质量。
4 结 语
软件项目外包是时代进步的产物,只要预防和控制好外包过程中的风险,必将节省人力、物力、财力,投入到自己的核心业务。在进行软件项目外包活动时,发包商根据自己外包管理团队,对需要外包的软件项目进行充分调研和论证,选择合适的软件项目进行外包,并选择适合的承包商,规范软件项目外包的实施流程,争取将软件项目外包的风险降低到最小程度。总之,软件项目外包的成功,离不开发包商和承包商的共同努力,在合作过程中,双方应该建立良好的互信、互惠、长期的合作关系,使双方共同进步,走得更长远。
主要参考文献
[1]Gonzalez R, Gasco J, Llopis J. Information Systems Outsourcing: A Literature Analysis[J]. Information & Management,2006,43(7):821-834.
[2]王永峰.保险公司软件外包的管理策略[J].中国金融电脑,2010(10):30-34.
[3]李洋.高职软件外包服务校企合作的问题与对策[J].价值工程,2014(28):280-282.
[4]陈光欣.高校信息系统外包的風险及对策研究[J].中国教育信息化,2009(11):4-6.
[5]杨俊英,林鹏.企业信息系统外包风险[J].经营与管理,2013(12):48-49.
[6]杨苔萌.C公司软件外包项目风险管理研究[D].上海:华东理工大学学,2015.
[7]陈通,刘彬. 基于CMMI的企业软件外包风险管理研究 [J].重庆理工大学学报:自然科学版,2014(9):77-82.
[8]陈运娟,杨峰.中小型公司对日软件外包风险管理研究 [J].经营管理者,2012(8):168-169.
[9]丑远涛.企业信息系统与服务外包风险管理研究[J].企业导报,2015(8):159.
[10]倪兴平.采购外包风险管理研究[J].现代企业教育, 2014(20):540.
[11]魏想明,操筱薇.基于IT外包服务质量的信任形成及其对合作的影响[J].学习与实践,2014(6):44-48.
[12]李靖华,阮绍平.我国软件企业外包信任关系的路径演变分析——对杭州的多案例研究[J].科学学研宄,2012,30(3):407-416.
[13]李靖华,李宗乘,阮绍平.软件外包信任关系研究综述[J].科技管理研究,2013,33(4):249-253
[14]曹萍,张剑.软件外包中承包商风险规避决策与产业安全研究[M].北京:科学出版社,2015.
[15]秦自立.A公司软件外包项目风险管理研究[D].广州:中山大学,2010.
[16]王衡.银行软件外包的项目管理[D].济南:山东大学,2007(03).
[17]杜彬.银行软件外包项目管理优化研究[D].北京:北京邮电大学,2009.