【金子凼】eBay旧事,货物类别延伸到第五层(2001)

英文版
2021-08-20, 周五,阴晴
今天和Vicki聊天,看到她分享的长势喜人的茄子和收成很好的各色大西红柿,我以为她出落成一个能干农妇了。一打听才知道她有一个高智商的长工白天打理庄稼,她只负责摘果子,原来是一个坐享其成的农妇。想当年我们在同一个战壕里当码农时,她可没有福气坐享其成。

想起当码农时我跟着Vicki做的第一开发项目:货物类别延伸到第五层(5th Category)。

Jim,Vicki和我的老板,是这个项目的技术开发经理,Meredith是产品经理,Vicki是软件开发领队(也是真正的产品经理),Jeff和我是主要开发队员。

这个项目是在eBay现有的四层货物类别的基础上再延伸出第五层类别,是一个巨大的开发项目,因为货物类别就是eBay货物大系统的经络,至关重要。

至关重要

eBay网上货物的好多可调控的商务逻辑和技术设计都与货物类别息息相关。

2001年eBay的美国官网有十多个大货物类别,包括房产类别(需要ID验证,提供第三方托管escrow)、汽车类别(众多的车型,提供第三方托管)、和古董收藏等,每个大类别下还可有四层细分类别。eBay的主要经济来源是货物上架有关的收费,其中最广泛基本的收费是货物上架费;不同类别的货物可能有不同的上架费,比如汽车类别每辆车的上架费是100美元。

eBay还有一个隐藏的成人货物类别叫“其它一切(Everything Else)”,成年人用户必须登录以后才能搜索这个类别。当年我们戏称此类别为“eBay的黑暗面(eBay‘s Dark Side)。” 今天回想起,我觉得那时成人货物类别的低调处理方式是eBay在细节上致力于成长为一个高科技得体(decent)公司的体现之一。

货物类别还有一个很核心的技术应用,就是SYI(卖你的货物:SellYourItem)系统会根据货物所属的大类别把货物信息分别储存在不同的数据库,而不是同一个数据库。我记得当年储存货物信息的数据库有11个,类别库机0到类别库机9和1个默认库机(CatHost0-CatHost9,1个DefaultCatHost)。这个设计是在2000年之前就完成的。Vicki给我解释过:“11个数据库机不可能同时瘫倒,因此总有数据库可以为买家提供部分类别的货物展示信息,让卖家通过SYI储存部分类别的新货物信息等等。eBay的网络系统也就不会由于数据库问题而全面瘫痪。” 2012年,我到Paypal工作后的第二年,Paypa才开始考虑要把用户数据分散式地储存于多个数据库以避免整个系统瘫痪……足见eBay在数据库设计上的超前十多年的理念。

一个很特殊的项目

Jim,坐在我旁边,在还没有接到这个项目就多次给我提及这个项目的重要性。据Jim说,只有古董收藏大类别很需要第五层货物类别的功能,其它的eBay大类别都不太需要这个功能;而升级货物类别到第五层改动太大,好多人都害怕这个升级会伤经动骨到已经很复杂的eBay大系统,所以很难找到一个合适的产品经理来启动这个项目。

Jim曾带我到一楼见过Meredith,“货物类别延伸到第五层”项目可能的产品经理,一位穿着和谈吐都很随和的留着短发的女经理。我一问才知道Meredith原来是eBay古董收藏货物大类别的经理,她手下还有几个助理。她和她的助理主要负责,在古董收藏货物大类别下,根据商家需求和eBay的商务特性合理地添加新的货物类别,便利eBay系统上的买卖交易和售后数据分析。所以她不是一个软件产品经理。我就很好奇Meredith会怎样制定这个项目的产品要求。

Meredith真成了这个项目的产品经理。在“货物类别延伸到第五层”的第一次项目讨论会上,Meredith说:“eBay有10多个货物大类别,每个类别的经理和我一样其实只关心怎样从管理员的角度顺利地在现有的第四层类别上添加第五层类别;关于添加第五层类别可能涉及到的软件产品的具体设计要求和技术实现方式,我愿意听从开发人员的建议。”

我听出这是一个技术含量很大的项目,其实Vicki才是真正的产品经理。

产品经理Vicki

“货物类别延伸到第五层”类似于给一栋大楼里所有的房间的水管增宽,所以实现操作细节可能很繁琐辣手,也要求施工设计师一定要熟悉大楼内部结构。所以Vicki似乎是唯一的人选。

“货物类别延伸到第五层”要求所有涉及到货物类别的产品的页面及后端做升级更新,例如eBay的货物搜索页面(Search UI)和货物列表页面(Listing UI)两个完全独立的服务于买家的产品都需要做相应的变动。货物搜索和货物列表的开发经理都很关心地询问Vicki“货物类别延伸到第五层”的技术设计设想,他们希望设计能优化实现的手段。

Vicki告诉那两个经理:“我们会从数据结构(Data Structure)上延伸到第五层类别,如果你们的程序是动态地处理货物类别结构,那你们的后端改动可能不大,页面改动也许更多。”

那两位经理,记得是中年不“油腻”大叔,很满意这个答案。

Jeff和我都是刚进eBay不久的新手,对货物类别理解不深,我们按Vicki的设计方案挑灯夜战改动了eBay软件大系统里千丝万缕的有关货物类别的编码。Jeff和我都属于认真肯干那类人,可是这产品推到eBay网站的几个小时之后,我们就得到通知:“‘升级货物类别到第五层’带来了系统的内存泄漏。” 内存泄漏是C++语言软件开发人员公认的一个辣手致命点,因为内存泄漏可能导致系统瘫痪。

Vicki很快找到Josh,一位负责产品网站健康的牛人,去实况调试找原因。Josh在实况调试中很快找到了那一行造成系统内存泄漏的编码并在网景浏览器及时聊天(Netscape Instant Message)上告诉了我们细节。Jeff和我连夜一起把那导致内存泄漏的编码修改好又推出到网站。那是我第一次听到Josh的名字,我觉得矮小留着长胡子又穿着随意的Josh有点故意装老,符合我记忆中金庸小说里老顽童的标准。

我们这么大一个开发项目只引入了一个内存泄漏的故障,所以这是一个很成功的项目。Meredith,理论上的产品经理,特意为开发人员办了一个庆功会,还送每人一个特制的钟。

小花絮

1. 2001年eBay很喜欢发钟或表给员工。
2001年,公司好像很喜欢送员工钟或表。Lynn,开发VP,送给她部门员工的新年礼物是一个有eBay标志的很漂亮的手表,好像还有男式女式之分。我拿到手表后还和同事开玩笑:“我们天天都在赶时间,现在林副统帅给每个人发一只手表,进一步增强我们赶时间的意识。”
这是Vicki分享的eBay5周年纪念品:又是一个钟
2001的钟

2. 五层货物类别和eBay人事管理结构
2001年,eBay的人事管理结构是CEO-VP-经理-开发人员,一共四层。有一天我们聊到正在开发中的“货物类别延伸到第五层”,Sonya开玩笑:“公司的人事结构才四层,货物类别就需要五层了,看来货物比人更复杂!”

五层货物类别(5th Category)在熟知货物类别的开发人员中因此而有了另一种含义。几年后,在开发人员猛增的同时,公司的人事管理结构也膨胀了。有资深开发人员感叹过:“在人事结构上,我们已经在5th Category之下了,人还是比货物更复杂。”

3. Vicki的故事:
Vicki
引入BillPoint支付
快速切换页面

小插曲

1. 坐享其成的快乐农妇的长势喜人的茄子和收成很好的各色大西红柿:
210820V茄子番茄

Vicki家结的西红柿曾出现中间干枯症状,她还以为是虫的原因。后来专家解读这是缺钙需要加钙肥。Vicki变通地把人吃的钙片弄碎放到水里浇西红柿,才有了这么好的大西红柿。
缺钙的西红柿

2. 2021-08-20,eBay货物类别搜索首页
eBay搜索首页的货物类别

从搜索页面看到古董收藏还有5层货物类别:
5层货物类别

5层货物类别2

eBay的成人货物类别:
成人类别

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>