淘宝技术十年:04--下手加过批注


第四部分 我在淘宝这八年 “所有的进步都是不稳定的,一个问题解决了,我们不得不面对又一个新问 题。” ——马丁·路德·金 124 124 淘宝技术这十年 2011年12月8日那天,有同事恭喜我,我才知道自己在淘宝已 经七周年了。很多人问“七年痒不痒?”老实说,也曾经痒过, 但往往都是一痒而过,然后又投入到水深火热的工作中去。回家 之后就想,我在这七年到底收获了什么,且不论成败与否,这七 年的经历,是我人生的宝贵财富。 第一年(2004年—2005年) @正牌七公曾经说过,要是写一本淘宝的历史书,一定有很 多人感兴趣,其实我也很想写写这样一本书。2004年12月8日入 职的时候,我和@衲子如幻一起进来,迎接我的是骆冰和黄裳@ 岳旭强 ,骆冰是百阿的班主任,黄裳是我的师父。当时还没有百 淘,先参加了百阿,百阿给我发了一本书叫《完美商店》,介绍 的是eBay的故事,看的时候我就想什么时候我也写一本关于淘宝 的故事来。 我进淘宝非常偶然,当时只是看到这个网站做得不错,自己 也不想继续做对日外包的工作了,就过来面试了一把。刚进淘 宝的时候,我被震撼了,它跟传统的企业非常不一样,到处都是 生机勃勃的样子,还有前台的@香香的好朋友笑得很亲切,之前 见到的公司前台的态度都是冷冰冰的。@武当三丰给我两张笔试 题做,后来居然通过了。财神面试我的时候,问我为什么到这里 来,我说很欣赏这家企业发展这么快,这样的企业一定有很多高 125 125 第四部分:我在淘宝这八年 手,跟高手在一起成长一定很快。我每说一句,他点头“嗯哼” 一下,以至于后来我跟我老婆形容公司的CEO时,她只记得那个 喜欢“嗯哼”的人。 来淘宝做的事情是做Java开发,但是之前我只做过3个月的Java 项目,连Eclipse都不熟(我来之前恶补了一下快捷键的操作)。 一开始做事是在@岳旭强手把手的指导下做的,当时非常依赖旁 边的几个老员工——多隆、正风、进宝、我行、不同、范禹、天 川。做的事情也没有一个成熟的流程,常常是大家在论坛看到有 人需要什么功能,我们问问PD是不是需要做,然后就写代码,提 交给测试人员(给自在、郭芙、宝驹),最后就让青青打包,让 剑英发布。我还很清楚地记得做的第一个需求是,有卖家说不想 把货卖给信誉为一颗心以下的买家;有卖家不想卖给某个省市的 买家,我就给卖家一个工具,让其限制某些买家不能买。于是我 就在发布商品的流程和生成订单的流程中,找到合适的地方,加 了几个合适的参数,写了几段合适的代码,就发布上去了,但是 这个功能一直没敢启用。直到3年之后,2008年要拆分Denali的时 候,这段代码都在,但都没有发挥作用。 做完第一个需求后,自己写的代码在系统上运行了,一下子 有了信心。当时HR成立了百淘的项目,我先去百淘二期干了几天 (本来要我参加一期的,但当时忙,延迟到了二期,现在百淘已 经过一百期了),回来就投入到一个更牛的项目——支付宝。 126 126 淘宝技术这十年 支付宝一开始生存在淘宝系统上,但到2004年年底的时候, 老马的慧眼看到了支付宝的未来。当时请了Sun公司的人把淘宝的 第一个PHP版本变成了Java版,之后,就让他们做独立的支付宝系 统。我和天川从淘宝派出来做支付宝和淘宝相关的业务,当时除 了Sun公司的人和淘宝的人,还来了一位标志性的人物@fenng , 他是这个项目的DBA,记得他刚来杭州时,家里要装宽带,运营 商服务不周到,被他骂了好久。后来(2010年)他在微博上大战 中国电信已经相当有经验了。项目组中还有另外几个让我非常佩 服的人——鲁肃、苗人凤,二人后来成了支付宝的首席系统架构 师和业务架构师。就这么跟着这样一帮牛人干了3个月,支付宝 在五一节的时候上线了。还记得几个DBA在做数据迁移时候的囧 样,数据结构已经面目全非了,@正牌七公、 @fenng、多隆、鲁 肃搞了三天三夜。我们熬夜的时候还有杭州的卖家跑来看我们, 有一位是璧君 ,后来直接加入了淘宝。 当时那热火朝天的岁月令我至今难忘,我三天三夜没回家的 时候,我老婆还打电话过来问“你到底还爱不爱我了?”我说: “怎么会不爱呢?” 进淘宝的第一年,我的级别是P1,现在已经没有P1了,后来 调整过,我当时进来应该是现在的P3,记得那年年底的时候,三 丰给了我4分的评价(超出期望),然后升级为P4,那是我成长最 快的一段时期。 127 127 第四部分:我在淘宝这八年 第二年(2005年—2006年) 做完支付宝,公司举办了一场硕大的庆祝仪式,带我们一帮 人去了千岛湖,玩得很爽,但我有点不安,因为我与他们在一 起才3个月,实际上只做了3个功能,一个是创建支付宝交易的接 口、一个是接收支付宝订单状态的接口、一个是绑定和解绑支付 宝账号的功能,而其他牛人设计出了一个巨大的系统,我处于深 深的拜服中。半年之后,淘宝网组织的郊游又去了千岛湖,后 来,另外两个项目的庆祝也去了千岛湖,以至于我都认识那边的 128 128 淘宝技术这十年 道路了。 从千岛湖回来,真正苦逼的日子开始了,我很长一段时间都 在做善后的工作,就是支付宝系统中的一些问题。由于支付宝 和淘宝是两个独立的系统,系统之间的通信是一个大问题,而银 行与支付宝也需要通信,于是问题就经常出现:用户在银行付款 后,未必能通知到支付宝,支付宝收到通知后,未必能通知到淘 宝,于是用户的钱没了,淘宝的系统上却显示未付款,很让人崩 溃。我和鲁肃尝试了很多种办法,一开始用MQ,但并发量上来 之后老丢消息,消息的时间顺序也会错,后来他做了一个消息中 间件系统,这个就是淘宝的Notify的雏形,现在Notify一天能发送 几亿条消息通知,能保证通知到,也能保证不重复通知,还能保 证消息有次序,相当不容易。 三丰看我在支付宝方面做了很多事情,而且跟鲁肃他们合作 得这么好,还以为我水平大有长进,于是在维护着支付宝接口的 同时,我开始了做PM(项目经理)的生涯。据说,我是淘宝的 第一个PM,这让我很爽,我在做PM的过程中与SQA一起整理出 了《项目管理流程》《PM工作手册》《系统设计模板》等开创 性的工作,有些东西沿用到了现在。但后来有人提出敏捷概念 的时候,我又在反思,我是不是误导了淘宝的项目开发模式很  多年? 我的PM生涯从2005年持续到2008年,这三年又大致分两个 129 129 第四部分:我在淘宝这八年 阶段,一个是“新手上路”阶段,自己摸索着做了“商品详情拆 分”、“收藏夹改造”、“支付宝认证”几个项目;另外一个是 “死去活来”阶段,做了“我的淘宝AJAX版”、“招财进宝”、 “淘宝旅行”。为什么是死去活来?因为后面这三个项目死了两 个,活了一个。 “商品详情拆分”是在2005年开始做的,三丰说让我当项目 经理,我看到“经理”两个字就吓得半死,但后来知道该项目 组就我和拖雷两个人。要做的事情非常简单,淘宝商品信息表一 开始就是一张表,商品的所有信息都在这张表中,包括商品的详 情,用一个clob字段存储。大家应该知道商品的详情是多么恐怖 的一个字段,据说,如果把淘宝商品详情页面打印出来,平均约 5米长,虽然当时没这么长,但也很恐怖了,它与其他信息放在 一起严重影响数据的读写性能。于是我新建了一张表来存储商品 详情,普通的商品查询不会用到这张表,只在商品详情(detail) 页面才会用到,做完之后,性能一下子好了很多,我又骄傲了很 久。再后来我知道商品的详情已经不能存放数据库了,放到了文 件系统上。 “收藏夹改造”是一个稍微大点的系统,最早,淘宝的收藏 夹只能收藏商品,我和万剑、领军等人把收藏夹改造成能收藏店 铺、收藏搜索和把收藏的内容分类处理,当时的UI设计可能是承 志@sharkUI 做的,看他一个像素一个像素地扣,才发现他比我们 130 130 淘宝技术这十年 写代码更苦逼。这个项目算是一个比较完整的项目过程了,我除 了写代码,也做一些工作计划,所以后来就开始写项目管理的文 档了。 “支付宝认证”是淘宝的一个创新,淘宝在成立之初就要求 卖家实名认证,最早的认证方式是让用户上传身份证照片,我们 去连接公安系统的网站来核对信息,核对一个要交5元钱,成本相 当高。后来浅雪@浅的雪过来做PD,提出了一个新的认证方式: 我们认为银行一定有用户的身份信息,而支付宝又与银行有合 作,那就可以通过银行的用户信息来验证身份。所以支付宝认证 的原理就是:用户提交身份信息和银行账户,我们往这个账户里 存钱,存进去之后,用户填写收到了多少钱(我们号称存过去的 是1元钱以内的金额,实际上只有几分钱),如果用户填写的与我 们向里面存的是一致的,那么这个人的身份就是对的。这不仅降 低了认证的成本,也使认证的效率由原来的一周左右变成一天以 内。由于我对支付宝比较熟,又做过PM,就理所当然地做起了这 个项目的PM。据说,这个项目后来申请了专利,这的确是一个很 大的创新。 这三个项目我做得很顺利,认为自己已经称得上是项目经理 了,但巨大的失败在后面等着我,由于后面那些事情想起来太伤 心了,先写到这里吧。 131 131 第四部分:我在淘宝这八年   第三年(2006年—2007年) 2005年年底的时候,我结婚了,与老婆匆匆领了证就往公司 跑,因为当时我负责了一个更大的项目,重构“我的淘宝”。由 于太匆忙,结婚证掉在了路上,后来有人送到了民政局,结果是 一天去民政局领了两次结婚证。 “我的淘宝”是给会员管理自己的商品、交易、收货地址、 评价、投诉的地方,这个地方由于登录之后才能看到,所以风格 与外观完全不一样,很长时间都没有优化过,样子丑,用户操作 132 132 淘宝技术这十年 也不方便,如果一个人有很多商品,上下架还需要一个一个地操 作,非常麻烦。这时候一个重要人物登场了——承志@SharkUI , 他给我们演示了最牛的前端交互技术,就是Gmail上那种AJAX的 交互方式,可以拖动,可以用鼠标右键,也可以选择组合键,操 作完毕不刷新页面,管理商品犹如神助。除了承志,还有一个 牛人加入了项目组——一灯@喻策 ,这是他作为PD的第一个项 目。再拉上万剑和一伙工程师,我们就开始工作了,我给这个项 目取名为alps,就是阿尔卑斯山,淘宝的前台项目叫Denali,后台 叫Mckinley,都是名山,咱们这个要更有名。做项目的过程中, 我把电脑桌面换成巍峨的阿尔卑斯山,加班的时候给兄弟们买阿 尔卑斯糖,大家干得热火朝天。快完工的时候,老马不知道怎么 回事,突然出现在我身后,看我操作了一遍新版“我的淘宝”之 后,问我这是不是客户端软件,我说是网页,他抓狂了,说这跟 客户端软件一样,链接下面的下画线都没有,上下架用文件夹表 示,他都不知道怎么操作,卖家肯定也不会玩。被他这么一说, 我们虽然不服,但也留了个心眼,于是做了一个beta版的发布, 在老的版本之外让一部分用户先体验新的版本。 接下来,淘宝历史上第一个群体性事件爆发了,试用完新版 本的“我的淘宝”之后,很多卖家愤怒了,说不会玩儿,一灯 就和承志一起商量如何把页面改得像网页,改了半个月,愤怒依 然没有平息,我很无奈地看着这两个人在那里坚持,然后跟老板 们商量怎么办。后来,我们到论坛上让大家投票要不要使用新版 133 133 第四部分:我在淘宝这八年 “我的淘宝”,投票结果是一半以上的人反对。于是这十来个人 做了三个月的系统被杀掉了。我当时只感觉对不起这帮兄弟们, 也对不起自己领的这三个月的薪水,走路都抬不起头来。但这还 不是最痛苦的,最痛苦的是我们下线之后,另外一拨卖家不满 了,说这么好的功能怎么没有了? 虽然“我的淘宝AJAX版”挂了,但老板们也没说我什么, 我自己诚惶诚恐地总结出了项目过程中的几大罪过发给大家,警 示后人,缓解一下内心的歉意。到2006年“五一”的时候,另一 个划时代的项目启动了,就是“招财进宝”(我苦逼地连续失去 了两个五一节)。财神说要用最好的项目阵容,我被选中了,这 下让我觉得我能划分到最好的员工之类,原来正受伤的心又痊愈 了。这是一个商品P4P的系统,就是按成交付费。我们认为已经 有很多卖家有钱了,但淘宝上这么多商品,他们很难被找到,他 们愿意花钱让商品排在前面。我们允许卖家购买广告位,把他的 商品按一定算法给出排名(类似于百度的竞价排名,这里不仅能 看出卖家交了多少钱,还可知道信用、成交量、被收藏数量等, 这个算法很复杂)。这是一个多么牛气的盈利模式啊!在这个豪 华的阵容里面,乔峰@王煜磊是业务方,浅雪是PD,开发有黄 裳、进宝、晓锋、长空,测试有自在、非烟,UED是青桐和@ sharkUI,架构师是行癫,DBA是叶开。 在我们开发的过程中,乔峰大侠踢球断了腿,于是他SOHO 134 134 淘宝技术这十年 办公,经常在网络的另一头给我们打气。我当时第一次听说 SOHO这个词,只是大家SO的是home,他SO的是hospital。这个 系统进行得很顺利,但发布的时候,更大的群体性事件出现了, 买家们质疑:你们不是承诺3年不收费吗?收广告费不是收费吗? 然后我们的竞争对手趁机在各种媒体上展开公关战,甚至在系统 中开发出了“一键搬家”,搬过去还保留淘宝信用这样的“大规 模杀伤性”功能。然后,这个项目又失败了。项目下线的那一 天,乔峰先哭了,财神说男子汉大丈夫要拿得起,放得下,晚上 去虚竹家请大家吃个饭,算是项目结束了。饭桌上,他才喝了两 杯,就醉了,我看大家都吃不下去,也不敢多吃。结束的时候, 我和小宝送他回家,小宝力气大,背着他,我在旁边撑着伞,路 灯下雾蒙蒙的,小雨一直下。 有人说这个项目的失败让中国电子商务的成熟延迟了好多 年,但这个项目背后的人真的损人也没有利己。 接连两个项目都挂了,我反倒不怎么悲伤了,心态反倒轻松 了许多,明白了一个道理:很多东西,不是你努力就能成功的, 也许应了那句话“谋事在人,成事在天”。 这期间也做了很多日常性的需求工作,印象最深刻的是胖胡 斐有一次给我提了一个需求,年底要做一个抽奖的系统,要求在 抽奖人数能预估的情况下,系统能够即时开奖,发奖数量要均匀 135 135 第四部分:我在淘宝这八年 分布在一天的时间内,发出去的奖品不能超过预设的值,也不能 有奖品没发出。真会难为人,我想了很久才设计出一个算法,用 随机数来做抽奖的种子,数字在某一个区间的时候算中了某个等 级的奖,每个小时发几个奖有限额,发完之后,在这个小时内的 数字即便在中奖区间也不算中,如果前面一个小时很快就有人中 奖,则减小后面一个小时的中奖区间。这个算法后来被应用到多 次抽奖活动中。 心碎的第三年就这么过去了,那时候我的级别已经是P5了。   136 136 淘宝技术这十年 第四年(2007年—2008年) “招财进宝”挂掉的时候,乔峰哭得最伤心,有人拿收费这 个问题来大举攻击淘宝,他说:“有一天淘宝要收费的时候, 请让我来宣布”。现在他在淘宝商城,商城收费不知道是不是由 他宣布的,但因为收费的问题,商城又经受了一次攻击,不知道 是不是同一个对手策划的(本人想象力丰富,对以上言论概不  负责)。 在这个项目中有一个技术细节值得说说,“淘宝商品详情页 面”每天的流量在10亿次以上,其中的内容都是放在缓存里的, 做“招财进宝”的时候,我们要给卖家显示他的商品被浏览的次 数,这个数字必须实时更新,而用缓存一般都是异步更新的。于 是商品表中增加了这样一个字段,每增加一个PV,这个字段就要 更新一次,发布上去一个小时后,数据库就挂掉了,撑不住这么 高的更新。数据库撑不住怎么办?一般的缓存策略是不支持实时 更新的,这时候多隆大神想了个办法,在Apache上面写了一个模 块,这个数字根本不经过下层的Web容器(只经过Apache)就写 入一个集中式的缓存区了,这个缓存区的数据再异步更新到数据 库。好像什么问题到了多隆手里,总能迎刃而解。 那一年发生了很多事情,多到我都记不住了,我只模糊地记 得项目结束之后,组织结构有过一些调整,也来了很多牛人,尤 其是UED的人,例如,@XX的三通(他和我都是一灯的四个门徒 137 137 第四部分:我在淘宝这八年 之一)、@赵小马、语凝、圆心等。那个时候UED开始分交互、 设计、用户研究、前端等工种,以前都是一两个人负责所有的工 作。下面那个项目中,我们有了深入的合作,UED的这种分工对 于PM来说,让我觉得项目周期更长了。 悲催的一年过得很慢,但是年底我却升到了P6的级别。 2007年春天,我老婆回老家生孩子,我在公司开始生我的孩 子,就是下一个项目“淘宝旅行”。我之所以觉得这个项目像 是自己生的,是因为我从最早的商务调研就跟进了。那个时候, 支付宝给很多机票代理商做接口,发现这个行业有很大的利润空 间,而且电子化和标准化程度非常高,就想弄出个旅行服务的平 台来,但是支付宝的研发人员都忙着没空,于是跟淘宝谈合作, 我们做一个集团版本的旅行服务,可以接入淘宝、支付宝,也可 以接入B2B的系统,后来我们做出第一个版本的“淘宝旅行”是 用支付宝账号登录的,跟现在的一淘接入的用户系统相同,当时 很多人感到很奇怪:怎么不用淘宝的用户信息?老板们看我闲 着,合作方也是我比较熟悉的支付宝,于是我阔别两年之后,又 一次跟支付宝合作了。 我跟着支付宝的BD孙权、夏波波一起去拜访一家家的航空公 司,谈合作方式和分成模式,我第一次坐在谈判桌上与这么牛气 的国企谈判,只在他们问我能不能实现的时候做一下技术分析。 国企中有不少有眼光的人才,他们希望做点创新的事情,但整个 138 138 淘宝技术这十年 体制限制太多,谈了半年都没有结果。于是我们又转向与代理商 谈判,这些商人嗅觉非常灵敏,他们意识到有淘宝这么多的用户 能接入,一定是一个很大的市场。他们都很积极,于是“淘宝旅 行”的模式很快就做成代理商作为商家的服务平台,代理商赚钱 后与我们分成(分多少?不告诉你)。 艰苦的商务谈判完成之后,有更艰苦的项目开发跟进,老婆 不在杭州,也不问“你还爱不爱我?”了,我专心投入到项目 中,2007年年底,“淘宝旅行”上线了。上线的时候,我问老板 们用什么域名,语嫣姐姐说用最土最好记的,于是jipiao.taobao. com就发布了。这个平台上产生的第一笔交易是一个代理商的老 板给自己买的机票,按照分成规则,我们赚了几块钱。那天下 午,财神和语嫣带了一波运营的同事,敲锣打鼓地给我们发金币 巧克力,告诉大家这是淘宝第一笔收入。当时我被一拨人推着 走,拍的合影也没人发我一份。这个项目的PD是小玉,运营支持 是叶青和文纨,交互设计是语凝(从那个时候开始,我跟更多的 女同事结下了深厚的情谊,所以我开玩笑说打算写一篇外传《我 生命中最重要的十二个女人》,呵呵!),开发团队是震北、空 望、清虚、腾翼(他们是《我生命中最重要的十二个男人》之 一,呵呵)。 当时国内机票市场的老大是携程,老二是艺龙,我们的平台 上线之后很长时间内,用户还是习惯打电话找他们订票,“淘 139 139 第四部分:我在淘宝这八年 宝旅行”的发展速度其实是很慢的。另一方面,为了获取实时的 航班信息,我们必须获得中航信(中国民航信息网络股份有限 公司的简称)的支持,而中航信当时正急于推广他们的酒店系 统。于是在接下来的半年时间内,我们用中航信的酒店系统做了 “淘宝酒店”,跟机票一起纳入“淘宝旅行”,中航信也把IBE (Internet Booking Engine)接口给了我们。我和做运营工作的姑 娘们整天盯着有谁在我们这里订了机票,有谁订了酒店。如果 有同学、同事或亲朋好友要旅行,我们就给他们推销“淘宝旅 行”。记得到2008年年底,机票销量才几百张。 坐在我们办公室旁边的是“淘宝彩票”的团队,哲别是PM, 一灯是项目经理,经过了“我的淘宝AJAX版”之后,一灯技术水 平精进,跟彩票公司谈合作的时候大谈AJAX和用户体验。这个项 目真是天时地利,用户只需要两块钱就可以买一注,用支付宝下 注非常方便,上线之后销量猛增,到年底的时候,有两注彩票都 中了500万元,一时之间,风光无限。苦逼的机票团队在一边只有 羡慕的份。  看着这个孩子在慢慢长大,在这个过程中,我们做了零零星 星的一些日常需求,实际上工作量不大。当时另一拨人被关进了 湖畔花园,做了“淘宝商城”,他们从湖畔花园回来之后,“淘 宝旅行”这个垂直市场的项目被划分进了商城,然后我们的团队 被并入商城的技术团队。但每次跟行癫开周会的时候,他们讲商 140 140 淘宝技术这十年 城的种种事情,我都插不进话。到了年底,商城蓬勃发展,但机 票的业务没有太大起色,由于我的技术水平没有多大进步,结果 年底被评了3.25分,P6级别不变。 这时候有人来挖我了。 第五年(2008年—2009年) 有读者担心,写到后面会不会变太监了。其实,越往后面越 难写,一方面是那些人就在你旁边,你要顾及他们的感受;而那 些事,也才刚刚过去或者正在进行中,身在其中,很难有个客观 的描述。不过既然都写了这么多,那就继续写下去吧,后面的事 情比较近,也不太有名,估计感兴趣的人不多了。 141 141 第四部分:我在淘宝这八年 我曾经写过一篇博文,是对于“小黑屋”的描述,淘宝有个 传统,很牛的项目都要在小黑屋中进行,当年我们做“我的淘 宝”和“招财进宝”的时候,有人羡慕我被关在一个小黑屋里 面。到了2008年的时候,我开始羡慕别的关在小黑屋中的人了。 这样的人有两拨,一拨人做了传说中的“淘宝商城”,一拨人做 了传说中的“淘宝系统3.0”。做淘宝商城的那拨人暂且不说,淘 宝主站系统在那个时候经历了一次翻天覆地的变化。 因为发展实在太快,淘宝的系统一直处于变化之中,但大的 版本变迁大概有两次,一次是把最初那个LAMP架构的系统迁移 到Java平台上,一次是把集中的Java系统拆分成多层的分布式系 统。从PHP到Java在2004年就迁移完毕了,我进淘宝的时候正赶上 迁移完成后Sun的工程师开始做支付宝,所以我错过了。从集中的 Java平台拆分成多层的分布式系统时,我在做“淘宝旅行”,又错  过了。 我一直相信,像“淘宝旅行”这样的垂直市场才是最好的业 务模式,不可能所有的商品用同一种展示方式,也不可能所有的 交易用同一个流程。但在主站拆分之前,要做垂直市场只能重新 做一个系统,拆分之后,只需要在业务逻辑层重组一下即可。所 以这次网站的拆分不仅撑住了不断上涨的流量,也支持了后续几 年新业务的发展。在拆分的过程中有很多技术的创新,我们从使 用技术到了创造技术的阶段。记得有一次我们与腾讯的工程师交 142 142 淘宝技术这十年 流,大家提起那个时候各自做了一个文件存储系统,仿照GFS, 淘宝做了一个TFS(Taobao File System),腾讯做了一个TFS (Tencent File System),在GFS的理论基础上,各自有不同的创 新。除此之外,还有Key-value的缓存系统、消息中间件、Java中 间件、海量数据的存储和计算等。一个系统发展到10亿次流量的 级别,你不得不做技术创新。 这些我都错过了。 但“淘宝旅行”最初两年的发展非常缓慢,商城在做业务的 创新,主站在做技术的创新,我们这个团队游离于商城和淘宝主 站之外。这个时候,有人来挖我了。 我总是容易被女人说动,尤其是漂亮的女人,而郭芙就是这 样的女人。她问我淘宝主站拆分之后,对测试有什么挑战?我说 系统分层多了,出错的概率大了,但功能测试无法探测到下层。 她问有没有办法深入到代码级别来测试?我说有,但很难做。她 说难才找你嘛,有什么办法来做?我说做单元测试,但单元测试 最好让工程师自己去做,我们做再往上一层接口的测试。然后, 她说英雄所见略同,他们已经有几个人在做了,问我愿不愿意一 起把这事做大。这时我发现她挖了一个坑给我跳。不过这是淘宝 项目开发中一项很大的变化,如果做好的话,将对系统的稳定性 有很大保障,而我也觉得每天在那里卖机票有点乏味了,那就弄 点没人弄过的事情吧。 143 143 第四部分:我在淘宝这八年 我做过开发,做过PM,兼职做过PD,还像SQA一样做过几 个流程,在2008年年底,我又开始了测试工程师的生涯。进到测 试团队之后,我发现以前对测试的认识都太肤浅了,尤其是淘宝 的测试团队,其测试技能和测试方法是业内顶尖的,我要做的就 是招募一个能写Java代码的有测试思路的团队,但后来发现没有 这样的人,于是招募能写代码的,然后给他们培训测试方法,另 外,也吸收能做测试的,给他们培训写代码的技能。在2009年上 半年,我大半的精力都放在了招人和培养人上面,团队从4个人增 加到19个。我记得跟铁花一起做接口测试工程师的培训,有个外 号叫老鸨的,给我们取了个名字——“花柳组合”。 接口测试的思路很简单,就是用测试代码来验证系统代码的 逻辑是否正确。但做起来很难,最大的困难就是被测代码太“拥 抱变化”了,三天两头地变,测试代码经常会失效;另一个问题 就是要验证一个业务逻辑,也许要用10倍的测试代码才能覆盖, 所以,这事儿也是一个体力活。我们发现系统越往下层,变动越 小,逻辑越简单,于是我们就从最底层的IC、TC、UIC开始测 试。测试代码写完之后,放入持续集成的环境中,一旦被测代码 提交SVN,测试代码就回归一遍,把错误信息发布出来。2009年 是这个团队异常艰难的一年,我们把最底层的代码都做了接口测 试,有些还有性能的测试。我记得做UIC接口测试的时候,模拟 了10亿次以上的请求量,结果发现了JDK中的Bug,并提交给了 Sun公司。做这些事情的过程中,我们也对常用的测试方法做了 144 144 淘宝技术这十年 一个抽象处理,弄了一个测试的框架,写了一本《接口测试白皮 书》。 我跟郭芙说,既然我们做了这么多事情,有这样的实力,就 可以高调一点,向外传播我们的影响力,于是我们提出了一个 愿景:“做测试的行业标准”。她任命我们“花柳组合”一方面 去维护博客(地址为qa.taobao.com),一方面对内开展大量的学 习和培训,我们叫它“3T交流会”(Taobao Test Technology、 Taobao Test Team或者Taobao Test Training都行)。 在测试团队做得很开心,也有机会跟更多可爱的女孩子共 事。但从很多人的眼光来看,一个开发的人员去做测试好像有点 奇怪,我也常常思索自己这么跳来跳去到底好不好。直到前面一 段时间看到网上流行三种青年的说法,我也把工程师大致分了 类:普通工程师跟着业务跑,来啥需求做啥事;文艺工程师专注 于自己的领域,研究得非常精深;2B工程师跳来跳去,啥都干, 啥都浅尝辄止;还有一种工程师叫牛B工程师,啥都能干,啥都精 通(这种人在工程师心中叫“神”)。而我应该属于第三种,不过 幸运的是,淘宝里的机会太多了,我做的都是自己喜欢的事情。 2008年年底,我的级别从P6提升到了M1,悲剧的是,过了一 年之后,公司更加重视专业能力,即M1==P6。 也许是看我在测试团队把培训做得风生水起的原因,2009年 145 145 第四部分:我在淘宝这八年 年底,又有人来找我了。 第六年(2009年—2010年) 作为一个2B工程师,我渐渐地开始不务正业,到2009年就很 少写代码了,只做一些上通下达、资源协调、关系处理、甩手掌 柜之类的事情,完成了一个P到M的转变(从另一种意义上说,我 这个码农废了)。但做了M(管理)之后,才知道管理真的是一 门艺术,尤其是管理一群女孩子的时候,简直是处于艺术殿堂的 巅峰。那时候从一位大侠那里听到一个理论,作为M,就不可能 做到让所有的人都喜欢你。这对于一贯喜欢做好人的我来说,很 146 146 淘宝技术这十年 有难度。但做了两年M之后,有人说我是个“老好人”,这真是 一个很大的打击,说明我这个M没有做好。 据说是因为有人推荐,2009年年底,老板的老板的老板来找 我,我以为出啥大事了,原来是他们发现团队大了,壁垒也大 了,知识的传播和传承有很大障碍,需要一个专业的技术培训团 队。而我,啥都干过,又喜欢张罗些培训和交流的事情,似乎 挺合适的。我认为团队的成长是M的第二等大事(第一等是干好 活),那跟带一个小团队来比,支持整个大部门的成长似乎更能 发挥我的余热。但这个我一手建立起来的团队,大部分人都是我 找了无数简历、打了无数电话才找到的,我投入了太多的感情, 实在不舍。思前想后,心理斗争了很久,明白大家都能独当一面 了,我的离开对他们没啥损失。于是挥一挥衣袖,我走了,不过 还是没忍住眼泪。 这一年的测试生涯使我仿佛又处于最初的创业时期,理论、 方法、技能、团队都是从无到有,跟测试团队中其他人员的配合 也是从生疏到默契,所有的事情都是摸索着在做。这一年,我的 技术和管理水平没多大提升,却犯了很多错误。团队成员之间出 现问题的时候后知后觉,处理人员关系的问题简单粗暴,工作的 安排像是甩手掌柜。但这一切过后我收获的是心态变了,慌乱之 后开始变得从容。 接下来我们新的团队成立了,@展堂、@早安薇薇安、@奇 147 147 第四部分:我在淘宝这八年 怪的伟大是最早入伙的。我们取了一个很霸气的名字“@淘宝技 术大学”,还有英文名Taobao University of Technology,定位是做 一个企业大学,像惠普商学院和摩托罗拉大学那样,但是要做什 么其实也不知道。我们看每年都有几百名应届生入职,而很多技 术都是外面学不到的,那就先给他们进行培训吧。 于是淘宝技术大学旗下第一个项目开始启动了,我们叫它 “逐浪堂”,取长江后浪推前浪之意。我们收集研发部中所有的 业务、框架、规范、流程、工作方法,教给这些新人。这些知识 收集上来之后,我们发现需要有两个月的时间才能培训完,于是 逐浪堂前面几期的同学接受了我们两个月的知识灌输。然后我们 去访谈他们的意见,发现一个最大的问题,就是东西太多了,如 同把天山童姥的功力传输给一个路人甲一样,他会崩溃的。当 然,这些同学也有不少是像虚竹这样的,本身天资聪慧,可以接 受这些东西,成长很快。 2010年,我们把主要精力都投入到了应届生的培训中,“逐 浪堂”项目几经修改,我们对知识分门别类,对课程精益求精, 最终成型:应届生接受两周的“逐浪堂”脱产培训,内容是通用 技能;进阶版的技能放入在职培训,叫做“追风堂”;经验分享 和大师交流叫做“百家讲坛”;还有一拨社会招聘的员工,他们 参加3天的脱产培训,叫做“飞云堂”,主要传授淘宝特有的技术 和框架。支撑这些项目开展的是一个讲师管理机制、一个课程管 148 148 淘宝技术这十年 理机制和一个在线报名的培训平台。 在开展工作的过程中,我们也有不少创新。兄弟公司的培训 管理员曾经说过一件事情,他们找培训公司为他们采购一个数据 库的课程,培训公司的人说:“最好的DBA都在你们这里了,你 让我到哪里去找?”,我们才发现其实很多业内顶尖的人才都在 公司内部。那我们能不能像采购外面的课程一样从内部讲师这里 采购课程呢?在得到老板们的支持之后,我们开始花重金在内部 悬赏这样的课程,把某项技术讲透,需要8个小时以上的时间,需 要有良好的课程设计和授课技能。悬赏发出之后,一下挖出了十 来门这样的课程。说是重金,其实比他们去外面讲课的价格还是 要低很多,而且这样一整天以上的课程,对讲师来说是工作之外 一个很大的投入,给些激励也是应该的。于是他们讲过几堂课之 后,拿着我们发的iPad,既感觉荣耀,又帮技术大学做了很好的 广告。 在工作迅速开展的过程中,团队也在不断地壮大,这时候又 来了@唐甜cr、@风云咧咧嘴,中间也有几个实习生走来换去,其 中一位的真名被我们注册成班主任的小二账号,到现在都成了花 名。另外,还有一个兄弟团队需要提一下,因为我们之间的关系 比较亲密,我们做内部的培训,他们做外部的交流。迄今为止, 他们已经成功举办了两届@velocityChinaWeb性能和运维大会,也 举办了D2、iData、iTest、aDev等很多交流会。他们主外,我们主 149 149 第四部分:我在淘宝这八年 内。这个团队的负责人是@灵小珊,一个简洁利索的姑娘。 2009年,我刚从测试部门到技术大学,没有晋升,我也觉得 的确不够资格。在2010年年底的时候,我充满信心,那时候淘宝 的晋升机制变了,需要对一个晋升委员会做汇报,很多人从述职 面试回来都深受打击,我也是其中一个。老板们问了我一个问题 “你觉得培训的本质是什么?”我说这是一个好问题,结果是我 继续留在了M1的级别上。 第七年(2010年—2011年) 这一期先打广告,哈哈。 首先帮@胖胡斐推销他的新书《玩法变了》,这是一本讲 150 150 淘宝技术这十年 述淘宝店怎么运营的好书,用一个很俗的词来形容,就是“干 货!”,书中提到抽奖的玩法,其中有一次活动就是我写的代 码。在“魅力属性”这个篇章中也出现了我的名字,嘿嘿。 然后再打一个广告,就是老包宗曦翻译的《触动人心》,主 要介绍苹果上的用户交互,也是精品。我在淘宝遇到的牛人很 多,但心甘情愿拜倒在他的牛仔裤下的神人不多,而胖胡斐和老 包属于神人这个范畴。我和胖胡斐一起学车,我们倒车都是回头 看车尾,只有胖子扭不过头,他是看后视镜倒车的。另外,这个 家伙过圆饼总是会压到边,被@华黎曾宪杰和教练嘲笑的都快懊 恼了。宗曦之所以被我佩服,主要是这家伙玩啥都能玩出境界, 他对摄影的研究非常深入,“宗曦观片会”带出了很多摄影爱好 者,他不在淘宝了,这个组织还活跃至今。 最后就要为我们的团队打广告了,第一年,我们对淘宝技术 大学是摸索着玩,主要是培训了几百名应届生。第二年,也就是 2011年,是我们全面开花的一年。先说说出场的人物:@展堂、 @早安薇薇安、@唐甜cr、@奇怪的伟大、@风云咧咧嘴、@DY- 段燕、@高小糕、@Ciera米_米……还有几个没有微博的人,以姑 娘居多,而且个个可以说是才貌双全、色艺双绝。 在2011年,队伍壮大了,能做的事情也多了,年初我们做了 需求调研,针对核心系统和底层产品开发出了一系列课程,有 151 151 第四部分:我在淘宝这八年 《云计算系列》《海量存储系列》《Oracle系列》《MySQL系 列》《操作系统系列》《小众语言系列》《JVM系列》《Java内存 调优》《搜索技术系列》《广告技术系列》等。也根据这两年公 司技术战略的几个关键词:稳定、性能、成本、用户体验,开发 出了《稳定性系列》《性能优化系列》《用户体验系列》课程。 还根据日常的热门技术做出了《秒杀系统的设计和优化》《双 十一背后的技术体系》一道又一道的技术大餐。 在这里也有必要提一下,这两年淘宝的技术团队飞速发展, 我对几位老板们也有了敬佩之情。技术团队成立了“技术委员 会”执掌技术的发展方向和人才的评估,成立了性能、稳定、成 本、用户体验等各个小组,招募了专业能力非常强大的人才,分 管重要的指标,使整个网站系统的发展越来越健康。这两年,淘 宝的技术也逐渐走向开放,有了面向开发者的开放平台,也把自 己的核心架构和中间件都开放出去了,甚至把我们做的低功耗服 务器的硬件结构都变成了开源的。淘宝前些年从开源社区获得了 不少技术,现在我们真心实意地开始回报整个互联网行业了。 同时,我们也向前延伸我们的触角,与公司的HR一起走进学 校,在浙江大学成立了浙大淘宝俱乐部,在大连理工大学成立了 大工淘宝俱乐部,并送去了几个优秀课程,也给同学们做了我们 提出的实验性项目。我们也跟着集团,与ACM中国区组委会一起 举办了夏季论坛和预选赛,让学生亲近了企业,也让我们的研发 152 152 淘宝技术这十年 部门亲近了优秀的学生。 2011年上半年,我还纠结在“培训的本质是什么?”这样的 问题上。想的多了,做的少了,主要是姑娘们在干活,她们发 挥了强大的能量,组织了四百多次培训,反馈和辅导的讲师也有 三百多名,给我们研发部每个工程师提供了差不多14个小时的培 训。我从《ASTD美国培训和发展论坛2009年度报告》中了解到, 美国培训做得比较好的企业中,人均培训时长在19个小时左右, 而天朝的企业中被统计到的有培训的平均时间不到5个小时。而从 培训管理员人均产出量来看,我们超过了美国2009年的数据。 在我讲概念和数据的时候,姑娘们已经开始在研究细节了, 研究桌椅怎么摆放比较合理、学员怎么邀约会有比较高的出席 率、讲师在课堂上容易出现哪几类问题、PPT的字号多大在后排 能看得清……她们把培训的工种逐步细化,每个环节都有操作指 南,也有了很多知识的沉淀和经验的总结。姑娘们,你们很棒! 培训的本质到底是什么呢?经过老板提点,我们认为培训的 本质是:“通过知识的流转,促进员工的成长,进而推动公司 业绩的提升。”那又有老板会问:“你们怎么证明自己的工作提 高了公司的业绩?”这是一个好问题,呵呵……有一天我听到农 夫山泉的一个广告,说“我们不生产水,我们是大自然的搬运 工”,我灵光一闪、再闪……“我们不生产知识,我们是知识的 153 153 第四部分:我在淘宝这八年 搬运工”。我们搬得越多,别人接收得越多,我们的价值就越 大。我不知道我这瓶水是拯救了饥渴的生命,还是呛到了谁的 肺,但我知道它一定有价值。 随着理论的补充和姑娘们的努力(@奇怪的伟大别介意,我 们把你当姑娘了),在年中特殊晋升的机会中,我升了一级,变 成了M2。 老马说过“唯一的不变就是变化”,年中晋升之后,公司有 了翻天覆地的变化。淘宝一拆四,变成了淘宝网、一淘网、淘宝 商场和共享业务平台,我成了共享业务平台的人,然后共享业务 平台又拆分,我成了集团的人。跟我们一起变的还有成立不久的 “产品大学”和“运营大学”,三个大学顺理成章地统一了,变 成了“淘宝学院”,以前的校长成了院长,我就荣升为技术大学 的校长。人多了,可以集中资源办大事,但层级不需要这么多, 而我做的这事说是P或者M都可以,而且一个被人说是“老好人” 的M估计也没大前途。于是我转了,级别变成了P7,头衔是“培 训专家”,属于专家和教授的级别了。 七年了,我的头发越来越少,付出了7年的青春,也得到了 不少,除了金钱,最珍贵的就是认识了一帮牛人,结交了几个老 友,有了一段足以吹牛逼的经历。 154 154 淘宝技术这十年 第八年(2011年—2012年) 2013年的第一场雪(2013年1月3日,杭州来得比以往更早一 些,那天下了一天的雪,我就知道第二天没法开车上班了,决定 去等公交车,结果等了半个小时挤不上去,我就打算徒步去上 班。想想8公里路的路程,准备试试,但走了两公里之后,我就走 不动了,于是遛进路边的星巴克,打开电脑,领导在网络那头说 要写一下去年的总结,我就好好总结一下吧。 2012年可以用百转千回来形容,在阿里巴巴,你永远无法预 料下个季度你在做什么。2011年淘宝网一拆为四,变成了淘宝、 155 155 第四部分:我在淘宝这八年 天猫、一淘和聚划算,我成了阿里巴巴集团的人,从业务部门变 成了HR。2012年年初,马总提出了“One Company”的概念, 要把集团内的资源打通,很多老板来回转岗,很多业务也统一整 合,于是我的老板换了,老板的老板也换成了HR的副总裁。但 老板上任之后,刚刚请我们吃了一顿饭,又换了一个老板。新老 板是一个有策略的人,他不像其他新老板一样先来三把火,而是 三个月内不点任何火,只是不停地带我们吃饭,观察我们做事的  状况。 在这样的状况下,其实我们自己也在不断地寻求变化,本来 技术大学、运营大学、产品大学刚合并没多久,我们也经常相互 切磋学习方式的创新。我们认为线下培训的方式只是我们的第一 版产品,随着公司规模的扩大、办公地点的继续分散,这个成本 会越来越高,最经典的是在每年七八月的时候,能够顶着烈日走 到一千米外的另一幢楼里上课都需要很大的勇气。还有一个问题 是随着业务的拆拆合合,每个业务对培训的需求是不一样的,统 一集团层面的线下培训无法满足小团队自身业务的学习需求。 那么我们的2.0版本的产品应该是什么呢?我们认为应该是 在线学习,在线学习是一个说起来简单、做起来很有难度的事 情,在线学习大概有四种模式:视频、文档、直播、问答。视频 要解决拍摄的清晰度和声音的纯净度的问题,在一般的教室里拍 摄的视频,通常是投影幕布很亮,人物黑乎乎的,窗外的汽车喇 156 156 淘宝技术这十年 叭声、鸟叫声很嘈杂,要是讲师在白板上写几个字,镜头还需要 移动拉伸,这对器材、环境和摄影师的要求都很高。我们和集团 的“淘宝天下”团队合作,借用他们的器材,学习他们的拍摄技 术,现在拍摄的视频效果已经超越家用DV了,呵呵。在线文档的 难度不在于产生内容,而在于内容的吸引力,PPT很难承载有实 质内容的东西,PDF太长的话又没有人看。视频直播我们和淘花 网合作,用在线Flash播放的技术,这个相对而言比较成熟,但也 受限于摄影机、教室环境等硬件因素。问答模式是我们模仿“知 乎”的作品,即通过学员主动提问,邀请同事回答的方式来营造 一个学习社区,这个难度主要是早期种子用户的培养和优质内容 的推送。 虽然困难重重,但大家取得一致的认可之后,我们就开始推 动这些事情了。培训管理员小姑娘开始学习操作专业的摄影机, 拍摄完毕还要做视频编辑,投入了非常大的精力。2012年半年就 上传了30多门课程的视频(基本上拍摄和制作一部视频至少需要 两天时间)。在线文档模块中,我们有集团内最活跃的知识管理 狂热分子,他一个人就上传了几千份文档。视频直播主要还处于 试用的阶段,在重要的课程上,我们开通了所有的员工可以在线 观看的直播通道,这些重要的课程包括正祥、毕玄、褚霸等人的 最新研究。问答频道在“问题少女”小组的运营下,也出现了不 少优质内容,还有“元芳你怎么看”等颇具社区氛围的内容。 157 157 第四部分:我在淘宝这八年 这些新的学习方式的探索是一个长期的过程,搭建一个平台 很容易,上传很多内容也不难,最重要的是坚持维护其中的内容 和及时更新有效信息,我相信只要保持这种热情和精力的投入, 在线学习的平台未来能够发挥出比线下培训更大的作用。说到这 里,顺便提一个概念——知识管理,我不太认同这个概念,在传 统行业,知识或许可以管理,但在互联网企业里,知识的更新迭 代非常频繁,等你理出来刚要管的时候,它已经失效了。我认为 互联网行业的知识不是要去管理的,而是要让隐性的知识显性 化,在它的生命周期里迅速传播出去。我们不需要等它沉淀,只 需要让足够多的知识流动起来,就能创造巨大的价值。 老板一边和我们探讨新的学习方式,一边开始响应“One Company”的号召,打通集团内部的培训业务,我们团队的三 个大学出自淘宝网,另外,B2B和支付宝也包含“百年技术大 学”,在技术大学下面也有应届生培训、在职培训等多个产品。 我们这些大学之间有些“民间”的沟通,但从来没有打通过资 源,也没有共用过一个平台,可以说是各自为战,现在都“One Company”了,自然也要打通一下。于是在老板来了三个月后, 我们启动了一个“小三通”和一个“大三通”项目,“小三通” 就是培训资源的打通,包括课程、讲师、解决方案的互通有无; “大三通”是培训平台的打通,培训的资源放进同一个平台里。 我任“小三通”项目的PM、苏苏(就是《人人都是产品经理》的 作者苏杰)任“大三通”项目的PM。 158 158 淘宝技术这十年 于是在2012年这个春夏之交的时节,我们“两岸三地”(钱 塘江两岸,以及B2B、支付宝、淘宝三地)的培训人员开始了 “三通”的工作,记不得开了多少轮的会议,在即将结束的时 候,变化又来了——2012年6月20日,B2B退市,分拆成CBU和 ICBU,原B2B的技术大学并入集团,于是从组织结构上直接就 “通”过来了,人都在一起了。 “在一起”之后,就到了火热的夏天,关于HR的另一项重大 项目开始启动了,就是招聘。我一边帮招聘的姑娘们审核宣讲稿 的内容,一边接手了一个很洋气的项目“常春藤计划”。这个计 划的主要思路就是,未来我们只招最优秀的学生,这些学生要培 养成技术上的“高富帅”。那怎么培养这些学生呢?以前我们的 成长方式都是野路子,放养在那里,长成什么样是什么样。我们 就想这些野路子里长出来的人有没有什么共性呢?于是就寻访了 一批进步比较快的员工,问他、问他老板、问他同事,找出了他 们成长的规律,按照这些规律制定了一个新员工培养的方案,这 就是“常春藤计划”,这个计划比较机密,在此就不公开具体内 容了。 “常春藤计划”折腾出来之后,已经到了2012年秋天,负责 集团内部创新项目“赛马”的姑娘也归到了我这边,她负责“赛 马”的整体安排,我给她打打下手,偶尔替补一下评委,也为集 团的技术创新和业务创新出了一把力。跟进了三个月之后有一些 159 159 第四部分:我在淘宝这八年 感受,不管是外部创业还是内部创新,都面临着九死一生的压 力,有想法没用,要有产品出来,甚至有产品还不够,要能够迅 速推向市场。内部创新也面临着被抄袭的危险,同时还面临着 “官方”产品的竞争。 写了这么多,其实发现这些事情我都是作为一个参与者或者 支持者在做,这一年下来做的事情很杂,多数事情让别人作为主 力就可以做好。我自己在支持这些事情的过程中倒是有些副产品 取得了出乎意料的效果,为了帮问答产品做支持,有一段时间整 天混“知乎”网,在上面回答了几个问题,居然进入了“「千人 赞」俱乐部”,跻身知乎TOP 250(黄继新语);业余时间整理 了这几年淘宝的技术发展,被新浪博客推荐到IT头条,而且居然 有很多出版社联系我出书了。 2012年的最后一个月,我一直在思索一个问题,在技术人员 的成长方面,我还能贡献多少力量?答案让我有点失落,我离 开一线岗位三年了,以前那些技术和知识也整理出来普及到大家 了,对于学习模式的探索也有些眉目了,这方面有同事继续做下 去就没有问题。如果我是一段木柴的话,在这方面已经燃烧得差 不多了,那我就翻一面来烧吧。这三年错过了“云计算”、“大 数据”等技术,也与淘宝上的商业渐行渐远,我想在这些方面补 补课。而就在我思索这些问题的时候,天猫聚石塔的副总裁菲青 来找我了,呵呵,聚石塔里面有我想要的一切。 160 160 淘宝技术这十年 (2013年1月4日)本来是我去聚石塔报到的第一天,却被大 雪封在了星巴克,我就打开电脑在这里总结过去,展望未来吧。
还剩37页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf

pdf贡献者

mc54

贡献于2013-11-23

下载需要 5 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf