出家如初,成佛有余

互联网产品服务品质杂思

Posted in Uncategorized by chuanliang on 2010/07/31

   前两天接到了蜘蛛网客服的电话,说我年初通过他们网站订阅中国经营报时候,中国经营报赠送了几本书。这段时间中国经营报那边盘点时候发现给我的赠书一直没有送出,中国经营报那边向蜘蛛网询问情况。客服说蜘蛛网这边一直也没有收到我的投诉,因此直到中国经营报问起他们最近才发现此事。

    年初订阅杂志时候,平常也没时间去邮局,因此就直接在蜘蛛网上订了常看的几本杂志和报纸,其中就包括中国经营报。中国经营报赠送了洗衣液和几本图书。洗衣液几周以后很快就送到了,而图书过了1个月还没到,给蜘蛛网发过3次邮件投诉。第1次的回复说是已经反映到相关部门了。过了一个多月赠书还是没有送到,再发了两次邮件投诉后都没人搭理了,打了几次电话都没打通。由于对赠送的几本图书并不是很感兴趣,因此也懒得再催了。通过此事体验了一下蜘蛛网极差的服务,打算以后不再使用蜘蛛网。

    其实细想一下,也不能完全说是蜘蛛网的问题,大致的原因应该如下:

   根据中国经营报在其网站及报纸上的广告,订报送洗衣液和赠书的活动应该是中国经营报自己举办的。蜘蛛网只是类似于邮局的一个订阅渠道而已。蜘蛛网应该把我的订单传送给中国经营报了,不然中国经营报就不会每周送报,也不会安排人赠送洗衣液。预计中国经营报订报送赠品活动也是找不同的合作伙伴来弄的。例如洗衣液是开米出的,而图书又是其他合作商来弄的。因此中国经营报收到订单后,也把订单同步给了提供洗衣液的合作伙伴,但在处理过程中,把赠书的事情拉下了。

    当然并不是说蜘蛛网没有责任,其实在这过程中,蜘蛛网有很多可以改进的。而蜘蛛网与线下合作伙伴合作过程中所面临的服务品质问题也是众多电子商务提供商所面临,关于服务品质一些体会:

  1、多种客服渠道的服务体系一致性的问题:蜘蛛网的服务渠道应该主要是电话,像我通过邮件的投诉应该并没有整合到其整个呼叫中心体系中去,因此出现了我没投诉过的事情。这与电子商务企业的客户服务系统建设-再谈京东商城购物所感 中提到的类似。呼叫中心!=电话服务中心。如果不能够将同一客户通过传真、Email、IVR、电话、短信、电话、IM、社区、论坛等各种渠道的投诉申告等整合到一起,各种服务渠道的服务品质不能够保证一致性,则所谓的“以客户为中心”只能是空谈。其实并不需要呼叫中心建设时候在技术上必须支持所谓的多媒体呼叫中心、第三代、第四代呼叫中心等等。问题的关键还是在意识和管理体系上。

  2、服务边界问题:对蜘蛛网而言,其只要引导客户生成订阅订单并成功支付后,蜘蛛网将订阅订单成功发送给合伙伙伴,则在其平台的服务就结束了,后续的服务品质的保证蜘蛛网就无能为力了。这也是目前大部分电子商务网站的模式。但对于客户而言,并不关心后续服务是谁提供的,他只关心在单一的接触点,服务都能够得到保障。对于蜘蛛网这些前端提供服务的电子商务提供商而言,其服务的边界不单纯只是自己,还包括相关的合作伙伴。这正如电子商务平台之平台服务杂思 中谈到的:“在面临日益剧烈的竞争下,平台服务对于合作商户的核心价值在于:通过平台来帮助其提高竞争力。这种竞争力包括服务能力、盈利能力、营销能力、服务的持久性等。”

    这也是为何沃尔玛、麦当劳、Dell这些跨国公司其实将采购价格压得很低,但一堆合作厂商还是愿意挤破头去竞争合作伙伴的名额,除了品牌、销量因素外,还有重要的一点是:沃尔玛这些厂商会帮助合作伙伴提高标准化管理能力、服务的品质和能力。

   3、服务无小事:自己作为服务提供商服务时候,总觉得大部分客户的投诉都是鸡毛蒜皮的问题,并不影响产品使用,觉得主要是客户素质太差。当自己作为客户使用蜘蛛网这样的服务时候,才发现:我们作为客户在使用别的服务提供商的产品时候总是比我们自己作为服务提供商时候的标准更高、更没有耐心。可能只是一件鸡毛蒜皮的事情就会导致我们很不爽,从此不再使用此服务。在做产品时候,“同理心”是一种很好的手段,但“同理心”并不等于实际用户的心理,只是我们的揣测。作为客户和作为提供商时候,我们的标准体系并不一样。

    因此应当善待每一次的客户投诉及不爽,每一次的投诉都是我们改进产品最好的机会。对于客户投诉不妨想得更加严重一些。

  4、服务品质也是一种品牌:最为典型的例子要数海尔。海尔的产品可以概括为:一流的服务、二流的产品(耗电、价格高、质量一般),但并不妨碍海尔产品的口碑。个人认为海尔的品牌就是其服务品质所造就的。对于互联网服务提供商同样如此,服务也是一种核心竞争力,尤其是对于那些竞争激烈的产品。在选择产品以及合作伙伴时候,如果所提供的产品的服务品质不能保证,再赚钱的产品也会成为品牌的杀手,这时候要勇敢学会放弃。在做市场营销、网络营销时候也是如此。

 

Advertisements

复杂事件处理(Complex Event Processing)入门1

Posted in Uncategorized by chuanliang on 2010/07/25

    一个新产品需要重点考虑业务风险控制。关于风险控制系统整体的技术方案可以参考 支付系统风控系统建设思考 。此方案尽管能够满足业务需求,但对于海量交易数据分析、风险事件的实时处理、大量的风险规则处理上,在实时性、性能、架构的可扩展性上都不是很理想,有必要重新从架构上考虑一下实现方案。

   一般而言,风险控制系统标准的软件架构如下:

CEP,复杂事件处理,Complex Event Processing,Event Stream Processing,ESP,风险控制

   

1、风控系统实现的几种方案

   1)、数据库方案:将风险规则、交易数据等都采用关系数据库存放。正如 支付系统风控系统建设思考 所提到的方案,交易库和风险库一般分别部署在不同的服务器上,在事件触发上可以采用数据库触发器、消息队列事件等方案。此种方案技术实现相对简单,但在进行海量交易数据查询以及大量风险规则处理时候,数据库系统查询性能及扩展性成为一个较大的瓶颈。很难满足风险事件实时分析的要求。

   2)、内存数据库方案:由于对海量交易数据的查询、分析极其消耗数据库资源,可以采用内存数据库方案来替代关系数据库,保证风险事件实时处理的性能。 但目前开源的内存数据中VoltDB、H2、MonetDB、FastDB、Berkeley DB、SQLite等在大规模的业务场合应用的成熟度尚待考察,而Oracle TimesTen、MCObject eXtremeDB、Altibase价格太高。

   3)、分布式缓存方案:采用Memcached等NOSQL的分布式缓存来缓存交易数据、风险规则等,但由于NOSQL解决方案并不擅长数据间的关系逻辑处理,需要在程序中大量维护业务处理逻辑,远不如关系数据库或内存数据库方案方便。

  以上方案,都可以通过规则引擎(例如drools)来完成风险规则的管理和维护,避免了风险规则维护的繁琐及规则间复杂关系处理。

 

2、Complex Event Processing (复杂事件处理)

    Complex Event Processing (复杂事件处理)是一种新兴的基于事件流的技术,它将系统数据看作不同类型的事件,通过分析事件间的关系,建立不同的事件关系序列库,利用过滤、关联、聚合等技术,最终由简单事件产生高级事件或商业流程。CEP适合的场景包括实时风险管理、实时交易分析、网络诈欺、网络攻击、市场趋势分析等等。

CEP,复杂事件处理,Complex Event Processing,Event Stream Processing,ESP,风险控制

    CEP的几大特点:

  • 基于数据流
  • 时间序列
  • 实时
  • 复杂

CEP,复杂事件处理,Complex Event Processing,Event Stream Processing,ESP,风险控制

                   数据库方案与CEP方案 对比(摘自Sybase CEP方案)

   

3、开源项目

Esper – Complex Event Processing

    http://esper.codehaus.org/

JBoss – Drools Fusion

    http://www.jboss.org/drools/drools-fusion.html

Open ESB IEP SE

    http://wiki.open-esb.java.net/Wiki.jsp?page=IEPSE

ActiveInsight

    http://www.activeinsight.net/

    其他产品或开源项目,可以参考:Complex Event Processing Vendors

  其中Esper和Drools Fusion很值得考虑,后续作为重点研究对象。

 

4、参考资料

    深入浅出复合事件处理(CEP)

    轻松理解复合事件处理

    Esper:CEP Engine

    Complex Event Processing:An attempt at clarity on an often confusing topic

    Sybase CEP:新颖的数据流分析平台

 

互联网产品重构

Posted in Uncategorized by chuanliang on 2010/07/18

1、为什么要进行产品重构

    旧系统人员流失,系统的业务规则、原始需求谁都不清楚,需求文档、使用文档、架构文档极其缺乏,成为一个无底洞,可维护性很差。  

    旧系统越来越复杂,潜规则太多,原本修改一个小需求,一不小心搞得上线后影响一堆用户

    旧系统的业务架构、技术架构无法满足新的业务模式需要

    旧系统性能无法满足公司业务高速发展的需要

    旧系统的产品生命周期已经到头,需要延长期生命周期

    等等

2、产品重构  VS.  重做新产品

    对现有产品进行重构还是重新做一套全新的系统并没有标准答案。技术人员们都倾向于重做新系统,并都倾向于高估自身的管理能力、架构设计能力,大家都会承诺完美的架构、完美的产品规划。但如果没解决根本性的管理问题,重构或是重做宿命都是一样的。这些管理问题包括产品规划能力、业务架构能力、项目管理能力、架构管理能力、架构设计能力等等。   

   在管理能力尚未改善的情况下,怎样保证重做新系统时候不落入旧系统“新做系统,承诺完美架构->管理失衡,系统维护陷入混乱->再重做新系统”同样的命运。好的架构是管理出来的,不是设计出来的。

  产品重构第一困难的是反向工程过程阶段,必须搞清楚现有系统的遗产状况。对于一个在线运营的系统,不管是重构还是重做都必须经历此过程

  产品重构第二困难的是旧系统迁移到重构系统的过程。怎样做到不影响现有客户使用的情况下完成灰度切换,这是最大的挑战。不管是重构或是重做都必须经历此过程

 

3、关于产品重构的思考

Architecture Reconstruction,architecture recovery,产品重构,架构重构,反向工程,正向工程

4、参考资料

  The Product Re Architecture

  利用 RUP 对遗留系统进行逆向工程 

  软件架构的艺术

 

关于团队成员利益选择的思考

Posted in Uncategorized by chuanliang on 2010/07/11

    公司组织机构调整,团队职能重新分工,团队核心骨干员工成为各部门竞相游说的焦点,大家通过薪酬、绩效、职位提升等来诱惑和吸引这些关键员工。团队中一个核心骨干员工在摇摆中接受了其他团队难以抗拒的诱惑。在接受前反复征询我的意见。尽管从内心中我希望他留在这个团队,但基于对他未来发展的考虑,只能够建议他:这样重大的抉择,需要自己来做出选择,我和其他人都无法替代你做选择。其实做出选择的原则很简单,只需要基于个人职业发展规划来做选择,看是否符合自己对未来期望,不用考虑太多其他的东西(例如我们的感情、金钱、权力等),有能力钱可以很容易挣回来。一天晚上与他吃饭喝酒,他满眼通红地说:其实在征询意见时候,一直希望我明确说出让他留下,而我一直没有说出这话;他在经济上很需要那笔钱,但觉得愧对于这个团队,在做出选择后,他就得自己无比的势利,打算不干了。劝说了半天,谈到了自己的例子,其实在成长过程中,我们都会犯这样的错误。

    工作10多年也经历了众多公司政治的纷争。其实我自身也曾经经历过类似的利益 VS. 忠诚 痛苦选择经历。那正是2002年底左右,从亚信出来,加入了一家做电信计费的系统集成公司。研究生毕业后第一家电信系统集成公司的副总及原来的一帮团队也在这家公司干,因为BOSS/NGOSS巨大的机会又重新聚到了一起,副总因为为人及能力深得老板的信任。大家对于未来也充满了信心,都希望在时机成熟时候一起创业。副总对我无比的信任,也给我提供了很好的平台,这也是我职业发展生涯中能力成长最快的一段时间,从普通程序员蜕变成架构师、管理者。2003年由于闹非典前前后后的影响,公司接近6、7个月没有项目可做及项目回款,工资也欠了3个月的。而当时我的正处于买房花钱、借钱给家中、结婚的几重压力中,在焦虑中选择了离开,希望能够找一个相对稳定的单位缓解压力。与副总沟通过几次,希望副总能够帮助我选择。副总让我自己做选择,并通过各种途径帮助借钱来解决我最大的问题。最终还是向副总提出离职请求,我看到了他眼中的失望和伤感。我离开几个多月后,副总移民去美国了,其实我一直知道他在美国的女朋友一直在催他去美国,只不过基于对团队成员的信任及承担的责任,他一直没有同意。作为核心团队员工的我离开后,他妥善安置了相关人员就出去了。在出国前的酒桌上,我和他都伤感而哭泣,我为自己的背叛而道歉。他很淡然地说:不存在背叛的问题,忠诚并不是只是愚忠。作为你的领导和朋友,我能够做的就是为你提供好的平台来帮助你成长。正如做BOSS系统必须了解软件需求一样,团队每一个人都有自己的需求,包括成长需求、金钱需求、职位提升需求、成就感等等,如果我作为领导连你们的核心需求都不清楚,那我不可能带好这个团队。在重大事情的抉择上,对你最负责的做法就是尊重你的选择而不能让我的想法干扰你的选择。即使你们基于自己的利益做出了不利于整个团队的选择,只要不是有意伤害其他人的根本利益,那也不存在背叛的问题。如果作为一位领导只是从自己利益出发,而不考虑并满足员工的需求,那我不可能走得如此的远,领导的肚量决定了其高度。

    这么多年,我一直牢记和反省这个曾经犯过的教训,正如《硬球》里面说的:“与带你来的人共舞”。但假如在利益和团队之间员工选择了利益,虽然令人遗憾,但不存在所谓的背叛问题。管理的核心目的之一其实就是要在能力能及范围内合理地满足员工的需求,包括对于成长需求、能力提升、金钱利益、成就感等,如果我们不能提供这些,那应当支持员工的选择。只有真正为员工利益着想,才可能打造一个有战斗力的团队。

    我仍然相信:心有多大事业就有多大,胸怀有多宽事业就有多广。心胸宽则能容,能容则众归,众归则才聚,才聚则事业强。海纳百川,有容乃大,所以领导者成就大事业必须要有容人、容智、容物、容事的肚量。

    周末再把《活法》翻出来看了一遍,通过稻盛和夫自己的经历,让人感到人生中尚有觉得温暖的东西。在职场政治的纷争中,让我还能够坚持信仰善的东西。

 

交易系统“热点账户”处理

Posted in Uncategorized by chuanliang on 2010/07/10

    对于在线交易系统,由于存在大量的并发事务需要处理,数据库成为整个系统最大的性能瓶颈。数据库服务器可以通过“垂直扩展”、“读写分离”、“分库、分表(分片,sharding)、分区,读写分离”(参考Data Access Layer(DAL)方案 )等手段来提升系统并发处理的性能,但相对于诸如大量并发事务更新同一账户余额(所谓的“热点账户”)这样的应用,上述手段仍然没有从根本上解决问题,总结一下对于“热点账户”常用的处理手段。

热点账户,交易系统,乐观锁,乐观离线锁,高性能服务器,sharding