浅析产品化与定制化软件优劣势

2017/6/30

        目前市场上的信息系统软件基本形成两个比较明确的阵营:一个是定制化研发,完全根据客户的需要进行开发,对于定制化研发来说,不同的项目之间虽然有技术的继承但却没有产品的延续,对于软件开发方一次的投入很难连续的产生价值;另一个方面是产品化运作,将产品功能基本固化,满足一个较大应用群体的共性化需要,产品可以通过软件商店的形式直接销售给客户,将软件后期服务也基本固化,真正做到一次开发多次利用的效果。对已经相对成熟的这两大阵营,作为企业的信息化管理部门应该如何做出抉择和取舍成为了摆在我们面前的课题。  

       1 产品化软件和定制化软件在流程电子化方面,尤其是管理支撑类流程方面存在一定程度的重叠,但两者的定位不管是从产品的体系架构,或者是在实施方法论等方面还是存在很大的差异。从更好地满足客户的核心业务需求的角度出发,相较于传统的产品化软件,定制化软件在满足企业核心业务流程管理方面是具有明显优势的。但是随着产品化软件的不断发展和完善,对于数据处理要求不是很高,业务逻辑相对简单的系统来说,产品化软件已经逐渐体现出它的优势。目前,主流的产品化平台软件中的一个核心功能应用在于流程管理,从专业角度来看,产品化平台软件已经含有流程管理的功能模型,并已经完全含有项目化平台软件的核心功能,例如表单建模、流程引擎、权限模型等核心功能点。    

2 产品化软件与定制化软件优劣势分析对比   

       2.1 用户体验和页面友好性方面的对比    定制化开发软件随着使用年限的不断增加,软件开发技术的不断发展,导致系统兼容性、UI可用性和易用性不断下降,随着计算机操作系统、浏览器软件和OFFICE等办公软件的更新换代,经常发生按钮功能不正常,系统页面显示不正常等问题。大多数企业员工信息技术水平有限,很难自行对浏览器和操作系统进行兼容性调整和设置,从而降低了日常的工作效率,也加大了信息化部门的工作量。而产品化软件方面则不存在以上问题,由于产品版本迭代速度较快,能够做到持续改进,所以能很好的适应其周边软件的不断升级更新,系统页面友好美观,与日常办公软件能够良好衔接,基本上不会发生由于系统兼容性而导致系统功能不正常的问题。  

  2.2 系统功能、开发周期与开发成本方面  

        产品化软件其优点在于能够满足客户绝大部分通用的需求,且建设费用相对较低。由于事前已经有较为成熟的产品化功能模块,从而能够在需求分析阶段结束后直接进入系统的搭建与测试阶段,省略了传统软件开发生命周期中基本设计、详细设计、代码编写这几个最为耗时费力的工程段,能够做到快速搭建、快速部署、快速上线,大大加快了项目实施进度。由于有产品化功能模块和可视化系统搭建平台的存在,整个项目实施过程中不需要程序代码的编写,所以几乎不需要有很强技术功底的开发人员的参与其中,从而也降低了整个项目建设的人力成本。相对于业务简单通用,变化小,成熟性的公司,这种产品化软件的性能价格比还是很有吸引力的。  

        定制化软件方面,软件自身完全可以按照客户的需求来定制,能够做到量身定制,在客户一些细节需求的对应上较为灵活。但定制化软件的建设实施工作由于是从零开始,从无到有,所以需要经历完整的软件开发生命周期,相对于产品化软件来说开发周期长,对系统建设人员的技术水平要求较高。另外定制化软件实施的成功必须建立在两个前提条件下,一是客户有一套清晰成熟的管理方法,能够非常明确系统的提出自身的业务需求;二是供应商拥有一批既熟悉业务,又熟悉软件开发技术,而且要具有丰富的开发经验的业务技术专家。这两个条件缺一不可,项目实施的成功与否,周期长短,所实现功能与顾客需求的差异性,都取决于这两个方面。而作为在市场上被广泛接受的成熟的产品化软件来说,在一定程度上是为企业提供了一套管理的思路、管理方法的模板与建议,企业可以去主动地适应产品,把产品的设计理念、管理流程应用到企业自身的日常管理中。所以对于管理思路不是很清晰企业,购买产品化软件不仅是购买了一套软件更是购买了一套较为成熟的管理方法论,也是对成熟先进管理方法的一次学习和浸润。    3 系统维护方面的对比  

  3.1 新增、变更需求对应方面  

          对于定制化软件来说只要发生新增需求或者变更需求都必然需要通过修改代码的方式去应对,代码的修改和增加即会产生相应的开发工作量,则需按工作量付给供应商相应的开发费用。  

        而产品化软件由于采用可视化、配置化的系统搭建平台实现业务需求的理念,在流程的调整变更与新增、表单内容的调整变更、页面布局的调整变更等方面,全都可以通过系统管理员在可视化管理平台上自行调整,不需要通过修改增加代码的方式去实现,所以节省了很大一部分由需求变更所产生的开发费用。只有通过后台配置不能实现的新增、变更需求,才需要与供应商沟通进行定制化开发并产生相应的费用。另外,进入维护阶段后只需支付供应商一定数量的电话服务费用,不需要供应商提供专员在客户现场进行维护工作。    综上所述,产品化软件后期可以根据业务流程变化灵活调整,经过培训的企业信息化人员可自主完成,无需依赖厂商,基本不产生系统升级开发费用,与定制化软件相比大大节省了系统维护成本。  

  3.2 系统维护方式与服务响应时间方面  

        定制化软件维护方式的优势在于由于开发人员在长期客户的现场服务,且对系统架构和源代码以及公司业务相关业务较为熟悉所以响应速度较为迅速。但随着定制化软件使用年限的增加,维护人员的流动不可避免,所以会造成代码的健壮性与可读性不断下降,导致只有专门的对系统极为熟悉的供应商开发人员才能对系统进行维护工作。通常的项目化软件维护周期中,随着系统上线时间的增加,系统运行越发稳定,项目团队从维护成本上考虑通常会逐年递减系统维护人员,甚至最后整个系统的维护工作只有一个维护人员担当完成,如果维护人员较为单一,倘若此时人员发生变动,新的维护人员很难在短时间内理解系统实现方式以及所有源代码,很难在短期内开展相关维护工作,从而使系统维护工作出现空窗期,这对系统的稳定运行可能造成较大的影响。  

        产品化软件的维护方式通常采用由单位系统管理员结合供应商客呼叫中心的维护方式,由于产品化软件通过可视化配置平台实现系统功能的程度很高,所以单位系统管理员作为维护工作中的主要角色,承担了90%左右的维护工作。只有在发生系统BUG和通过系统管理员配置不能实现,需要定制化开发的时候才需要供应商相关团队的配合。但由于供应商团队在现场没有开发维护人员,且产品化软件在定制化开发方面受到诸多限制,所以在响应时间上的表现明显不如定制化开发软件。此外,产品化软件背后有专业、稳定、庞大的团队在对各模块的代码进行维护,所以在代码维护方面较为稳定,代码版本管理方面也较为规范,人员的流动基本不会对代码的维护造成影响,从而能够有效降低由源代码管理问题以及人员流动问题引发的系统运维风险。    4 结束语  

        综上所述,产品化软件在诸多方面都具有很大有优势,对于缺乏软件开发专业人员,对系统建设速度和成本要求较高的企业来说是很明智的选择,他能够帮助您低成本高效率的完成系统建设工作。但对于业务逻辑极为复杂,业务需求变更较为频率,系统维护服务响应速度要求很高的企业来说,现阶段的产品化软件可能很难满足您的要求。所以选择产品化还是定制化软件还是不能一概而论,最为理性的做法还是应该根据企业自身的业务需求情况,人员配备情况选择最适合自己的系统建设方式。