由于不同的用户对oa有着不同的要求,通用产品很难做到不同用户要求的满足,一般需要进行oa系统二次开发。oa系统开发是指在厂商oa产品的基础上进行开发,不同的厂商产品由于技术架构和平台化能力的差异,开发能力和基于用户需求开发的代价也不同。
厂商oa产品的升级一般是针对通用功能需求的升级,而用户个性化需求的实现只能通过oa系统开发进行解决。虽然oa二次开发可以提升软件的适应性,做到不同程度的满足用户的需求,但不合理的oa系统开发会导致项目实施成本的无限增加,实施周期的延长,导致现有系统的不稳定和产生新的错误。以下四种情形的oa系统开发应该尽量避免。
一款好的oa软件产品,通用办公的功能需要完善,需拥有权限系统、工作流定义、表单定义等核心基础功能,oa软件的后台管理需易用和强大,常规功能的维护不需要通过厂商的代码开发,一般用户可以自己进行日常维护。
因此,oa用户在选型时首先需要对基础功能进行试用,尽量避免和减少由于通用功能缺陷带来的开发。一般用户在oa的使用过程中,权限、流程、业务等有可能会发生变化,一般都是在具体使用中即时提出的,如果oa办公该系统平台的灵活性差,这些基本功能的调整都需要oa厂商采用代码开发实现,则不仅维护效率低、对厂商依赖大,而且无形中大大增加了最终用户的服务成本。
oa系统开发的需求不清晰或不确定,会导致后期系统的反复修改与调整,而不断的对系统进行修改和调整,会导致系统结构的紊乱和系统的不稳定,因此需要尽量避免这种情形的发生。导致需求不清晰的原因是多方面的:
很多厂商的oa系统开发是在修改oa核心源码的基础上进行的,这种情形在php和asp开发的oa,以及系统设计和技术架构不好的oa上比较常见。在现有核心源码的基础上进行,首先需要非常熟悉核心源码和设计,模块之间的耦合程度高,修改现有代码会产生新的错误,系统的出现不稳定;更为糟糕的是修改了核心源码,后续不能直接享受厂商产品的系统升级,需要重新整合和开发,成本和代价非常高。
oa的个性化开发非常普遍,oa厂商既不能遏制用户合理的需求,抵制oa系统开发,最终用户也不能无限增加不必要的需求,放大软件开发的范围、增加风险和成本。虽然oa系统开发可以很好的满足用户个性化的需求,提升了oa软件的适应性,但在具体的实施过程中,应合理的处理好二次开发需求、成本、周期之间的关系。
oa系统针对不同用户的个性化开发一直是行业的难点,代价高的个性化开发让很多中小企业用户无法承受,平台型oa具有良好的技术架构,良好的扩展性、集成性和二次开发能力,大大降低了oa系统开发和维护的技术难度,让个性化oa的开发能够被众多的中小企业所接受。