UML软件工程组织

Java平台上的CRM系统
作者:佚名 | 出处:不详 |

概要

本文介绍了当前CRM系统的各种应用模式,指出了Java平台在实现CRM系统中具备的优势,并提出了“渐进式”实现CRM项目的原则。

展示窗:CRM系统的多种应用模式

无疑,作为一篇介绍“CRM系统”的文章的作者,我有责任展示这个缩略语所蕴藏的全部内涵。但由于各厂商的界定颇有参差,给出完整而普适的CRM系统的定义确实相当困难。我们不妨从列举目前流行的多种CRM系统的应用模式入手,权充一下好奇而谨慎的顾客,在这个领域作一次window shopping。

根据业务侧重点,我们大致可以划分出销售型、市场营销型、客户服务型及运营型四种常见的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系统要集成大量不同业务的企业应用。比如与财会系统、产品目录/库存管理系统、企业信息系统或电话、电邮等通信系统的集成,往往既涉及到数据的共享,也包括交互和协作。

Java平台的操作系统和厂商无关性,以及它对Web Service的强大支持,都提供了应用集成的多种可能性。Sun提出的JCA构架提供了应用集成的公共标准。高端项目尤其可以选用Java平台上现有的多种成熟EAI产品(比如WebMethods)。

最后,也是最根本的,在Java平台上搭建CRM系统更符合本文第二部分谈到的“渐进式”CRM项目实施原则。

正如上文所述,CRM项目的含义要远远大于单纯的软件系统。与对TCO、系统整合度的关注相比,决策者应该对CRM项目本身的成败更感兴趣。而CRM项目的本质也决定了,它的实施是一个渐进的、需要反复调整的过程。无论初期投入多高,一个成熟的CRM系统不可能一蹴而就,而是肯定要经过多期实施、渐入佳境。如果认同这一点,则Java平台的“自由度”就不单单体现在它能满足不同预算规模的方案,更重要的是,它也能保证企业以一种多步骤的方式完成CRM项目的实施。

举一个应用场景:一个中小型企业在项目初期,完全可以就用上“办公室里那台空闲的PC”,利用现成的CRM软件产品,针对企业的某一项急需调整的业务(比如订单处理、售后支持或是销售机会管理)开始CRM实践;当“面向客户”的态度逐步在企业中开始形成,企业的客户库趋于完整,企业的部分业务也由于CRM的引入而提高效益的时候,再逐步扩展CRM系统涉及的业务范围,扩充软硬件配置,并依据现有的客户库和应用,进一步定制适合本企业的CRM应用,引入合理的业务规则和流程;直至CRM理念深入整个企业,CRM系统的应用也自然达到相当充分的程度,此时再对CRM系统和企业制度进行比照调整,并按需要完成数据分析模块。这样实施的CRM项目,每阶段收益明显,风险降至最低,并且CRM能够真正成为企业运营的核心部分。

而在上述实施过程中,Java平台能确保系统在各步骤的软硬件调整下的一致性。当系统最终稳定,效用充分发挥时,我们也能够依据可能的最大负载做配置补充和性能调校,确保高可用性。

结束语

正如CRM不是单纯的软件系统一样,CRM项目的实施也不是单纯的软件安装或系统集成工作。当前,作为企业应用的热点,CRM获得了企业决策者们的重视和IT厂商们的青睐。但美好的热情转化为扎实的成果——安德烈·纪德说过,人们怀着美好的感情制造低劣的作品——需要成熟的方法论和持久的耐心。本文愿意为增进后面的两个方面(而不是纪德谈的那些)做出绵薄的贡献。


版权所有:UML软件工程组织