软件开发加速战略:外包
发布者:李红 来源:赛迪网 点击: 发表日期:2007-06-20   关闭
    在众多的软件开发过程方式中,外包是新的“加速器”。 

    软件开发由于本身的特点总是存在这样那样的问题,进度拖延、成本失控已经让越来越多的企业感到头疼。如何缩短软件产品的开发周期,在节省人力资源投入的同时又能保障软件产品的质量?在众多的软件开发过程方式中,外包不失是一个软件产品开发的“加速器”。 

    为何外包能够在软件开发过程中起到“加速器”的作用呢?我们可能都遇到过这样的问题:公司突然接了一个很大的项目,这个项目要求的开发周期非常紧张,而这个项目的成败对公司来讲又非常重要,公司内部没有那么多的人员参与项目的开发,于是企业只能临时向社会招聘人才。由于时间比较紧张,招聘来的人员没有进行严格的筛选,结果在项目开发过程中遇到了人员能力不够、工作不积极、团队协作能力差等问题。于是企业又不得不重新招聘人才,等这个项目终于开发完了,临时招来的人员又没有合适的工作可以安排,造成了人力资源的严重浪费。这样的情况普遍存在于各个企业当中,既然企业有一时的人力资源紧张问题,那么我们为何不来尝试一下“外包”呢? 

    外包真的可以解决企业面临的人力资源问题吗?答案是肯定的。因为外包首先是为了解决暂时人力资源不足,另外就是为了降低开发成本。从这一点来看,国外软件做的就比较好,由于中国劳动力成本比较低,国外的企业通常通过在中国外包的形式来降低开发成本,同时解决人力资源暂时不足的问题。 

    既然外包有这么多好处,那么我们应该怎样来进行软件产品的外包呢?这里面确实有很多的经验和学问。 

外包产品的形式 

    首先,我们先来看一下外包的形式,从软件开发生命周期来看,根据生命周期的不同阶段,软件外包又分为需求外包、设计外包、编码外包和测试外包。 

    我们先来看一下编码外包,这种方式的外包比较普遍。日本软件外包一般都是采用编码外包,即日本企业提供需求、设计和测试,国内企业做代码实现。这种形式的外包,发包方已经将需求、设计、类和模块以及函数的功能要求写得非常详细,承包方只需要填写符合要求的代码就可以了。 

    因此编码外包能够比较好地保护发包方的商业机密,承包方不知道软件到底要实现什么功能,因此也就形成不了竞争的威胁。另外由于设计非常详细,因此可以将不同的模块分别外包给不同的承包商,这在节约成本和提高产品开发速度方面具有很多的优势。 

    但是编码外包需要发包方在需求分析和设计方面具有很高的能力,如果需求设计能力不够,很难将模块、类以及类函数和类属性描述清楚,就会使描述文档不清晰、语言存在二义性,如果再加上沟通不充分的话,承包方开发出来的代码很可能就不是发包方想要的,到那时代码返工就会造成进度拖延,这是双方谁都不愿意看到的,不管是谁的责任,进度拖延已经是事实了。 

    因此在将编码外包之前,发包方必须花费较多的时间和精力进行需求分析、框架设计、模块和类以及函数的功能等设计,并且将这些类和函数进行分类编号,形成统一的文档,交给承包方,这样才能够保证对编码进行有效的跟踪监控,并对编码质量进行检查。 

    我们再来看一下需求外包。需求外包就是承包方做需求分析,发包方做设计、编码和测试。一般将需求完全外包的情况不是很多,除非承包方在某行业具有非常资深的行业经验和积累,发包方也非常希望能够利用承包方的这部分经验。这种形式的外包对于发包方来说,必须做好需求的检查工作,有些时候如果承包方对需求做的不够细化,而发包方又没有及时发现,可能会给发包方带来不可估量的损失。 

    设计外包,顾名思义就是发包方进行需求分析、编码和测试,承包方进行设计。这种形式的外包也不多,一般都是发包方进行需求分析之后,由承包方做某一个模块的设计、编码和测试,这种方式也被称为模块外包。发包方可以将一些不重要的,没有核心需求、核心技术和核心竞争力的模块外包给其他公司,这种形式的外包在美国的软件外包中比较多。对于发包方来讲只需要分清楚哪些模块可以外包,哪些不可以外包就可以了,不需要花费很多的精力进行设计,因此在节省人力方面存在着较多的优势,但是同时对发包方的需求分析的能力要求更加严格。 

    测试外包,就是发包方进行需求、设计和编码,由承包方进行测试,这种方式一般都是由于发包方的测试能力比较低,或者希望通过专业化的测试来提高软件产品质量的情况时采用。测试外包要求发包方对测试的功能点和测试要求有详细的描述,而且对测试后的代码质量有严格的约定,同时为了保护发包方的商业机密,不能对承包方暴露需求和设计文档。 

    另外,从外包实现方式来看,目前主要有两种方式,一种是人员外包,一种是项目(产品)外包。 

    人员外包主要就是承包方提供开发人员直接到发包方那里去工作,由发包方直接管理,这种方式主要目的就是为了解决发包方人力资源暂时不足的问题,主要优点是人员完全由发包方自己管理,产品开发的进度和质量也都由发包方自己控制,因此在解决了人力资源不足的同时也减少了项目开发风险。而对于承包方来讲,由于不需要对产品进度质量负责,因此操作起来比较容易。 

    另外一种就是完全的项目(产品)外包,发包方和承包方各自成立项目小组,双方共同来完成产品的开发任务。这种实现方式的外包对双方的管理和沟通能力要求都比较严格。 

外包产品的流程 

    知道了外包的形式,我们再来看一下企业在具体执行“外包”的时候应该遵照的流程。外包的流程主要包括:承包方的选择;合同及附件的签订;外包产品的开发以及开发过程中的跟踪和监控;最终产品的验收;产品维护。 

    如何选择一个合适的承包方,对外包的成败起着关键的作用,这里介绍几点经验:首先在选择承包方的时候除了商业资质以外,还要看以前的成功案例、行业经验、开发人员的实际能力等。此外还应该考查一下承包方是否只做外包,如果承包方自己还有类似产品的话,需要慎重考虑,以免承包方以后成为自己的竞争对手。在承包方开发人员实际能力的考察方面可以采用面试的方法,实际地考量一下承包方项目组成员的实际水平。 

[1] [2] 下一页

发 表 评 论 相 关 信 息
姓名: 邮箱:
内容:
全部评论
  • 软件开发项目有计划才能应对变化
  • 南京生物医药研发暨服务外包国际研讨会召开
  • 软件外包能否出现世界级企业?
  • 研究报告称:五年内越南将成为IT外包服务大国
  • 软件开发项目中的需求变更分析和解决之道
  • 陈礼勤:带着订单回国 药物研发外包大有可为