“只要他真是我们需要的人,要什么给什么”
用这种方法来寻找优秀的人,在希格玛大厦第五层里还是第一次,这表明,李开复并没有因为他已拥有一支60人的队伍而有丝毫松懈。事实上,我们检查研究院的档案,可以知道,在1999年春天的招聘高潮过后,寻人的努力仍未放松。新的加盟者,在7月份有李明镜和张益肇、在9月份有王坚、在12月份有郭百宁。然则有足够的迹象表明,李开复从未知足过。他认定,既然希格玛大厦已经聚集了第一批聪明人,就理所当然地会有更多的聪明人围拢过来。
1999年的9月24日,他向全体员工发出一个挺长的电子邮件,表明他的这种迫切心情。其中说:微软雇用的员工,40%是通过员工推荐的,因为聪明人了解聪明人,忠诚的员工会推荐最好的员工。所以请524你帮助提供顶尖的候选人,推荐适应我们岗位的人,可以是你自己认识的,也可以仅仅听说过他的名字。比如,你知道某个人发明创造过某项了不起的技术,听说某个人有“电脑怪才”的称号,请把他的名字寄给我们。所有的推荐都算数。
与此同时,他又颁布:为了发现那些隐藏在中国的天才人物,将对所有员工立即执行一项奖励政策:凡推荐一个研究员、高级研究员和主任研究员,微软公司将奖励3000元。
凡推荐一个助理研究员或者工程师,微软公司将奖励1000元。
中国人也许会认为,这项奇异方针是一个“任人唯亲”的证明。在我们的国家中,人们一天到晚痛斥“裙带关系”,仍不能避免“一人得道鸡犬升天”的情形。你说“聪明人周围一定是聪明人”,也许有道理,但是谁又能保证聪明人身边就没有一个笨蛋,尤其是那些冒充聪明人的笨蛋?的确不能!不过,微软这一人事制度,以员工信誉为基本前提。任何人在举荐旁人的时候,须以自己的“信誉”为无形担保。倘若真有滥竽充数之人,525本身极难通过严格面试,就算众多考官全被蒙蔽,“三流”
被当作“一流”引进公司,微软的环境也不能容其永远滥竽充数。一经发现,即被辞退,推荐者的信誉也会受到牵连。所以,尽管公司鼓励所有人举荐亲朋,却没有人胆敢胡来。这项制度充其量也就是个“举贤不避亲”。
当日微软中国研究院执行这一政策的第一个结果,就是邸烁把他的大学同学王庆带进了希格玛大厦。“那是我们班公认最聪明的一个人,真的棒极了。”当凌小宁想要寻找一个优秀工程师的时候,邸烁如此这般地说。
王庆面容消瘦,柔中带刚,机敏而有节制。在来到希格玛大厦之前,他的经历挺简单,从清华大学的学士到清华大学的硕士。他认为,“计算机这个东西,基本上是一个应用学科,没有什么高深的理论。”再转过头来打量自己:短于理论建树,长于实际的动手能力。所以他坚决不肯像他的同学邸烁一样去读博士,而是选择了摩托罗拉公司中国分公司一个工程师的岗位。他说他在那里可以扬己之长,还能逐渐洞悉大公司的运作程序。后来的事实证明,他没有想错。当他来到微软中国研究院面试的时候,这些经历令所有“考官”觉得,他无可争526议地具备了一个软件开发工程师的条件。有一段时间,微软研究院频频向他招手,而他还在犹豫不决。
在经过几次竭尽全力的说服和几个星期的焦急等待之后,凌小宁终于忍耐不住,去向李开复求援:“你要支持我一下,我需要这个人。”
“怎么支持?”
“给他一个组长职务。他现在在摩托罗拉负责一个小组,手下有几个人。”“给他。”李开复痛快地说。
“我还希望你能和他当面谈一谈,说服他来我们这里。”“好,我谈。”
李开复当即约见王庆。这让王庆有些惊讶,也更加强烈地感觉到微软的诚意。接下来的事,就连凌小宁也没有料到。当李开复发现王庆还想多要一些股票认购权的时候,就对凌小宁说:“也给他。只要他真是我们需要的人,要什么给什么!”527第二天,凌小宁接到王庆的电子邮件。王接受了研究院的聘书,还说正是这些看来很小的事,让他作出这个很大的决定。
1999年11月1日,王庆正式成为微软中国研究院的软件开发组组长。这时候,研究院正在全力以赴开发中文语音识别技术。李开复在10月中旬向比尔.盖茨展示的成果,让微软公司的高层领导者受到鼓舞,他们决定,在微软语音识别大系统当中,加快中文的开发进程。毫无疑问,这需要中国研究院的研究人员同美国总部的开发人员密切协作,其最终结果,将在中国的市场上发挥重要影响。
凌小宁试图让王庆明白,新系统的“里程碑”要在2月28日确立。“里程碑”是微软员工对于项目成果的一种表述,其含义有点像“死亡线”。不过,它是“阶段性成果”,而非最后的结局。语音识别项目的中文部分,都将在希格玛大厦完成。然而在微软公司的语音系统已经相当成熟的时候,研究院这边的中文部分才刚刚起步。
所以,王庆必须在很短的时间里了解项目的全部过程以及核心技术,还要在中国研究院和美国总部之间,充当528一个“协调人”的角色,让中国的研究进度迅速跟上美国产品开发部门的步伐。
所幸王庆对语音技术并不生疏,他在摩托罗拉的时候就是这方面的中坚力量,也能了解国际商用机器公司和英特尔公司在这个领域的研究水平。他立即就发现,微软研究院在这个领域的研究水准,并不比另外三家大公司更高。令人惊讶的是,这里进展神速,仅仅才过去半年,其水平已经相当于摩托罗拉的“3年研究”。不过,和国际商用机器公司的“30年研究”相比,毕竟还差一步。
在以后的4个星期当中,王庆在太平洋两岸的希格玛大厦和雷德蒙总部之间频繁往复。他的工作在微软公司从无先例。微软的软件一向是由美国总部的18000人开发,然后分散到世界各地,由当地人员酌情从事产品本地化的工作。如今这个项目却是在中国开发出来,再与美国总部的产品融汇,这在技术上具有开创的含义,在微软公司的软件制作历史上也是新的一页。
现代技术的应用,已使距离不再成为人们交流的障碍,甚至同一产品的不同部分,也能够在相隔万里的地529方来制作。可是,研究院现在面临的情况要复杂得多。
软件的生产不同于一般制造业。一辆汽车或者一台电视,都是在所有配件全都做好之后再来总装配,甚至电脑的硬件部分也是这样完成的。惟有电脑软件不行。它的每一个部分,必须在产生过程中,随时随地和其他部分衔接配合,在整合的工程中改进“零件”,又在改善了“零件”之后再来整合。如此交替反覆数百次甚至数千次,方能成型。比如微软公司的“视窗NT”,源码多至5000万行。“视窗98”小一些,也有大约2000万行。此类大型软件由数千个“零件”所组成。在这些零件形成的过程中,几乎每天都要进行一次“总装配”,如果装配的档案记录为“2195”,这就表明其装配整合的工作累计已有2195次。
软件制作的这种性质,使距离成了问题。这一边,希格玛大厦每天都要将自己的数十万行程序加以完善,每一天都要将完善的结果与大洋彼岸的总部系统加以匹配,再拿回这一边来测试。这一切,可以通过微软公司的专用网线来实现。尽管如此,我们还是可以想像,浩瀚的太平洋给王庆带来多大麻烦。
530“臭虫档案”
大多数软件公司今天对于“臭虫”的理解,已与过去大不相同。过去人们觉得这是一件不得了的事情,现在则觉得这是一个正常的现象。
2000年元旦过后,王庆又一次离开北京来到美国,住进距离微软总部不到500米的哈利泰吉花园公寓。这回,他至少要在这里住到2月28日了。在这里,人们都叫他的英文名字“泰瑞”,其身份是项目经理。这表明,他不仅代表微软中国研究院,而且要代表这个项目。他处在协调中美两个研究院的位置上:召集会议,检查进度,洞悉项目在每一个阶段的进展以及障碍,收集所有正常的和意外的情况,向太平洋两岸的任何一方通报。
雷德蒙的冬季气候温和而湿润,西南边不远处,瑞尼尔山白雪皑皑,但山下却是绿草如茵。阴雨绵绵无尽,偶尔云开日出,天空湛蓝,日月俱澄澈。每天早晨,王庆从哈利泰吉花园公寓出来,一边呼吸着新鲜空气和红杉树散发的清香,一边走上第40大街,再拐一个弯,就到了微软总部115楼3319号房间--他的临时办公室。
微软公司的中枢服务器已将前一天诞生的产品版本准备531就绪。他上班后的第一件事情,就是在电脑上找到它。
准确地说,这是一个半成品。王庆和微软公司所有开发人员,都把它叫做“Build”。这个词可直译为“建造”,本身是一个动词,在这里却具有名词的含义。简单地说,建筑一个软件有如建筑一个楼房。但要更加准确地理解这个词的含义,就不能不涉及微软公司内部的软件制作程序。
微软的软件产品通常具有极大规模,大型产品小组通常集中着数千人的智慧和精力。每一个人都拥有自己独立的空间来想像和创造,但所有人的发明最终须结合在一起,互相融合而不致互相抵触,这就是所谓“整合”
的工程。如果坐视开发人员各自为政,尽情发挥,对相互不能衔接甚至冲突的环节不加过问,就必然会形成一大堆互不相关的“零件”。你要把一个飞机发动机装在汽车上,就算那东西再好也必然导致失败。由于这样的理由,在微软公司内部,属于个人创造的部分越是精彩纷呈,整合的工作也就越是频繁严谨。到了一个产品将要定型的最后阶段,这种整合就必须每天进行。
“整合”的工作并非人工完成,而是由服务器中枢532自动实现。其具体的操作方法是:所有开发人员随时将自己完成的工作通过网络传送到服务器上,无论是几十人开发的小产品,还是几千人开发的大产品,均须遵循此项规则,一丝不苟。服务器依靠自己内部的工具程序,每天将所有人的工作汇聚在一起,自动加以整合,“建造”
为一个新的版本。公司内部各个产品小组,大体上每天都会提交一个新版,但却无法做到让每一个新版都处在稳定状态,也无法确保每一天的工作都能同别的小组相互配合。他们只需将其中比较稳定的版本标定存档,供其他小组使用,自己则可以继续往前走。这样,每个组都在奋力向前,又都在自己的身后留下一系列“新版”。
一望而知,这中间的要点是所有参与者必须同步前行。
你盯着别人,别人也会看着你。如果大家都在前进,只有一个人停滞不前,那就不仅是落后,而且还会造成整体系统失去协调。各个产品小组的“新版”则需不断整合在一起,以供检测小组检验。服务器中枢大楼中一批功能强大的电脑,则在每天将全部“新版”拷贝,并且转移到安全的地方,以防失火、失窃一类不测事件。
在电脑屏幕上显出期待着的“新版”程序之后,王533庆便下意识地查找中文部分是否已被整合在其中,又是否产生了新的麻烦。
检测在微软公司的软件制作过程中乃是极为重要的一环。同一般制造业中的情形不同,微软公司的软件测试和开发制作是同步进行的,并不像人们通常想像的,等到产品完成之后再来检测,而是伴随在产品制作的全部过程中。检测人员数量巨大,与研究开发人员的比例,大致为1∶1。
北京方面的检测工作,由希格玛大厦第六层的微软研发中心负责。微软中国研究院的这套语音识别程序,每天必须检测的内容超过400种。在整个开发过程中,只有极少时候能够一帆风顺。在大多数情况下,检测人员总会抓出很多“臭虫”。消灭“臭虫”的具体方法是,发现者首先要有办法使“臭虫”能够再现,而且能够记录其出现的时间、条件和表现方式。当另外的人使用同样办法可以让“臭虫”再现的时候,就证明检测的结论有效。但并非所有的“臭虫”都在必须消灭之列。研究人员通常是依据“臭虫”对软件的损害程度,将其分成四个“优先等级”。“最高等级”的“臭虫”一经发现,534则直接责任者必须在彻底解决问题之后方能离开办公室。对于大多数并不会造成后果的“臭虫”则有可能不予理睬,甚至永远留在产品中。
王庆在太平洋两岸不断传递这套语音系统的两个月中,检测人员总计发现了2500个以上的“臭虫”。其中有重要影响因而必须消灭的,则有几十个。每一个“臭虫”都有一个独立的编号,并且详细记载其生存周期,也即它的出生、发展和死亡,消灭它的方法,以及在消灭的过程中是否产生了新的问题,是为“臭虫档案”,以供日后人们在类似问题面前可以参照,又可在产品完成之后,对“臭虫”数量、消灭了多少、还有多少隐藏在产品中,一一加以统计。“臭虫”的“平均寿命天数”,乃是判断开发人员工作质量的标准之一。对于那些必须加以消灭的“臭虫”,则由研究院的开发人员找出程序源码中的错漏,修正之后由检测人员再行检测,直至确认“臭虫”的确已经死亡。
不过,很多时候,在消灭一个“臭虫”的同时,又会产生更多的“臭虫”。美国软件业中公认所谓“程序的正确性不可证明”,就是说的这种情况。有些软件,必须535做到绝对无误,比如用在卫星航天方面的软件,就是这样,但通常在一个庞大的个人计算机操作系统中,你不论怎样努力,也不可能实现“零臭虫”。所以微软公司对于自己产品的要求,叫做“足够好”,而不是“绝对好”。
王庆说:“你要把视窗2000做得一个‘臭虫’都没有,100年也做不到。只要万分之一的‘不好’不致影响万分之九千九百九十九的‘好’,就算成功。”这样的道理固然可以成立,但就算你真的做到只有“万分之一不好”,你几千万行源码,也就有了几千个“臭虫”。有人说微软产品的错误无数。看来也不是全无根据。
2月28日的“里程碑”之日越来越近。王庆觉得,语音产品小组的节奏明显加快。经理已经宣布,所有新的东西一律不许再加入产品,所有人员全力检测和消灭“臭虫”。那些天,王庆每天早晨打开电脑,都会看到一大片“红色的小方块”,分外刺目。一个红方块就意味着检测人员又发现了一个“臭虫”。测试人员和开发人员通常会发生矛盾,这个说发现了“臭虫”,那个却不承认是毛病,所以,颜色只是一个参考,并不具有绝对的意味。
536不过,如果哪个小组出现一片“红色”,小组的全体员工还是会紧张起来,压力也在无形中增加。当一个“臭虫”
正在被消灭的过程时,那块红色就会变成黄色。就算修改者确认自己已经把臭虫消灭,也不能随意改变其颜色,而须请最初发现“臭虫”的人来检测,直到检测通过,黄色变成绿色。你如果不能在当天工作的时间把所有“红色”改变成绿色,那么晚上就难免要加班了。2月的最后一个星期,每天夜幕降临的时候,雷德蒙总部语音小组的员工,都不能回家,整个大楼灯火通明,“新版本”不是一天发出一个,而是每隔半个小时就发出一个。它向全体员工昭示,已经解决了多少“臭虫”,但还有许多“臭虫”仍在横行。
王庆的任务仍是保证中文部分能够跟上整体结