测试是不是应该太强

昨天下午到旁边一幢楼微软Live研发中心去,和以mvm聊测试(他的办公室里面放着从印度带回来的沉重的板球拍)。聊过以后,发现现在微软的测试做的那叫一个到位。大量的测试人员,每天跑上万个测试案例,而且都是代码自动完成,人一群一群的,测试机一排一排的。。。

这倒是和上周三和阳萌聊到的Google的感觉截然相反。Google好像还是直接扔到服务器上去跑的居多,就像早期的微软一样。

嘿嘿。这真有趣了。

微软早期一直是以不重视测试出名的,比起70年代到80年代的DEC,IBM来说,微软几乎就是不做测试的。微软里面开发和测试的比例,也是和IBM合作了以后才从10比1提高到n比一,n<5。 现在,反而是微软的测试越来越强了,在业界里面很值得称道了。 但看问题总有不同的角度。是不是测试越强越好呢?如果不计成本,不计发布速度,或许是对的。如果加入了那两个因素,倒不见得要走极端了。测试永远是被钱和需求限制的。一味的加强,并不总是顺理成章的正确。 庄子说的,“人之生也柔弱,其死也坚强。草木之生也柔脆,其死也枯槁。故坚强者死之徒,柔弱者生之徒。是以兵强则灭,木强则折。强大处下,柔弱处上。” 我们让自己强大的过程,要小心,保留柔软的特性;在测试方面强大一段时间,不妨在成本上面花点功夫,再过一段在速度上面提升一点,保持几个方面都均衡发展的状态,哪一项都不要太过分,倒是蛮合乎自然的安排的。 后注:微软曾经很多东西乱七八糟的,就是混乱状态(我最欣赏的状态),比如谁都可以看到所有源代码等等(和现在的Google一样)。后来很多人梦想着有完善的管理。结果花了十年时间,一代人的努力,终于管理跟上了。照一照镜子,却突然发现:“咦?镜子里不是一个IBM吗?”

关于歧视

最近经常有些琐碎的想法,与其等想楚正襟危坐的写篇长的文章,不如随手记下来。不成体系,望海涵。今天想说歧视,这是我想了很久的一个问题。

到底什么是歧视?

BBS里面有些固定的种类的帖子会火,比如:北京人好还是上海人好?

其实这种帖子的讨论双方,不看也罢,更大可不必或者引经据典,或者脸红脖子粗的争吵,因为这是本身就是一个带有严重歧视成分的命题。无论哪方获胜,得出的结论都是源自同一种逻辑“人的好坏,是可以由他/她出生,或者生活的城市决定的”。

这个时候,马丁路德金在《我有一个梦想》的演讲中或许可以帮助我们。

“我梦想有一天,我的四个孩子将在一个不是以他们的肤色,而是以他们的品格优劣来评价他们的国度里生活。”

我也希望我们的世界也并不是因为他是上海人,河南人或者北京人来判断他品格的优劣。

歧视很难辨别,也很难把握

基本上说,因为肤色而决定是否录用一个人是典型的歧视,但是如果在正剧里面物色秦始皇的扮演者,挑剔肤色就不在歧视的范畴。如果应聘者因为腿有些残疾而不被考虑录取为接线员,是不是歧视?而如果是一个短跑运动队的招聘,同样的情况不被考虑是不是歧视?我认为前者是,而后者不是。对于宗教信仰,对于性别,对于肤色,对于籍贯等等的不同而区别对待,并非都是歧视,而仅仅跟当下讨论的话题有关。

所以经过很多此论证,我自己对于歧视的定义式:

根据与讨论话题无关的因素来做判断思想本身成为歧视

感觉到更多歧视的人,多是有歧视思想的人

几年前,曾经和大哥谈到过歧视,他的结论是:“在国外,感觉被歧视的,多是在国内歧视别人的”。这论断或许失之片面,但的确是经常看到的场景。

以己度人是常理。我们总用自己的逻辑猜测别人的逻辑。很久以前见到有人超市结账时插队,被后面的人阻止。结果那个人大吵,认为在上海受到了歧视,并摆出外地人对上海的贡献来作鸣不平。以我看,真正有歧视思想的恰恰是他本人,因为当周围的人或许是基于他的行为,而不是他的籍贯来做出对一个人的判断的时候,他却把一个不相关的因素强行拉进来,这就是歧视。

有的人歧视日本人,有的人歧视有钱人,有的人歧视河南人,有的人歧视上海人。。。我们每天都在生活在歧视中间,作为歧视者和被歧视者生存。

歧视的根源

歧视其实是可以带来一些便利的。比如说,来自某些省份的产品从历史统计数据上说,的确质量问题比例偏高;当有某些属性的人(性别,宗教,是否有孩子,是否受过高等教育,是否。。。。),的确在统计学上面具有另外一个属性的可能性偏高。通过对于历史上的统计来判断这个人,从而直接从简历里面不通过面试而直接删除的确是一个节省时间的做法,但我们作为歧视者享有的便利,是以牺牲被评估者的利益为代价的。

当然,对于这种推断应该有个合理的限度。比如一个人本证明偷了三次东西,依据此人的历史做出他未来有可能偷东西,虽然严格意义上可以有0.0001%的歧视成分(小偷为什么不能改邪归正?),但我对这种“歧视”的接受度远远高于那些对于自己没有办法做出选择而出现的历史。仅仅因为一个人是哪里人,或者他/她的父母来做出对于一个个体的判断,无论这种判断听起来如何有道理,如何合情理,我自己的归类方法,都把它归为歧视的一种。

希望通过自己的思辨,让自己为这个世界消除一些歧视做些努力。

情人节的玫瑰

从去年5月份起,开始在窗外的院子里种玫瑰。最近的一个月,终于开花,每天早上睁开眼睛就可以看到。

我已经对Wendy唠叨了一个月,说情人节我会送给她我自己种玫瑰,虽然自知我种的这株“卖相”不怎么样,远比不上当天外面卖的“专业”玫瑰。同时,我坚持把这个同属蔷薇科蔷薇属的常绿灌木叫做玫瑰,而更多人一直称其为月季。老实说,我种的,的确是月季,只不过情人节送月季听起来不是那么一回事,所以一直嘴硬。

前几天过情人节,晚上回来抄起剪刀,把盘算的一个多月的玫瑰花剪下来,送给老婆。

结果,看着我们手里的玫瑰花,我们忽然都有些后悔。玫瑰花就这样死了,罪过罪过,觉得挺对不起它的。窗前也总觉得少了些什么。

已经能够体验到的,其实就是拥有的;如果一定要用买下来,拿过来,抓在手里等等常规的方法“拥有”它,获得的不见得是自己想要的。

站在公司的肩膀上

今天是鼠年第一天上班,心轻气爽,上海的天气少有的好,天空少有的蓝。

中午从MountView过来的Google做PageRank算法的朋友阳萌,和大家一起去吃水饺。传统行业的确比互联网行业传统,就算我们已经开始上班,餐馆还坚守者初八上班的传统,害得我们绕交大一周才找到一家开着的馆子。在吃饭期间,我们不可避免的聊起了Google,当然还有微软。

基础设施

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

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

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

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

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

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

放大个人的力量

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

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

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

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

做加法还是做乘法的公司

一个好的公司,不能是做加法的公司。不是说一个人可以产生一块钱,是个人可以产生十块钱的公司。一个部门产生一块钱,加一个新的部门产生两块钱。

好的公司一定是做乘法的公司。4个人可以产生4块钱,5个人应该就可产生8块钱。这个乘法的基础,就是大家都在做基础设施,自己站在别人的肩膀上,也让别人站在自己的肩膀上。

微软和Google的不同

但很显然,微软和Google支持员工的基础设施还是有很明显的区别的。

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

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

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

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

给我们的启示

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

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

师北宸翻译:中国的户口制度

译言师北宸先生帮忙把我一年半以前写的篇关于户口制度的英文blog翻译成了中文,发表在译言上面,还专门写信告知。非常感谢,也顺便把译文转载过来。

值得说明的是,这篇blog的很多的细节在自己人看来就不是那么准确,因为本文原意是为了向对中国一窍不通的外国人介绍一下中国的情况,所以这个精度倒也应该够用了。还有,自己些点英文的破文章还让人翻译成中文,真是汗颜,非常不好意思。

原作者: 王建硕 译者: 师北宸 (Blog) 发表时间:11小时57分钟前 原文链接

译者:因为看到未来三到五年内可能取消户口制度,我在网上找相关的资料,搜到王建硕先生的这篇文章,结合他自己的亲身经历谈中国的户口制度,也算是对户口制度的一个简单介绍。现在翻译出来和大家分享一下,如果有感兴趣的朋友能再翻译一些老外对户口制度的亲身经历的文章发上来就更好了。希望这些信息能引起大家的关注,进而推动户籍制度的改革。哪怕力量微小,也值得一做。
update:本文已经获得王建硕先生的授权。

原文请见:HukouSystem in China

当身处现有体制之内的时候,你很难认识到体制有什么奇怪的,但是当你有机会与其他国家的人讨论的时候,你就会发现其中的巨大差距了。

今晚我和好朋友一起聊天,聊得很尽兴,我们也谈到了中国的居住许可制度(户口制度)。说实话,在我亲口解释之前我并不觉得这有什么奇怪的。但是说完之后,我觉得户口制度根本毫无道理,而且从我自己的嘴里说出来的时候,我也很吃惊。那下面我来说说什么是户口制度。

什么是户口制度?

从根本上说,户口是政府给提供给公民的居住许可。它的发放以家庭为基础。每一个家庭都有一个记录着家庭成员信息的户口本,这些信息包括姓名、出生日期、相互间的亲缘关系、婚姻状况(如果已婚,要注明配偶是谁)、地址和你所在的单位…

在中国,每个人都有一个户口。

1980年以前的户口状况

在1980年以前,户口极其重要。人们被限制在出生的一小块地方(户口所在地),直到死亡,他们也不能迁徙。他们可以出行,但是在外地他们没有办法得到工作,不能享受公共服务、教育甚至买不到粮食。这就像带着B-1签证(商业)[注] 去其他地方旅行——你可以参观,但是不能在那里工作(这是非法的),不能去学校(没有学校会接收),不能去医院(没有户口,医院不会对你进行治疗)。至于粮食,在那个年代,无论你有多少钱都买不到粮食。你需要用粮票(兑换粮食的货币)和钱一起使用才能买到粮食。粮票只在你的户口所在地的政府发行,所以,基本上如果有粮票的话,你可以生活一段时间,但不会不长(尤其是考虑到那些由某个省或某个市发行的粮票,不能在其他省份或者城市使用)。

因此,在那个年代,如果没有户口的话,人们基本上不能迁徙。有极少数的人会在国内迁徙,但是他们的生存状况几乎就像美国的非法移民一样。

把户口从一个地方迁移到另外一个地方是非常困难的——就像获得美国绿卡一样难。从农村迁移到城市甚至更加困难——户口主要分两种,一种是农村户口,另一种是城镇户口。从农村迁移到农村容易,但是从农村迁移到城市很难——需要花费数年时间。而且仅在非常少的情况下可以“农转非”:1)你考上一所在某个城市的大学,或者2)你的配偶是城里人。这两种方式,你都要等很长时间。每年户口发放都有名额限制,所以你得和别人抢才能拿到户口名额。

1980年以后的户口状况

1980年以后,很多事情都发生了很大的变化。实际上,户口的强制性没有以前那么强了。变化开始于不再需要凭票购粮——有钱就行。对工作来说,有没有户口还是有巨大的差别(到今天依然如此),但是已经可以迁徙了。

这使许多人离开自己的土地到城市去寻找工作——劳动密集型工作——成为了可能。最典型的就是纺织厂的工人、建筑(原文为consitruction,查无此词,据此判断有可能是作者笔误,将construction写成了consitruction,因此译为“建筑”——译者注)工人和保姆。但是,这些农民工的子女的教育问题仍旧是一个大问题。他们不能像其他孩子一样接受教育,因此在某些地方,专门为这些没有户口的孩子建立了学校(民工子弟小学)。从个人感情上讲,我觉得这甚至比当年将“黑人和白人分别对待”的政策还要令人难以接受。

现状

现在,户口不再扮演像以前那样重要的角色了,但是有户口和没户口的人还是有一些差别。我举几个方面为例:

1)医疗保险。比如说,住在上海但没有上海户口的外地人不能享受社会医疗保险。如果生病了,他/她得自掏腰包付医疗费。不过这倒不是一笔很大的开支,因为现在已经有越来越多的商业保险可以保障他们得到医疗保险。

2)工作。许多工作要求有上海户口。这其实是一种歧视,但是因为政策上的原因很多公司老板必须得这么做。

3)安全。广州是一个极端的例子。我几年前去了一趟广州,朋友跟我说一定要随时随身携带身份证。警察可以随时在街上拦下一个人来检查他/她的身份证。如果他们身份证上的地址不是广州,而且他/她又没有临时居住许可(即“暂住证”—译者注)的话,警察有权把他/她扣押并遣返原住地。很多城市都是这么干的。这个政策直到2003年才被取消,因为那时一个叫孙志刚的人在扣押期间被打死了。

户口和我的故事

户口对我的影响很大。我从没上过幼儿园,因为在我5岁的时候我搬到城市去,但是没有得到户口。为了拿到户口花了很长时间,所以幼儿园拒绝接收我。一直到7岁拿到户口之前我只能呆在家里。如果那时候我没有拿到户口的话,我甚至不能上小学。这是一个真实的故事。

从小学到高中毕业(1982-1995),我的户口在洛阳。当我考上上海交通大学之后,我的户口也临时性的迁到了上海交大,户口在学校放了四年。我毕业的时候,我的户口又有了危险,我必须找一个当地的高科技工作,并能在有限的户口名额中拿到一个名额才行。标准非常高——你必须在特定的专业上,有好的档案记录,在特定的地区被雇佣。这完全跟加拿大或美国的移民一样。再回到我的故事,最后我拿到了上海户口。就这样,我把户口从学校转到了上海的另一个地方(我甚至都忘了那地方叫什么了)。直到三年后我买了自己的公寓,才得以将户口从那个地方转到我的公寓地址。这是一段很长的故事,我现在的居住许可是在上海,在我自己的公寓里。

如果我去北京,也会有一些麻烦。根据相关政策,我得拿到北京的暂住证。“暂住证”制度是原有户籍制度的一个大进步,至少我可以有材料证明我是合法的呆在这个城市。(相比于以前,是没办法做到这点的)。尽管如此,这仍是恶法。人们也不禁要问:“我为什么要‘暂时’的住在我自己的国家里”?

户口制度带来的挑战

虽然现在的户口制度被普遍认为是一项不公平和不人道的制度,但我也能看到如果取消这项制度,将带来很大的挑战。政府给人们不同的户口,人们享受的权益也不同,尤其是城市与农村之间更明显。如果取消户口制度,我相信在短时期内会产生混乱——大量的农民从农村涌入城市,以及从小城市涌向大城市。如果处理不当,会引发很大的问题。这就像如果世界上所有的国界都开放,任何人都可以在一夜之内自由的从一个国家迁移到另外一个国家,你可以想象一下会出现什么情况。

如何解决这个历史问题将是这一代中国人面临的一个很大的挑战。

P.S. 当我们讨论商业的时候,在历史上,中国人并不像美国人一样那么频繁的迁徙,所以买房卖房的需求并没有那么大。可能大家会问:“为什么?为什么人们不会迁徙”。我说:“哎,那就说来话长了。”你看这一整段历史,非常长,不是吗?:-)
P.S.2. 我今晚会开车到住在圣弗朗西斯科的朋友的家里,有51英里远。这在中国难以想象——到82公里远的地方吃顿晚饭然后当晚再回来?太疯狂了。

—————-
顺便帮老冒做个广告,他正准备找到一些中国最优秀的程序员到都柏林的微软去工作,感兴趣的话,可以看看这里。不过注意,可是最优秀的。。。

长了一颗牙

则两天觉得最里面很疼,牵连的右边的脸和眼睛也有些痛。才发现,自己居然又长了一颗牙,别人叫做智齿的那一颗。

这几个礼拜,总是趴在床上,让逸凡不情愿的张开小嘴巴,探头进去张望,看看他有没有长牙,结果,小家伙的牙一颗没有,自己反而长出了牙。

小玉说,“可以和儿子一起长牙,这样的机会可不多啊!”。

一脸严肃状:“小宝,我的牙长好了,你的呢?”

草根站上大会

下午应晨昀邀请,参加草根站长大会。晨昀是在97年做火速的时候就认识的朋友,掐指一算,我们已经认识11年了。衣不如新,友不如故,所以晨昀的活动,我一般一定捧场。印象比较 神的两句话:

陈曦

我告诉你,从这里出发,要先经过红海,才能到达蓝海

王志东

接入为王,到内容为王,再到应用为王

呵呵。很久没有参加聚会,也很就没有更新中文的blog了。顺祝大家新年好。

附:最近几天看Google Earth上面有几个从空中看比较奇怪的建筑。大家看看。

image

image

建硕 – 失败 = ?

昨天没有带手机。让中国移动把我的所有电话都转移了。

今天拿到手机却忘了把转移取消,反而错过了电话。

跟Wendy说这件事,然后问了她一个算式:

建硕 – 失败 = ?

Wendy回答:

0

我们两个都乐了。这就是我要说的。

YLF归来

上个礼拜在南京几天,参加美中关系全国委员会办的杰出青年论坛。感谢海松,亦波的推荐,以及百丽娟小姐的支持,有幸成为2007年度中国的六个代表之一,参加难得的一次聚会。这个论坛每两年一届,奇数年在中国举行,偶数年在美国。2007年,我们在南京,这是这个论坛的第六届。

很难得,认识很多好朋友,大家在一起没日没夜的混了几天,成为很好的朋友。其中美国的有一位兄弟是宇航员,就要飞到遥远的太空去。如果不认识Chris,我可能不会关心前天的Altantis号航天飞机的发射(以及再次推迟发射),因为在可以听到他在飞行控制中心的声音。类似的还有June,昨天纽约市长访问北京的时候,我更关心的是看到她作为翻译在照片上面;再有就是看到伊拉克的新闻,就会更加关心,因为有一个美国空军的朋友从南京回去就会到伊拉克去。中方还有像朱彤,许志永,喻荣军,还有袁鸣。。。这些曾经久闻大名很久的朋友,总算可以有机会在酒吧里面好好聊一聊。还有一些一些很有成就的朋友把握带进一些从来不会接触到的领域,比如George,花了挺多时间教我一些指挥的基础,他是Miller Theatre的著名指挥家。。。

总之,这几天的时间很难得,也让我觉得离这个世界上的很多问题很近,比如中美关系,伊拉克问题,汇率问题,还有一些新的领域,比如太空科技,军事,音乐,外交,教育,建筑,法律等等。。。

再次感谢在一起共同度过很难忘的时光的各位YLF Fellow,这个世界其实很大,有非常多的领域,每个领域都有很多杰出的人在终身努力,而视野就决定了我们是不是意识到这些人,以及这些努力的存在。

期待2008年在美国再见。

《旅行的艺术》是本好书