您的位置:知识库 » IT业界

技术文化和惨淡命运 —— 怀念中国雅虎

作者: Dreamer  发布时间: 2010-11-02 23:54  阅读: 2118 次  推荐: 1   原文链接   [收藏]  
摘要:我离开中国雅虎已经一年有余,在中国雅虎工作的那段时光是我最珍贵的回忆之一,和以前的同事吃饭聊天的时候也经常会怀念一下中国雅虎,怀念得多了,就觉得不如写篇文章好好回顾一下。很多事情虽然已经过去,但有些话不说出来,到底意难平。
[1] 在中国雅虎工作的那段时光是我最珍贵的回忆之一
[2] 中国雅虎的开发流程沿袭了 Yahoo 的开发流程

  中国雅虎的开发流程沿袭了 Yahoo 的开发流程,乍看之下很平常,对于已经熟悉的工程师来说还显得枯燥,但后来我特别留心了这套流程之后,非常惊奇于它的严谨和高效,所以这里要详细说明一下。Yahoo 的内部生产线分为三个相互独立的环境:开发环境、测试环境和生产环境(即线上环境)。这三个环境虽然独立,但它们的配置都会尽量保持一致,这样就可以保证开发完成的产品不会因为环境不同而出现问题。在开发的时候,我们会在开发环境中搭建虚拟环境,开发完毕之后开发工程师会自己在虚拟环境里面测试,保证没有大的问题,然后就会把所有相关文件打包上传到雅虎全球统一放置产品包的地方。上传完毕之后,就会发邮件通知 QA 部门相关人员,邮件内容里面要写明产品在测试环境的部署步骤:需要安装哪些包、是否需要修改数据库等等。然后 QA 就会开始测试,如果发现 BUG 就会写到 Bugzilla 中,指派给相应的开发工程师,开发工程师就会在开发环境中定位BUG并修正,修正一些BUG之后就会再次打包升级产品的版本,然后QA 会将新的软件包部署到测试环境验证之前的 BUG 并报告新的 BUG 。整个测试过程中可能要发布好多个版本,直到所有 BUG 被修正为止。修正完毕所有的 BUG 之后,开发工程师就会填写上线申请,Ops 看到申请之后就会安排一个时间把产品部署到生产环境。一般来说,生产环境不止会有一台机器,所以 Ops 会先从生产环境摘下一台机器部署,部署完毕之后会告知 QA 和开发工程师,然后 QA 和开发工程师就会修改 Hosts 文件,配置域名指向那台机器进行线上的测试,如果测试没有问题,那么就会把软件包部署到生产环境中所有的机器上,完成上线;否则就进行回滚,取消这次上线,也不会影响到线上的用户。

  整个流程大概就是这样,但是要特别注意的是以下几点:1.开发工程师只能接触开发环境。他所能做的就是在开发环境中开发、改 BUG 和打包上传。如果他去测试环境中修改 BUG,就很有可能忘记修改开发环境中的相应代码,这可能会导致产品测试通过但是上线之后却发现大的问题。 2.产品“封版”之后就不可以做任何改动,如果有改动,即使只改动了一点所有功能也要重新测试一遍。所有的 BUG 都修改完毕之后的那个版本就会进行“封版”,那就标志着这个产品随时可以准备上线了。如果真的发现了新的 BUG 要修改的话,那么修改之后就需要重新打包重新走一遍完整的测试流程,只有这样才能够保证就算修改代码过程中引入了新的 BUG 也不会被遗漏。 3.上线手册要详细。开发工程师要详细写明每一个步骤,不只是说明性的文字,还要把具体的安装和修改命令完整地放上去,如果写得好的话,那么 Ops 的同事只需要把上线手册里面的命令逐行复制到服务器上运行就可以完成上线。

  这样的流程有什么好处呢?首先,它最大地降低了上线风险。因为开发工程师不能接触到测试环境,只能打包让QA测试,所以完整经过测试的产品上线之后基本不会有什么问题,况且上线的时候我们也要先部署到一台机器上进行测试之后才会决定是否上线,即使上线不成功也可以在不影响用户的情况下回滚。中国雅虎的上线极少会出现问题,很多时候我们上线到半夜只是因为那个时间段用户访问量最小,而不是说焦头烂额地忙活几个小时一直到半夜才上线成功。其次,它使得各个部门职责分明。开发工程师和 QA 通过 Bugzilla 沟通,和 Ops 通过上线手册沟通,因为沟通渠道唯一而且清晰,所以就可以完全责任到人,出了问题也很容易定位到具体环节。比如说,如果产品测试通过之后在上线的时候出现了问题,那么基本就可以确定是 Ops 操作失误或者上线手册没有写好。职责分明之后很多事情也变得有条理,大家就可以各司其职、专注本职工作并且合作愉快,开会的时候也可以明确知道需要哪些人参加。

  完善、清晰的流程从根本上解决了一些问题,创建了一个非常好的环境,这样我们就可以把心思都放在如何开发和测试上面,而不用担心诸如“如何上线才能不出错”等琐碎的事情。所以尽管中国雅虎的高层那么不靠谱,我工作得还是很开心,因为这个流程保证了管理层再怎么乱开发也不会乱。记得那时候很喜欢改 BUG ,有时候改得兴起会把之前版本遗留的 miss BUG 一并改掉,加班也是颇有兴致,不是很能明白为什么网上大部分程序员讨厌加班讨厌得要死。现在我明白了。

  五、自动化工具

  工欲善其事,必先利其器。如果没有那么多好用的自动化工具,那么 Yahoo 的流程就不可能如此完善。Yahoo 内部有很多非常好用的工具,而且这些工具都有非常齐全的文档,也可以在 Twiki 上找到不少相关资料。这些工具之所以在 Yahoo 会起到那么大的作用,是因为 Yahoo 全球所有的技术团队都在使用它们,Yahoo 所有的服务器上也是默认安装了这些工具。这些工具就形成了一套全球 Yahoo 工程师通用的话语体系,可以想象它们帮助 Yahoo 节省了多少沟通成本。

由于考虑到服务器的安全问题,Yahoo 的这些工具的使用方法是对外保密的,这里我只简单说一下 Yinst 这款工具的强大。假如要把软件包 example_1_1_0.tar.gz部署到 a1.yahoo.com ~ a10.yahoo.com ,那么只需要下面这样一行命令:

  yinst install example_1_1_0.tar.gz-h a[1-10].yahoo.com

  就可以完成整个上线过程。由于好奇的缘故,在上线的时候我比较喜欢跑到 Ops 那边看他们是如何操作的,然后发现其实他们在上线过程中执行的命令很少。因为工具好用,所以产品极少因为 Ops 这个环节出现问题,上线就变成一件比较轻松的事情。

  中国雅虎的产品和业务确实不好,搜索不如百度,新闻不如三大门户,“雅虎助手”是人人皆知的流氓软件,邮箱也出过丑闻,而且被 Gmail 和 QQ 邮箱远远抛在后面。中国雅虎最广为人知的也都是这些不光彩的事情,但这里我想让很多人知道,对于一个对技术还有追求的工程师来说,当时的中国雅虎真的是一个很好的工作环境。至少对于我自己来讲,我从 Yahoo 学到了太多太多的好东西,而且这些东西还只是 Yahoo 精华中的一小部分,如果不是阿里巴巴集团战略调整,我一定会在中国雅虎多呆两年。

  中国雅虎之死

  有个同事曾经说过:中国雅虎就是中国互联网的黄埔军校。虽然别的老牌互联网公司也为行业培养了不少人才,但是没有一个公司像中国雅虎这么悲情。很多中国雅虎的员工离职不是自己想走,而是不得不走,看着原来好好的一个公司变得完全没有前途,只好选择离开。

  关注互联网的人应该都知道,在 2005 年的时候,阿里巴巴收购了中国雅虎的全部资产,并享有雅虎品牌及技术在中国的独家使用权。中国雅虎尽管之前也一直水土不服,但被阿里巴巴收购之后悲惨命运才刚刚开始。

  关于中国雅虎的折腾史,大家可以去看一下这篇文章,里面说的已经很详细。从网站的变化就可以看出中国雅虎的摇摆不定,在阿里巴巴入主的这 4 年来,中国雅虎就换了 5 任总裁,每位新官上任后都会颁布新的战略,网站也会随之大变脸。“治大国若烹小鲜”,这么简单的道理我相信阿里巴巴的高层不可能不明白,就算大象可以跳舞,中国雅虎的舞姿是不是也太难看了点?由此可见,中国雅虎在阿里巴巴集团内部就是一个鸡肋,一个可有可无的品牌。

  有一件事情完全可以说明马云对中国雅虎的态度。约在 2007 年前后,马云对雅虎中国资产进行了大幅度调整。在此期间,雅虎相册宣布关闭,从发出通知到服务关闭,前后不到 20 天。这种缺乏对用户起码的尊重的行为,导致相当一部分中国用户失去了存储其中的照片。而且它引发的用户对雅虎品牌的失望和不信任,对雅虎来说更是难以挽回的损失。大家都知道,“客户第一”一直都是阿里巴巴宣扬的核心价值观,难道雅虎相册的用户就不是客户?到底是马云铁了心要把雅虎品牌搞砸呢还是所谓的价值观只是口号?或者是两者皆有?

  这几年中国雅虎的历史就是逐渐被瓜分的历史:搜索团队被调走,于是有了后来的淘宝网搜索引擎;(有人提醒我说阿里旺旺早就有了,这点我没有查证,十分抱歉,我是摘自这篇文章:“随后,雅虎的搜索和IM技术团队流入阿里,并为后者孵化出淘宝网搜索引擎以及阿里旺旺两个产品。”);挖走了广告搜索团队,于是有了后来的阿里妈妈;口碑网发展得不好,于是中国雅虎和口碑网合并,利用中国雅虎的品牌和技术支持口碑网;最后,中国雅虎的整个工程技术部都注入淘宝,原来的主要业务“雅虎关系”直接关闭并且推荐用户使用淘宝网的“淘江湖”。时至今日,中国雅虎已经气息奄奄,再无回天之力了。

  我经常觉得,恩,马总在下一盘很大的棋,我们这些普通员工是不明白的。不然为什么“搞死中国雅虎”这个庞大的项目规划和施行得这么好?还是阿里巴巴一直在用实际行动考验中国雅虎员工的价值观呢?而且颇具讽刺意味的是,尽管马云费尽心思拿到了中国雅虎的搜索资源,最近却又和微软的 Bing 合作推出了 Etao 搜索,当初的那些搜索资源都用来做什么了呢?

  还有一点不得不提的是中国雅虎和阿里巴巴之间的文化冲突。阿里巴巴一直都不能算一个真正的互联网公司,它只是以互联网作为工具,大部分业务的进行还是靠线下的销售。阿里巴巴最重视的是销售部门,整体的文化是销售文化,它所取得的成功也都只是商业上的成功,这也就从根本上决定了它不可能像 Google, Yahoo 和 Facebook 等这些真正的互联网公司具有理想主义色彩,也不可能成为优秀工程师向往的地方。马云自己也经常放言说要“超越沃尔玛”,从来没有说过要超越 Google 之类的话,因为根本不在同一个领域,阿里巴巴更像一个传统的商业公司。我并不是说做电子商务的公司就不算互联网公司,同样是做电子商务,Amazon 就是互联网行业的领头羊,它非常重视技术,还是最早提供云计算服务的公司,它就是一家真正的“IT公司”。

  而中国雅虎的技术资产全部来自美国 Yahoo ,工程技术部也继承了 Yahoo 的“技术文化”。“技术文化”偏重简单实用、冷静思考和解决问题;而“销售文化”则重视加油鼓劲,更喜欢喊口号,越热闹越好。我承认这两种文化都有它们的合理之处,但是强迫工程师接受那种“销售文化”就会有很多矛盾出现。阿里巴巴内部有时候玩得还比较过火,跳钢管舞倒也算了,但很多时候做游戏会直接让一个同事站到前面,然后轮流问他诸如“第一次用了多长时间”之类的问题。并不是所有人都喜欢这么玩儿的,“贱文化”和“骚文化”的最大一个弊端就是很容易引起一些人的反感让他们觉得被侮辱,而公司不是经常倡导要对人才各尽其用么?为什么要用这样的文化把一些“思想保守”的人驱逐出去呢?我就听说过一些非常优秀的工程师因为这些东西而坚决不去参加公司的培训和集体活动,中国雅虎的很多人应该也是因为无法适应这种“销售文化”而出走的。

  另外,当年和我一起通过校园招聘来到雅虎本来有不少人,在 2008 年 3 月份的时候我们还曾一起在北京参加了一个叫做“集结号”的新人培训。不过在我入职之后发现,有几个人直接被调动到了阿里巴巴在杭州的其它子公司,还有几个做搜索的同学虽然人在北京,签的却不是雅虎,而是什么“阿里巴巴集团搜索事业部”——当时雅虎的搜索部门已经被独立出去了。之后我也和那些最终没有来雅虎的同事聊过,他们都表示很郁闷,表示自己并不是很情愿去其它公司。这件事情让我感到很气愤,明明大家都是冲着中国雅虎来应聘的,为什么在发放 offer 之后又进行调动呢?当然,阿里巴巴肯定是做了一些说服工作让那些同事“自愿”服从调动的,但是那个刚好出现了金融危机工作比较难找,其它公司的招聘也早已结束,而且大家都是初出茅庐的学生,能不服从么?那几个同事也实在是太光荣了,刚入职就完美表现了自己“拥抱变化”的价值观,KPI 应该给五分。

  不只是新入职的员工,因为中国雅虎的业务变化频繁,平时也经常会出现内部调动,而中国雅虎在北京,调动的话就很有可能需要去杭州,这对于很多已经在北京安家的同事来说并不是一件小事。但不服从调动,就是价值观有问题。五十六种语言,汇成一句话:拥抱变化拥抱变化拥抱——变化。

  在写这篇文章的时候,我不断提醒自己:我的目的是要让大家了解一下中国雅虎,千万不要写成针对阿里巴巴的檄文。但真实情况确实是那个样子,很多事情也是人人皆知,无法绕过去不说。相信很多人都还记得中国雅虎首页的那次糟糕的改版,把原来清爽干净的页面改成了屎黄色,据说这是当时的 CEO 金同学坐在设计师旁边亲自指导的结果。如果一个乡镇企业的老板非要外包公司的设计师把网页做成他想要的也罢了,但作为一个缺乏审美能力的 CEO 居然连“把设计的工作交给设计师”的觉悟都没有,实在让人觉得不可思议。就算是一心想要“去雅虎化”,也没有必要这么羞辱设计师们吧?

  不知道为什么,有些东西不用每天灌输也深得大家认同,怎么折腾都无法斩草除根。我在雅虎的时候从来没有任何一个人和我们说“你们要热爱雅虎,要以雅虎为荣”之类的话,但是每次公司给员工发放印有雅虎 LOGO 的杯子或者背包的时候,大家总是一哄而上,疯抢干净。在中国雅虎和口碑网合并之后,因为担心以后再也领不到雅虎 LOGO 的笔记本等文具,不少同学都开始申请办公用品留作纪念。由这些事情就可以看出工程师们认同的到底是哪一种文化,大家自然会用脚投票。这些事情甚至让中国雅虎的一些非工程师同事也觉得难以理解。这种生命力强劲的外来文化可能也是阿里巴巴一直不满中国雅虎的原因。

  真正的开放应该是同事之间开诚布公、乐于分享和坦然接受批评,而不是不分场合地讲荤段子,不是让别人站到前面然后问别人“第一次用的是什么姿势”;真正的“员工第二”是站在员工立场上考虑问题、虚心听取员工提出的问题,而不是在员工有意见的时候首先进行价值观教育,不是强迫员工拥抱不可理喻的变化;真正的对“用户体验”的重视是尊重用户、切身考虑用户感受,不是在年会上把某个子公司的总裁骂哭,不是为了巨额广告费用而在首页做弹窗,不是让员工为了 KPI 每隔几个月就想着改版;真正的“幸福感”是来自于发自内心的对公司的认同、对公司产品的成就感,而不是来自于整齐划一的口号和对某个人的崇拜,也不是来自于被灌输的“换个角度看世界”。脱离了原本的初衷,就算宣传得再好口号喊得再响亮,也不过是看上去很美的空洞的形式主义,这样的公司有什么底气去做“百年公司”呢?

  技术的悲哀

  有着世界级的研发实力却不得不悲惨收场,我想再没有人比中国雅虎的工程师更能强烈地意识到技术所能决定的事情实在是太少太少。在中国,互联网只是一个营销工具,“技术改变世界”也不过是一个笑话。那些商人们从来不相信“一个优秀的程序员抵得上一百个平庸的程序员”,却虚伪地把“我不懂技术但是尊重技术”挂在嘴边;他们整日想的不是创造价值,而是如何赚更多钱;他们更相信“廉价劳动力”所带来的成本优势,也总能把“技术密集型”的公司做成“劳动密集型”,以至于国内的互联网公司不是山寨就是血汗工厂,雇佣着大批大批会写代码的高级民工。这样的环境和氛围,暂且不说 Google 和 Apple 这样伟大的公司,什么时候我们才能有产生像 37SignalsThe Omni Group 那样的小公司的土壤呢?

  文章的最后,还是那句老话:他日江湖相逢,再当杯酒言欢。

  各位雅虎人,多保重了。

[第1页][第2页]
1
0
标签:中国雅虎

IT业界热门文章

    IT业界最新文章

      最新新闻

        热门新闻