因为业务“逼迫”,电信、金融、政府以及大型企业在软件应用方面比较“投入”。以电信为例,电信业在多年企业级软件的应用中逐渐陷入了这样一个困局:一个企业级的业务支撑系统在投入了千万元资金和数年时间之后,刚刚上线运行,企业的组织结构、流程、人员、业务就在软件开发的过程中发生了很大的变化,而且还在变化!这时候,软件开发商就必须修改软件。但面对上百万行的代码,这种修改谈何容易!只要电信业务发生一些微小的调整,也需要在全国范围的电信系统内调试将近半个月!上线一个软件的过程,就是往地上深深地打一根“梅花桩”的过程,桩打得越多,企业间的部门信息孤岛越多,企业越不灵活。
这是我在亚信公司时的切身感受,这一切让我对软件产生了恐惧感。每当我看到电信客户的管理软件被开发商越编越大、代码语言越写越多、系统结构也越来越复杂时,我的软件恐惧症总是不期而至。
如何解决这个问题?我一直在思考。
当前,中国市场中的企业级软件交付,主要是两种情况:一种是“移植”――将国外已经得到实践应用的成熟套装软件经过二次开发后在中国“移植”应用;另一种是“定制”――由应用软件开发商(国内居多)完全依据客户的个性需求,从代码级开始,量身定制满足客户需求的企业级软件应用。在我看来,这两种企业级软件的交付方式,都不能从根本上解决软件随需应变的问题,而中国绝大多数企业都处于快速变化之中。
在不断的思索以及与许多软件研究人员的交流中我逐渐认识到,不能只靠技术来解决问题,对于应用软件的现状,更需要一场深刻的变革――改变应用软件的结构!在创建了普元公司后,我终于可以在实践中去尝试改变软件业的痼疾。
变革的突破口始于证券行业,普元为这个行业提供客户关系管理 CRM 软件。但不同的是,我们既不“移植”,也不“定制”,而是把CRM系统分解成很多“构件”,然后通过构件的组装来完成CRM应用的开发。到了不同客户那儿,他们只需要升级或添加小部分构件,就能按照个性化的需要做出新的CRM产品来。
现在,用户可以使用由普元提供的一个面向构件的中间件软件,依据自己的新需求,灵活调整已有的产品结构,实现敏捷定制。这个过程,就像我们先把客户的业务抽象成一块块“积木”,不同的客户,依他的不同需求,在我们的软件中,设计积木、搭建积木。
构件化提升了软件的复用性,在给新的客户提供CRM管理软件后,我们发现,每个项目平均可以节省50%的软件开发成本和开发时间!可以说,我们找到了较完美的解决之道――在面向构件的中间件上实现客户应用产品的交付。对于开发商,一个应用系统不再是由上百万行的代码组成,而是由几千个构件经过可视化组装而成,在系统的复杂度上有了数量级的下降;软件人员将挣脱面对大段冗长代码的泥潭,而是用图形化的组装使软件跟应用设计合二为一;产品的通用性由构件来实现,而产品的个性由构件的组装和配置来实现。这使得开发商有了摆脱“不断重复制造轮子”的可能,使得企业的软件开始变得轻盈起来,轻松面对各种变化调整。