如何正确认识与应对OA系统的二次开发?
OA系统的二次开发在产品和厂商选型时,一般情况下只有明确个性化需求的用户才会提出,而在OA系统实施前期,由于用户对OA系统不熟悉、对自身要求不是很了解,很多提不出个性化的需求,但后期随着对OA系统使用的逐步深入,以及对自身要求的更加了解,在使用过程中用户的个性化需求会不断的呈现,此时需要通过OA系统的二次开发进行解决,二次开发是解决用户个性化需求,提升软件实用性、作用和价值,持续深化OA应用的基本手段。
OA系统的二次开发的影响因素有很多方面,典型的包括:用户个性化需求的开发量和复杂程度,OA厂商产品的扩展性和二次开发能力,以及最终用户的预算等。如果选择的OA产品技术落后、二次开发能力弱,必然会导致二次开发的代价高,甚至是技术层面上实现难度大,而最终用户尤其是中小企业用户无法承受二次开发过高的费用,这是很多二次开发无法实施的常见原因,作为OA软件厂商和最终用户应该如何有效地应对二次开发呢?
一、为何会存在OA系统的二次开发?
要正确认识与应对OA系统的二次开发,首先就需要理解为什么会存在二次开发,合理提出需求并对需求进行取舍,主要是由以下几个方面导致的:
1、由OA管理软件的特点决定
OA管理软件需要解决用户的实际需求,既有通用的需求也有包含自身特点的个性化需求,用户的需求因不同的行业、不同单位的管理模式、单位不同的发展阶段等不同而存在差异,通用功能很难做到满足所有用户的需求,单纯的认为二次开发是由于OA系统标准功能不成熟和不完善是相对片面的。
2、OA系统二次开发深化OA应用
对于OA系统使用要求不高的用户,一般主要使用厂商的OA通用功能,融入了自身个性化的管理和业务需求,可以更好的发挥自身的优势,而对于用户的个性化需求,一般需要通过OA系统的二次开发进行解决,二次开发是用户持续深化应用和优化系统的必要策略,成功的二次开发带来的是软件适应性的提升、用户的高满意度。
3、OA系统的集成与整合
OA系统和其它系统之间的集成、整合,系统之间数据交换和信息传递,只能通过二次开发解决。
4、相关功能缺乏与完善
产品功能缺失需要在项目中通过OA系统的二次开发解决,严格意义上讲这是产品的升级范围,一般不推荐通过二次开发解决,一方面需要用户承担不必要的代价,其次是项目实施人员的技术开发能力无法和产品研发人员相提并论,特别是对源码的直接修改影响系统的稳定和后续通用功能的升级。
二、OA系统二次开发的需求如何取舍?
既不能夸大二次开发的难度和风险,遏制用户合理的需求,也不能无限的放大二次开发的范围增加风险和成本,二次开发可以更好的满足用户的需求,提升软件的适应性,但在具体的实施过程中,应合理的处理好二次开发需求、成本、开发周期和开发质量之间的关系。如果二次开发的工作量大和技术难度大,则成本会大大增加,系统开发实施的周期也会比较长,因此OA软件厂商和最终用户之间就二次开发问题最好能够达成一致意见,软件厂商就基于现有产品的架构和设计进行考量,结合二次开发需求评估二次开发相关需求的可行性、难度、开发周期和成本。
在充分理解和评估二次开发需求的前提下,做到合理的取舍以实现降低技术难度,缩短开发周期,确保通过二次开发实现预期目标。
三、OA系统二次开发由谁来进行?
对于大多数中小企业用户而言,如果没有专门的IT技术人员,直接将二次开发完全给OA厂商处理是最好的解决办法,如果有IT人员则可以考虑承担部分开发任务。目前很多OA提供了表单、工作流等定制工具,一般的功能修改和调整可以基于该模式实现,可以更好地节省时间和成本。
如果最终用户有IT人员且系统提供了成熟的接口,二次开发也可以不用软件厂商来处理;如果是基于核心源码的开发需要提供源码和技术指导,这种模式需要尽量避免,修改源码的二次开发是一种落后的开发模式,且需要熟悉已有系统的技术和架构、代价过高,新的修改可能会导致系统出现新的不稳定,修改部分后续不能直接接受标准产品的升级。
很多OA系统的二次开发是需要进行代码开发的,这方面平台型OA有着比较明显的优势。以承元OA为例,使用定制代替直接的手工代码二次开发,在平台提供的接口基础上进行开发,大大降低二次开发的技术难度,节省二次开发的时间和成本,提升OA系统二次开发的稳定性和软件质量。
四、OA系统二次开发的周期和费用如何计算?
由二次开发的功能需求多少,现有通用功能的满足程度,二次开发的技术难度和开发模式等综合因素决定的。