2008年9月26日星期五

好公司:让员工站在公司的肩膀上(转载)

转载自:http://bschool.hexun.com/2008-09-25/109248161.html

  一个好的公司,不能是做加法的公司。不是说1个人可以产生1块钱,10个人可以产生10块钱的公司。好的公司一定是做乘法的公司。好的公司,尤其是非常成功,并且长久成功的公司,一定是在基础机构上面投资最多的公司;一个好的公司,一定要让员工站在自己的肩膀上。

  一天中午,从MountView过来的Google做PageRank算法的朋友阳萌,和大家一起去吃水饺。在吃饭期间,我们不可避免地聊起了Google,当然还有微软。

基础设施

  Google和微软,从大的角度来说,他们很像:他们都是软件公司。但软件公司多了,Oracle也是软件公司,Adobe也是,Netscape也是,还有很多很多的软件公司。但Google和微软和他们又都不一样,显得很另类。从行业来说,微软主营的是操作系统和办公套件,Google专注互联网上的搜索,看似行业不一样,但他们在不同的行业又有一点相同。

  这一点相同的地方,就是他们都是平台提供商。

  平台这个被滥用的词,挺难准确地表达我想表达的意思。我要说的就是,就是他们都希望做好东西,让别人在自己的基础上做开发,而不仅仅满足于别人用自己的应用程序本身。做为公司,它们是这样对待外部的用户和合作伙伴的,但更重要的是,他们也是这样对待自己的员工的。

  比如说Windows,首先要说,它是个不错的应用程序,否则也就没有它做平台的份儿了。但它真正的成功是让开发者在上面开发应用。如果我们看到微软内部,各个部门互相提供大量的编程接口,这成就了微软内部的很多的创新。在微软内部,大家都争着为其他部门提供更好的“编程接口”好让他们用自己的服务。也就是说,在微软公司里面,自己可以在其上开发的“平台”很多,所以可以做出更好的东西。

  Google的搜索当然不错,但在它的背后,也是一个大的平台,让Google的工程师可以更高效地开发程序。比如GFS(Google File System),就提供了便宜的、巨大的、高容错的、高性能的存储。这样的平台,估计现在全球范围内不多。还有Mapreduce,这个让一个程序并发地跑在数万台电脑上的程序框架,让一个刚刚加入公司的程序员就可以操纵数万台电脑,一晚上处理到几个TB的数据;再比如说Bigtable这样的东东。

  这些东西,借用阳萌的话说,其实是一个公司提供给员工的基础设施。

放大个人的力量

  在微软和在Google工作的人,或许和在很多的成功的大公司里的人一样,都有种交织在一起的幸运感和失落感,至少我是有的。让你觉得幸运的是,这个环境是如此的完美,干什么都有很多的工具,很多的知识库,还有很多团队在支持者自己。其中分工是如此之细,每个分工上都有最专业的人用最高效的方式提供支持。

  比如在微软,最喜欢的一个内部网站就是http://toolkit,各种各样的内部的小工具,全是微软平台上的,工程师为自己解决自己的问题写的。如果要建个新的邮件地址,随便谁都可以马上在autogroup里面申请一个abc@microsoft.com这样的邮件,三分钟不要,就可以发布到互联网上去,接收邮件了。要解决问题,近百万篇知识库文章,找什么有什么。想学东西,内部的培训资料看也看不完。就算找人,各种牛人一把一把的让你问。总之,很多人都会觉得,在这个公司做一个工程师真幸福。

  但失落感也同时在于此。优秀的公司是个系统,在系统里面,每个人都很伟大。离开了系统,离开了支持,自己头上的光环就立刻消失,才发现干什么都很难,因为没有现成的东西支持着自己。所谓橘生淮南则为橘,橘生淮北而为枳。有自知之明的人应该知道,自己只是那一株橘子,而真正伟大的是土壤

  阳萌也有类似的感慨。Google内部的好资源太多,外面有的,Linux阵营有的,Google内部都会自己实现一遍,让自己觉得这里什么都有。建立在这些平台上面可以做出来的东西,比自己不用这些资源的产出大不止百倍。这感觉就好像用汇编语言也能写东西,用Windows下的VB也能写东西,但是有了好的平台和工具,画同样一个窗口花的时间是完全不同的。

  这也就证明了Windows+VB是比芯片+汇编好得多的平台。但问题就在于,所有这些好东西,根本没有办法拿出来用。

做加法还是做乘法的公司

  一个好的公司,不能是做加法的公司。不是说1个人可以产生1块钱,10个人可以产生10块钱的公司。

  好的公司一定是做乘法的公司。4个人可以产生4块钱,5个人应该就可产生8块钱。这个乘法的基础,就是大家都在做基础设施,自己站在别人的肩膀上,也让别人站在自己的肩膀上。
  但很显然,微软和Google支持员工的基础设施还是有很明显的区别的。

  微软更多的还是在包装好的软件的层面。这和微软过去30多年的积累有关。比如微软里的一个工具,可以方便地做出单机或者局域网环境的好的系统——微软工具的快速开发是被业界称道的,但是它没有办法把自己的数据中心向员工开放。因为,从本质上来说,微软不是一个围绕着数据中心起家的公司,微软的数据中心的成本,也不足以支撑这个体系。毕竟,在微软诞生的年月里,现在规模的数据中心的概念还无法想象。

  而Google更多的是在于服务上面。Google从第一天就是建在数据中心基础上的公司,他的基础设施显然也是对于所有的员工开放的。一个普通的工程师获取的支持,不是一段代码,而是跑着一个服务的上万台电脑。有种说法,Google已经成为世界头几大的PC制造商了,只不过他们的PC都是自己用,而不销售而已。

  如果从这个角度上来说,微软的支持是一节电池,一个发动机,可以组装成一个个玩具车;而Google的支持更像一个交流电网,一个电话系统,可以做出基于这些网络的应用。而没有这些模块支持的人,好似在森林里赤手空拳的找到了一根木棍。

  所以微软依然会在他擅长的软件领域取得巨大的成功,无论是安装在桌子里的电脑,放在硬件设备上的软件。而Google则会在围绕互联网数据中心的领域取得成功。这些,都是可在公司的DNA里面的。

给我们的启示

  无论是程序还是公司,架构很重要,就是如何把人员和资源搭成梯子,文化上有让别人更伟大的导向,让一个刚刚进公司的人,可以迅速的做到比他进入其他公司的同龄人获得更多的支持,这才是一个公司的结构上的成功。

  好的公司,尤其是非常成功,并且长久成功的公司,一定是在基础机构上面投资最多的公司;一个好的公司,一定要让员工站在自己的肩膀上。

0 评论: