在企业应用领域,目前主要流行三种系统框架,即Microsoft的.Net框架、LAMP(Linux-Apache-MySQL-PHP)框架,以及Sun所倡导的Java平台。其中的任意一种,都足以构成完整、高效的企业应用。但对于特定的行业应用和特定的项目,例如CRM,这三种选择中哪一种更可取,应该能够通过分析各自平台的特性而得出。
这里先谈谈CRM与Java平台的一般特性,再分析为什么这些特性在构建CRM系统时能够构成一个几乎必胜的选择。
CRM系统的多种应用模式 由于各厂商的界定颇有参差,给出完整的CRM系统定义确实相当困难。我们不妨从列举目前流行的多种CRM系统应用模式入手,诠释CRM的真正含义。
根据业务侧重点,我们大致可以划分出销售型、市场营销型、客户服务型及运营型四种常见的CRM系统应用模式。
1.销售型应用模式又称销售自动化(Sales Force Automation/SFA),主要关注售前客户线索的捕捉和销售机会的全程跟踪。通过记录销售人员与客户/联系人间的活动交往,以及销售机会各阶段的进展,达到规范、优化销售流程,提高销售状况的能见度,从而最终提高销售收益的目的。
2.市场营销型应用模式,主要是通过调查、咨询手段分析购买意向,并同时发掘潜在客户。常见的方式包括电话营销、邮件营销及市场问卷等。
3.客户服务型应用模式又称客户服务中心(Customer Service Center),主要是通过对售后客户服务、咨询、保修、投诉等流程的处理,从而达到提高客户的满意度和忠诚度,减少客户流失的目的。
4.运营型应用模式往往用于服务开通、订单处理等环节。对于在线交易或电子购物等新兴行业,这些内容尤其重要。
根据系统功能,又可以在CRM系统中划分出交互、存储、业务流程处理和数据分析四个方面(如图1)。
图1 CRM系统功能图
1.交互是指由CRM系统作为通信平台,实现企业与客户的多渠道交往。先进的CRM系统能通过CTI(Computer-Telephony Integration)、Internet等现代通信技术,整合几乎所有客户交往方式,实现统一的前端办公室(front-office)平台。
2.存储是指将客户基本信息及与企业各部门的历次交往、交易信息统一地保存在客户库(Customer Base)中,以便在下次交互发生时迅速定位客户,并为分析提供依据。对于大型商业企业,维护完整的客户历史数据(Total Customer Experience)往往意味着海量存储技术的应用。
3.业务流程处理是指根据特定的业务规则和工作流程完成特定任务的派发、审批、处理过程。这些一般通过工作流和消息中间件技术实现。
4.数据分析是指基于相对完善的客户库和一定时期的客户历史记录,对相关数据进行挖掘、分析,从而实现客户分层、交叉销售等功能,并达到决策支持的目的。数据仓库(Data Warehouse)和数据挖掘(Data Mining)技术在这里至关重要。
渐进式实施CRM 介绍了企业中应用CRM系统的不同模式和功能层面,不同的厂商出于技术背景和产品定位,往往会强调其中一个或多个方面,对CRM系统给出自身的定义。一个SFA产品厂家和一个呼叫中心厂商心目中CRM系统概念,会千差万别。面对琳琅满目的新奇概念和前沿技术,如何针对自身企业需要实施CRM项目,这给企业决策者提出了难题。
其实,“CRM系统”与“CRM”二者有很大区别。“CRM系统”固然是软硬件构成的一种企业应用,但“CRM”本身却未必有特定的技术内涵,而首先是一项现代企业管理实践。CRM的核心内容,无非是“通过有效的手段,保持原有客户,吸引新客户,并达到客户利润最大化”的原则。由此可见,CRM在一个企业中的贯彻,更多的与企业管理的规范化和团队业务智慧有关,而远非单纯的技术问题,也不能指望仅靠引入一套软件系统就能解决。目前,CRM项目实施的风险也主要来自这里。我最近就见到不少实施案例,由于过于追求快速实施和“一步到位”,没有实际分析业务需求,昂贵的软硬件配置换来的只是复杂抽象的应用和最终使用者的抱怨。
很多人把系统实施比作量体裁衣。但针对CRM项目而言,这个比喻恐怕仍失之仓促,并可能给我们带来危险的技术幻觉。无论实施多么顺利,实施者技巧的高明也无法替代企业自身学习、适应的过程。而这一过程注定是缓慢的、反复的,随着企业对CRM认识的逐步深入,不少业务需求会逐渐萌生或者会发生戏剧性的变化。这一切,都决定了CRM项目的实施难以一蹴而就。因此,一种渐进式的态度在这里尤为重要。理想的CRM项目实施,应该是一个不断尝试、调整的自适应过程。与“为CRM而CRM”的盲目不同,我更愿意倡导从解决特定问题入手的方法论,即将整个项目的实施分为多个步骤,每步以解决特定业务中(比如销售、客户服务)实际存在的紧迫问题为里程碑。与一步到位地构建大而全的系统相比,这样的方法论显然更稳健、更理智。
如上所言,CRM项目首先并非技术问题。但这并不意味着技术平台的选取对项目没有重要意义。
Java平台的优势 Java从1995年开始就受到IT界的高度重视。不论是企业级应用、Internet、多媒体领域,还是如今的手机通信领域对它都是宠爱有加。这些跟Java如下特性分不开:
◆ 操作系统无关性
这能是Java平台著名的特性和广告语。相同的应用无需重新编译,只要简单配置(幸运时甚至不必配置),就能在多种不同的操作系统上运行。
如果手边有一套Java版CRM系统,无论是一位希望只使用办公室里那台空闲PC的初次尝试者,还是一位Linux专家,或是坐拥多台高端Sun服务器的企业CIO,都可以方便地使用,并获得各自的体验。
◆ 厂商无关性
Java平台的企业应用具有成熟的开放标准,亦即Sun提出的J2EE框架。对于该框架的各个层面,比如数据库管理系统、应用服务器、数据高速缓存、消息中间件、Web服务器等,我们都能从大量遵从标准的产品中做出最优的选择。尤其由于标准的规范性,使得厂商、产品的选择对于系统核心代码而言具有透明性。甚至,升级或更换特定系统软件(比如将Web服务器从Tomcat迁移到Resin)也不要求核心应用模块发生改动。
◆ 丰富的既成产品
开发还是购买,这是搭建系统时的一项重要考虑。使用现成产品能够大大缩短系统实施周期,这个因素对于决策者的吸引力是不言而喻的。在不少特定的业务领域,比如工作流、企业应用集成(EAI)等中,都具有多种适合Java平台的现成软件产品。在这些产品中,更有许多开放源代码软件(OSS)能够进一步降低整体开发费用,并可以通过略加修改而熨贴地适合企业的特殊需求。
Java为CRM带来优势 显然,与.Net平台的高度整合和易用性、LAMP的低总体拥有成本(TCO)相比,Java平台的根本特点在于它的自由度,或者说在于它提供的多种选择。但是,如果这种自由度只是一个抽象的可能性,我们为它付出的种种代价,比如牺牲对于维护人员至关重要的易用性,就未免可疑了。那么,Java平台的“自由度”将为CRM系统的搭建带来哪些优势呢?
首先,一个基于Java平台的CRM系统能够根据项目预算,形成从低端到高端的多种方案选择。
如果预算足够,我们完全可以选用高端服务器、操作系统,并采用顶级数据库管理系统,再配以数据高速缓存,以满足大规模CRM应用要求的高并发访问和海量数据指标。尤其是得益于J2EE框架优良的可延展性,我们还能在系统的各层次(比如数据库服务器、应用服务器)上配置服务器集群和热备份,实现系统的高可用性(HA)。对于各种系统中间件和特定业务部件,我们也能选配业界领先的产品。
针对同一系统(准确地说是同一套系统代码),我们也能构成价格堪与LAMP媲美的低廉方案:在软件系统的各层次都能找到非常廉价、甚至免费的产品。比如说,用MySQL作为数据库管理系统,JBoss作为应用服务器,Tomcat/Apache作为Web容器……上述开放源码产品经过大量使用者的评估和验证,完全能够胜任一般企业的中小规模应用要求。
其次,Java平台更容易满足CRM系统对应用集成的要求。
正如前面介绍的那样,一个完整的CRM系统要集成大量不同业务的企业应用,比如与财会系统、产品目录/库存管理系统、企业信息系统或电话、电邮等通信系统集成,往往既涉及到数据的共享,也包括交互和协作。
Java平台的操作系统和厂商无关性,以及它对Web Service的强大支持,都提供了应用集成的多种可能性。Sun提出的JCA构架提供了应用集成的公共标准。高端项目尤其可以选用Java平台上现有的多种成熟EAI产品(比如WebMethods)。
最后,也是最根本的,在Java平台上搭建CRM系统更符合本文谈到的“渐进式”CRM项目实施原则。
正如上文所述,CRM项目的含义要远远大于单纯的软件系统。与对TCO、系统整合度的关注相比,决策者应该对CRM项目本身的成败更感兴趣,而CRM项目的本质也决定了它的实施是一个渐进的、需要反复调整的过程。无论初期投入多高,一个成熟的CRM系统不可能一蹴而就,而是要经过多期实施、渐入佳境。如果认同这一点,则Java平台的“自由度”就不单单体现在它能满足不同预算规模的方案,更重要的是,它也能保证企业以一种多步骤的方式完成CRM项目的实施。
举一个应用实例:一个中小型企业在项目初期,完全可以就用上“办公室里那台空闲的PC”,利用现成的CRM软件产品,针对企业的某一项急需调整的业务(比如订单处理、售后支持或是销售机会管理)开始CRM实践。当“面向客户”的态度逐步在企业中开始形成,企业的客户库趋于完整,企业的部分业务也由于CRM的引入而提