预计阅读本页时间:-
第六章 如何建立一家更好的书店
我们曾经开玩笑说,理想的亚马逊网站并不需要搜索栏、导航链接或者列出你可能会买的那些东西。它只需展示一本书的大幅照片——那就是你想购买的下一本书。
? ——格雷·格林登(前亚马逊程序员)
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
从在西雅图落脚到成立一家公司,杰夫·贝佐斯和他寥寥几人的小团队只花了一年时间。起初,他不得不弄几台计算机来运营自己的网站,并存储搜集到的有关书籍的所有数据。他购买了两三台Sun微系统公司的工作站。这些计算机个头很小,功能却很强大,工程师通常利用它们来设计产品或运行计算机网络。
显而易见,亚马逊当时最大的支出是购买或开发软件。对于新成立的公司,高管们通常会犯下这样的错误——认为公司外部的人是无法像自己的程序员那样开发软件的。所以原本是可以很容易从供应商那里买到的软件,他们却浪费时间和金钱去自己开发,而且那些软件已经经过了漏洞测试并进行了完善。
但是,贝佐斯知道自己在做什么。他对编程的精通,很可能和他雇来的程序员不相上下。他谨慎地作出决定:哪些需要购买,哪些自己开发。为了保证公司的基本运营并管理所有数据,他和他的程序员们选择了甲骨文(Oracle)公司的数据库管理系统。这个系统虽然昂贵,但它经过充分测试,性能可靠,而且被许多大公司用来存储和管理自己的数据。事实上,它强大的功能已经超出这家小公司的需求。贝佐斯对未来充满信心,而Oracle的软件会让亚马逊在发展壮大的过程中无须更换系统。戴维斯和卡凡在开发自己的软件时同样慎重,始终牢记这一点。他们不想在公司规模扩大时更换系统——这是新成立公司所面临的另一个普遍问题。佩里·哈特曼说:“杰夫非常关心扩大公司规模。”
但Oracle只是一个通用型系统。亚马逊的软件工程师不得不在它的基础之上开发公司真正需要的软件。在那个过程当中,程序员们犯了很多错误。卡凡主要负责用户可以看到和使用的网站软件。戴维斯则集中精力开发后台系统——完成交易和运营公司就靠它们。戴维斯和卡凡都不是零售数据库系统领域的专家。戴维斯后来说,“我们当初的一些猜测很准确,也有很多不离谱。”
不过整个团队仍然不得不自主开发许多软件。缘于高管的狂妄自大?恐怕不是。这支团队正在建立一家不寻常的、前所未有的公司。既然他们必须花时间来开发自己的程序,他们就采用了最省钱的方式。
为了压缩成本,他们在很大程度上依赖于开源软件、像UNIX操作系统这样的免费软件以及C和Perl编程语言,所有这些都可以在贝佐斯购买的Sun工作站上运行。开源软件是由程序爱好者及大学教授和学生开发的,广为流传,任何人都可以进行改进或增补。事实上,开源战略在其他许多互联网公司中非常盛行,其中就包括谷歌。尽管亚马逊的程序员在零售、后台办公或以客户为中心的软件等领域并没有什么经验,但他们的努力让贝佐斯给出的股票期权物有所值。他们熟悉开源程序,由此可以开发出公司所需的主要软件。戴维斯和卡凡使用免费的编程语言,在免费的UNIX操作系统之上开发出了软件。
除了用以管理数据库程序的Oracle系统外,他们还必须创建自己的数据库,来保存运营公司所需的所有信息。于是,他们在开源程序DBM(数据库管理器)的基础上创建了一个。这个程序是由AT&T公司开发的,加州大学伯克利分校和其他机构后来进行了改进。这项工作要求他们修改程序,使它能在UNIX操作系统上运行。亚马逊在1995年成立之时,它的书籍数据库涵盖了100多万条书名,这需要2G的内存。他们将1 000种最热门的书放入容量为25M的计算机内存系统中,通过DBM程序能够快速响应请求。
创建了一个包括上百万册图书的数据库后,杰夫·贝佐斯开始号称亚马逊是“地球上最大的书店”。这个市场营销手法不错,但真实性存疑。第一,贝佐斯不想让他的公司有任何库存——如果有的话,也要在他手里飞快周转,最好是在一天内进出。他实际拥有的是一个包含很多书名和信息的巨大数据库。他计划只有在收到客户订单以后,才给出版商或者经销商下订单(随着亚马逊逐渐壮大,他后来不得不放弃了这一目标)。他的信念是,那样做亚马逊就能够比其他实体书店和图书邮购公司以更低的人力成本运行。号称上百万种图书属于夸大其词的另外一个原因是,即使是经销商,库存图书也才只有30万种。贝佐斯耍的另外一个花招是,尽管他号称亚马逊将拥有150万种书,实际上他的数据库里只有110万种书的名字。一个了解内情的人后来告诉作家罗伯特·斯佩克特,亚马逊之所以报了一个较低的数字,是因为贝佐斯想过一段时间再号称拥有150万种书,以给人一种亚马逊的库存在增长的感觉。
而根据亚马逊的实际图书存量(任何时间),它的竞争对手可以轻而易举地将其形容为地球上最小的书店之一。事实上,任何实体书店都可以号称他们能够接触到和亚马逊一样多的书目,因为那些书店也可以像亚马逊一样从经销商或出版商那里订购所有图书。区别在于,亚马逊能够在其以客户为基础的数据库里更快地找到书目,更快完成下单流程,而实体书店依靠工作人员是没有电脑快的。
亚马逊的程序员还需要开发一个高度客户化的库存跟踪系统,因为公司还需要对从出版商或经销商运到亚马逊仓库再运到客户手里的图书进行跟踪。因为图书邮购公司确实将书存在库里,通常情况下他们对库存只有两种分类:现货或者延期交货。贝佐斯则想要更准确些,所以戴维斯不得不特意为亚马逊开发一个库存跟踪系统。如果亚马逊的仓库里已经有某本书,那本书就列为一天内送达。如果某个经销商有货,亚马逊就承诺那本书两三天内送达(如果附近的英格拉姆有货,则该书通常可以在一天内送出)。如果需要从出版商处订书,运到客户那里有可能需要一两个星期。如果出版商和经销商都没货了,就要写成“4~6星期内到货或者永远不可能”。绝版书一般放在“或者永远不可能”类别里。(贝佐斯一直在尽力搜集绝版书,有时候会设法从出版商或其他书店里找到,这一功能让刚刚开张的亚马逊名声大震,人们认为那是一个能找到任何书的了不起的地方。)在预计一本书什么时候送到时,亚马逊一贯采用的是保守策略——如果运到时间比客户预期的早——那样就会给客户带来惊喜而不是失望。
然而,有些任务还不得不靠手工完成,而且不是一般的乏味冗长。那就意味着贝佐斯这个由几个程序员组成的小团队有大量的工作要做。以找到一本书为例,亚马逊应用的书名数据库叫作“在印图书”,是由R·R·鲍克制作的,这个数据库按照国际标准书号将所有在印图书列出来。R·R·鲍克将这个清单——一共150万个书名——存在光盘里提供给出版商、书店和图书馆。因为亚马逊不具有大公司那样巨大而昂贵的、能将这些数据快速存储的计算机,所以将这个清单弄到亚马逊的计算机里,有点儿像用茶匙搬运一大堆沙子。
亚马逊程序员一次只能转换600个书名,那就意味着有人不得不复制、粘贴2 500次才能处理完一张光盘。R·R·鲍克每周送出一张更新的盘,转换那张盘也要耗时将近一整天。
然而,图书数据库也不是一直可靠的。对于一些书有货还是没货,不同的数据库经常给出不同的数据。所以亚马逊团队进行了一次简单的测试来决定哪个更可靠。他们从不同的数据库订书,看哪些数据库准确。他们发现当经销商或出版商说有些书没现货时,实际上这些书已经绝版了。但是,当他们承认一本书绝版时,那通常是事实。
接下来的问题是如何从顾客那里接受订单以及收钱。对于互联网来说,这是个新问题,才刚刚向商业领域开放不久。亚马逊人不知道顾客通过互联网下单后,是更愿意通过互联网给出信用卡账号,还是更愿意通过邮件或直接给公司打电话来告知,或者就是简单地寄张支票。黑客侵入互联网公司文件夹,偷走信用卡信息是人尽皆知的事。最显而易见的解决方案就是每一种情况都试试。
首先,亚马逊团队认为邮件是最有可能的,因为电子邮件用户超出互联网用户10倍。所以他们开发了一套电子邮件订购系统:顾客可以在网上搜一本书,但其他购书步骤可以通过邮件来处理。他们假设人们对这种做法感觉更舒服:用邮件下单,收到一封邮件告知多久能运出,然后通过邮件发出信用卡账号。
亚马逊生意开张时,互联网爆炸式增长正逢其时,以至于电子邮件系统已经用不到了,亚马逊主要依靠来自网页的直接订单。大约一半客户打电话告知信用卡账号,有些客户则以支票结账,但让亚马逊团队大为震惊的是,相当数量的客户愿意通过网页直接交易。
当然,这意味着保证信用卡账号的安全变得无比重要。戴维斯开发了一个他戏称为“CC汽车旅馆”的系统,那是《黑旗蟑螂汽车旅馆》里的一出戏,在那里,“蟑螂可以登记入住,但是,它们不能登记离开”。信用卡账号可以输入系统,但黑客们无法把它们弄出系统。其实办法很简单:就是永远不要把信用卡信息输入联网的计算机。卡号存入软盘里,然后插入进行交易处理的计算机。(在计算机系统不是很稳定的早期阶段,公司把这个叫作“人工后备网”,是一种备份,在系统无法正常运行时使用。)“CC汽车旅馆”计算机通过电话调制解调器只连接到信用卡公司和经销商。同时用作向客户收款,以及向经销商订书。为了确保有书,订单先下,只有在有书的情况下,信用卡里的钱才被划走。
尽管简单到有些可笑,这个初级系统还是有效的,而且非常明显,不过当订单达到相当程度时,它必须被替换掉。戴维斯后来回忆说,他为这个系统经常做噩梦。每天晚上那些数据都应该备份到另外一台电脑上,但是,这个团队有时候会忘了。有时候他们还会意外丢失或者重写了含有两百多个交易信息的文档。那就需要重新回到“CC汽车旅馆”系统,打印出一个信用卡号码单子,然后给信用卡公司打电话,一个号码一个号码地核对,以确定交易成功了。
另外一些时候,他们弄丢了写有信用卡账号的文档,不得不让信用卡公司把交易单子传真回来,传真过来的单子上只有信用卡的后四位数字,亚马逊的工作人员不得不坐下来,拿着传真单和他们的交易单进行对照。“在数据保持方面,我们没有做到尽职尽责。”戴维斯说。
但是,这个购物网站还是具备一些只有少数公司才能想到的功能,比如那些让客户们很有信心使用这个网站的功能。举例说,如果就是为了开始找书或者把它们放到购物篮里,人们甚至不必在网上注册。“我们先让人们熟悉订货过程,然后再让他们建立一个账户,对于其他早期的电子商务网站来说,建立账户是一块真正的绊脚石。”卡凡说。
为了打消客户对于将信用卡信息留在网上的担心,贝佐斯的命令是让订货系统“温柔”(卡凡的话)些。客户可以选择只留下信用卡账号的最后几位,当他们准备好付钱时,再打电话给亚马逊网站告知完整的号码。同时,亚马逊还让客户明白,不到最后一步,他们是不会被收钱的,消除了他们会不小心就买了本书的担心。“在每一步都让客户放心,那些步骤都是可以逆转退回的,直到他们准备好买这些东西,”卡凡说,“我记得放了一些东西在购物篮子的按钮旁边,我放了这样一条‘你随后还可以把它拿出来’。”
这都是贝佐斯务必要把这个网站做到最好的工作的一部分,一种程序员们严肃对待的哲学。对很多人来说,这个网站是全新的,让人迷惑不解的,而且还不止是有点儿吓人,在网上建立信任在当时(以及现在)是被高度重视的。”亚马逊的系统帮助贝佐斯实现了为客户营造一种美好体验的目标。更主要的是,他知道这个方法对于公司的成功来说是至关重要的。
事实上,戴维斯和卡凡不仅能够使亚马逊网站让人信任以及容易使用,而且他们把该网站做得比线下购物还用途广大。任何网站都应该利用计算机和互联网技术做一些离线做不了的事情。但只有极少数早期的互联网公司知道如何去做。贝佐斯的观点是,如果客户不用上网就获得同样的服务,他们为什么要换到这个看起来让人迷惑甚至有点儿害怕的新媒介呢?“互联网是一种处于婴儿期的技术,”贝佐斯当时说,“如果你想在中短期内成功,你只能做那些给顾客提供超强价值的事情,而按照传统方式做事是不可能提供这种价值的。这就意味着,当下你只应该在网上做那些用其他方式不可能完成的事情。”
通过使亚马逊的数据库易于找到图书和作者信息,亚马逊程序员们发现了一种方法来提供线下不能做的一些事情。卡凡发挥了他开发超文本的才华,也就是把一条数据和另外一条数据链接起来。他和戴维斯把亚马逊信息库里所有的作者信息都找出来,通过链接交互起来。客户们可以在他们感兴趣的所有主题和作者中进行搜索。如果发现一本喜欢的书,他们可以点击作者名字,从而找到他的所有作品。还可以点击一个主题分类,找到这个主题下的其他书。谁需要杜威十进制系统?“我一直认为作者信息的超文本链接是(亚马逊早期成功)的关键,”卡凡说,“你可以在现有的书海中畅游。”
除了找出网站内部系统的漏洞,亚马逊程序员还不得不确保这个网站适用于不同风格的网络浏览器。通过把互联网变成简单的点击式导航系统,图片浏览器使互联网流行起来。在互联网时代早期,没有人能确定哪个网络浏览器会最受欢迎。
为了充分利用蒂姆·伯纳斯·李为欧洲核子研究组织(位于日内瓦郊区)开发的万维网通信标准,世界各地的大学生都在开发图片浏览器。20世纪90年代一些最早的图片浏览器早已经被遗忘或忽略了。比如,在赫尔辛基工业大学开发的Erwise,在加利福尼亚大学伯克利分校开发的ViolaWWW,在堪萨斯大学开发的Lynx。
但真正使人们走入互联网的是马赛克浏览器,它是在伊利诺伊大学厄巴纳–香槟分校国家超级计算应用中心开发的,也是第一个成功的商业浏览器(不过是免费提供的)网景浏览器的基础。网景浏览器由曾经开发过马赛克浏览器的伊利诺伊大学毕业生在网景公司开发。1995年,网景也遇到了来自微软的互联网浏览器的竞争,后来微软占领了大部分市场。
1995年春天,亚马逊有了自己的网站。但该网站还没有做完,不过运转良好,足以让几百个朋友试试——当然,他们需要发誓保密。在保证不向任何人泄露这个项目后,这些二次测试者开始浏览书籍、假装购买。
亚马逊程序员通过测试发现的一个问题是,他们没有办法追踪每一位顾客的行动。如果有人买了本书后,又开始浏览其他物品,亚马逊计算机识别不出这两个行为是同一个人做出的。这是一个直到发现才意识到存在的问题。他们不得不建立一个系统,将某一个特殊用户登录网站后的所有行为储存在一个文档中,当这个用户又回来时,再把那个数据调出来。
这个网站的一些重要特色正好反映了资源的短缺。在早期,程序员们只使用少数几张图片,主要因为没有太多图片可以用。他们不是平面设计师,很多出版商又不能或不愿意向他们提供图像。但最后证明那是客户喜欢的一个特色。那时候网络连接特别慢,需要花很长时间才能完成图片下载。另外,早期的一些网络浏览器只能显示文本,无法显示图片,所以卡凡和戴维斯确保在不需要图像的前提下提供所有必要的信息。试试从今天的网络浏览器上关闭一些图片,你就会发现有多少重要信息和链接随之消失,大多数网站都是如此。
同时,很多早期互联网公司没有领会这层意思。他们在网站上尽可能多地放图片(很多网站现在还这么干),对此,他们有种错误的理解,好像图片能让他们的网站看起来更专业,或是使他们的广告更引人注目。实际情况则是,那些网站只是变得更烦人、更让人迷惑不解。事实上,谷歌后来也采用了同样的策略,只是展示了一张空旷的主页,比那些晃来晃去的图像和声音效果不知道强了多少倍,有些声音听起来就像深夜电视节目里的男高音吆喝着19.95美元买一件东西,还只能在电视上买。?
贝佐斯不得不随机应变来应付一些意料不到的问题,而且很是迫不及待,有时候还充满了恶作剧式的快乐。举例说,他想测试他的订购系统,以确保能够正常工作并找出其中的漏洞,那就意味着每次订一本书,但经销商要求每次至少订10本书。在后来的一次讲话中,贝佐斯说他曾经向经销商提起过,如果能够只订一本书,他愿意多付些钱,但他们拒绝打破惯例。然而,贝佐斯后来发现,如果一些特殊订单中的某些书没货,经销商们依旧会把其他有货的送到,而且只收送到的那些书的费用。不久他发现了一本关于地衣的冷门图书,两个经销商本应该都有这本书,但实际上他们的库存中都没有。为了进行这次测试,他开始下单,1本他想要的书,加上9本关于地衣的书。“他们会把我们想要的那本书送到,然后非常真诚地为没能交付另外9本关于地衣的书而道歉。”他说,“对于检测我们的系统来说,一切进行得很不错。从此以后,我就一直跟这些公司的人说这件事,开他们的玩笑。实际上他们也觉得很滑稽。”
在很多方面,亚马逊的早期设计就是试验、错误、正确的猜测、机会还有一些聪明的即兴发挥的结合体。团队对于重要的事情铭记在心:把顾客需求放在第一位,而不是尽可能从他们虚拟的钱包中多弄出一美元。关注顾客喜欢什么和厌恶什么。那个办法给了亚马逊一个良好的开端——而且在公司的未来日子里持续发挥了指导作用。