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