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