所以战后美国很快就通过了宪法第二十二修正案,明确规定 “No person shall be elected to the office of the President more than twice”。说来也很神奇,从1787年费城会议到二战后通过第二十二修正案之间长达一个半世纪的时间里,美国宪法只规定了每届总统的任期是四年,却没有规定最多可以做几届。法律条文如此不严谨,连这么基本这么重要的条款都没有,我看美国压根就不是一个法治国家。
H-1B签证也并都是计算机和IT行业的,虽然有超过一半的H-1B是在IT行业的(数据来源:https://www.myvisajobs.com/Reports/2022-H1B-Visa-Category.aspx,根据H1B Visa NAICS Industry来分,计算机和电子通信相关行业的加起来占了55%)。但话又说回来,也有不少H-1B是后来转的码工。
为啥就不能像中国那样,学校放假时间是统一的呢?虽然中国的省和省之间也不统一,但至少每个省的中小学寒暑假时间是统一的。而我们这儿别说是一个州了,就连一个county里的各个学区(school district)的放假时间都是不一样的。我家哥哥的学校是跟着Bellevue School District走的,妹妹的学校是跟着Lake Washington School District的时间走的,于是就错开了。
戴口罩这件事情上,美国就是一盘散沙,各州各行其是、不听中央政府的统一指挥、没有统一行动。从疫情开始至今,美国上上下下一直在为戴口罩这件事吵个不停:是不是一定要戴口罩(shall there be a mask mandate)、可不可以要求一定要戴口罩(is a mask mandate violating individual rights)、政府是否可以要求一定要戴口罩(are state-issued mask mandates constitutional)、政府是否可以禁止对戴口罩的强制要求(are state-issued mask mandate ban constitutional) 。
美国宪法第十修正案的全文如下:The powers not delegated to the United States by the Constitution, nor prohibited by it to the States, are reserved to the States respectively, or to the people. 翻译成中文就是:“宪法未授予合众国、也未禁止各州行使的权力,由各州各自保留,或由人民保留 ”。
最近还有一件关于州权的大事情。今年美国司法界最受关注的可能就是最高法院对 Dobbs v. Jackson Women’s Health Organization 一案的审理结果。此案关系到最高法是否会推翻 Roe v. Wade 的判决。有一种观点认为,Roe v. Wade 的本质不是堕胎权,而是州权。他们认为各州有权通过自己的立法程序制定关于堕胎的法律,联邦政府[注1]无权干涉。
堕胎权也应该是同样的:let’s say 堕胎是受到美国宪法保护的一个基本权利,那么就像对持枪权一样,联邦政府可以对堕胎权做一些基本的兜底,比如可以画一条底线,规定不可以对6周(或者8周、12周)以内的堕胎进行任何限制。然后更多的细则就留给各州自己,只要那条线是画在联邦政府的那条底线之上,具体到底是画在6周(得克萨斯)、15周(密西西比、亚利桑那、佛罗里达)还是24周(viability),那就是每个州自己的事情了。《纽约时报》今年有篇文章说美国有超过90%的堕胎是发生在13周以内的,所以我觉得密西西比州的“15周”其实算是合理的。
我是后来看了 Miracle at Philadelphia 和 The Federalist Papers 这两本书改变了认知。Miracle at Philadelphia 在讲费城会议之前先介绍了一些历史背景。美国的宪法是迭代出来的。Articles of Confederation是第一版,不到十年就出了各种问题,所以到了1787年,先贤们觉得有必要迭代一下。那次迭代的产物就是今天的美国宪法。
The Federalist Papers 更是一本神书,它的中文名字是《联邦党人文集》。如果我要去坐三个月的游轮,只能带一本书,我会带它。看过《联邦党人文集》以后就明白了,美国宪法能存活那么久,成为当今世界上第二最古老的宪法(仅次于圣马力诺),不是偶然的。从《联邦党人文集》可以看出,这些Founding Fathers对从伯里克利时代开始的两千多年的成功和失败的经验有很渊博的知识,对各种政治制度和人性有很深的洞察。他们制定美国宪法,不是拍脑袋的。
对于这些对回滚的细则问题,我心里其实一概不想回答。说到底,这些细则是定义不完的。与其不断的细化规则,还不如就搞简单一点。具体到每一个case,到底是违反了还是没有违反,其实大家的认知不会差太远。我说,下次出了故障,是不是“可回滚”没做到,I know it when I see it。
“I know it when I see it” 这句话是一位美国最高法院大法官Potter Stewart说的。1964年,在审理一桩关于言论自由和色情电影的案件时候,他说了这么一段话:
I shall not today attempt further to define the kinds of material I understand to be embraced within that shorthand description [“hard-core pornography”], and perhaps I could never succeed in intelligibly doing so. But I know it when I see it, and the motion picture involved in this case is not that.
另一方面,从管理者角度说,管理者要抵抗住自己内心的本能,也要抵抗住来自他人的压力,避免试图通过细化规则来解决理解和执行中的偏差。有几次我拒绝细化规则,我只提供一些具体案例,别人再问我就说“I know it when I see it”,这时就有人给我扣帽子,说我不是“法治”,是“人治”。这样的帽子,我每次都是拿下来扔地上的。
哥哥中间也放弃过。之前有一次在Silver Fir Express,从Outback下来,滑了两趟他放弃了,说要回车上换ski。那天我带他去换了,因为我很能理解那种摔到信心全无的感觉。不过哥哥过几天又继续练了,就觉得Outback没啥难的了。今年哥哥把单板学会了,我和朱苹果看着挺高兴的,平时都羡慕别家娃是自推娃,现在我家的娃终于也有一些东西会自己推自己了。
这次在Whistler滑的时候路过了很多以前做过心理建设的地方,回忆起最初几年来Whistler的情景。那时候即便是Blackcomb那条easiest way down的盘山绿道都把我们滑得累趴。后来滑Cruiser等蓝道,每滑一个坡就觉得腿酸,要休息一下。当时看到身边有些厉害的人直接风驰电掣般从上面下来,扬起一阵雪,绝尘而去,那时候就想,我以后能有这样的水平就好了。现在我们自己也是这么滑的了。
古人还说,笑贫不笑娼。这是一种典型的功效主义:the end justifies the mean。“结果即正义”在当代的著名例子就是“不管是黑猫还是白猫,抓到耗子就是好猫”。辩证法说,事物有两面。这句话,在当时那个时代环境下,当然是对的、是非常有意义的。不过,不幸的是,这句话以及这句话后来带来的效果,虽然帮助中国社会摆脱了贫困,却进一步加强了中国社会的功效主义倾向。
几天前,北京冬奥会的记者会上,有记者问谷爱凌:”Are you still a US citizen?” 谷爱凌讲了一大段话,没有回答这个问题。该记者又追问了一遍,谷爱凌的回答是:”I am just as American as I am Chinese. I am an American when I am in the US and I am Chinese when I am in China.”
如果有人觉得她没有正面回答这个问题是因为有什么见不得人的秘密,这种观点我是反对的。当年川普选总统,很多人要他公开税表,因为过去几十年里已经形成了一个不成文的惯例,总统候选人都会公开自己的税表。川普拒绝提供税表,很多人就质疑:what are you hiding?
我认为这个质疑是不成立的。
我们经常在美国电影电视里看到 “take the fifth”,意思就是被告行使美国宪法第五修正案赋予自己的权利,人不可被迫自证其罪。我以前也很疑惑,当一个被告说 “take the fifth”,难道不就说明觉得自己是有罪的吗?因为,如果相信自己是清白的,那就不怕自证其罪咯。但后来我渐渐明白了,一定要纠正自己的直觉,不可以觉得 “take the fifth” 就相当于是 have something to hide。
同样的道理,拒绝提供税表和拒绝回答“你是美国公民吗”也不可以被解读为 they have something to hide。
昨天烧晚饭的时候,我注意到包装盒上的烹饪说明里有个很有意思的事情:三种烹饪方法的第一步是一模一样的,都是 “If frozen, defrost in refrigerator overnight”:
同样的内容重复了三遍,这在不少程序员的眼里是很糟糕的写法。遇到这种重复的内容,而且已经满足了Rule of Three,他们一定会要把它提取出来,放到一个公共的地方。如果让他们来重构这个烹饪说明,他们会增加一个公共的 “准备工作” 模块,把 “If frozen, defrost in refrigerator overnight” 这句话放到 “准备工作” 里:
他们这么做的理由是:
这个烹饪说明显得更简洁了
这个烹饪说明更容易维护,下次如果要修改 “If frozen, defrost in refrigerator overnight”这句话,比如把它改成 “If frozen, defrost in refrigerator for 12 hours or more”,就只需要修改1个地方,而不是3个地方。
重复有重复的好处。我在蚂蚁的时候,经常给周围的人转发一篇题为《Write code that is easy to delete》的文章。这篇文章有一个核心观点:增加重复可以减少依赖。减少依赖可以降低风险和减少工作量。如果我的代码在另外N个地方被引用了,下次我修改我的代码的时候就不得不加倍小心、三思而行,生怕我的改动导致别人的代码无法正常工作。
如今听说过“惠普之道”的人,估计都是至少四十岁以上的了。我刚毕业那几年,大家都在说“惠普之道”。《惠普之道》是一本九十年代的书,英文书名叫”The HP Way“(我估计 “Aliway” 也是从 “The HP Way” 来的)。那时候惠普在大家眼里是一个成功的公司,Carly Fiorina是那时候最火的CEO,江湖地位堪比今天的Elon Musk。
二十年过去了,现在很少听到有人讲“惠普之道”了,我甚至怀疑如今刚毕业的大学生可能连惠普这个公司都没听到过。现在大家都在学谷歌,因为谷歌是一家成功的公司。其实,谷歌成功已经有很多年了,只不过出圈需要一个过程。以前谷歌还只在圈内红火的时候,大家已经在学了,大家都在说 20% time 怎么怎么好,怎么怎么培育创新。
早上填了一个公司内部的 developer productivity 满意度调查。这种调查在我以前公司也经常搞,我相信其他公司也有。今天这个调查我基本上每一项填的都是 Very Satisfied 或者 Satisfied。其实现在每天都能遇到各种问题,各种不完善的地方。但我也没觉得不满意,因为这样那样的问题、这样那样的不完善的地方都很正常,在中美两国的各个大厂小厂都普遍存在。就算是几家整体上做的很好的公司,到具体的团队也一样有很多问题。有问题就一点点搞呗。
满意度、幸福感,很大程度上是基于期望的。我上周四买了两顶帽子一件衣服,这周一收到邮件,说我的 order 已经 shipped 了。看了看 UPS tracking,要这周五(明天)deliver。这水平比淘宝差到不知道哪里去了。不过我也没有觉得啥不满意,因为期望低呗,我反正也不急着用。而且我知道美国这些网站的尿性,所以买东西都是 plan ahead 的。
满意度高不代表 developer productivity 做的好。做的好的团队和公司,满意度和 “研发幸福感” 调查的结果完全有可能比做的不好的还差。全球 happiest countries 榜上名列前矛的很多国家同时也在 depression rate 榜上名列前矛。还有个说法说不丹是世界上 happiest country,但不丹人民的生活水平可比不了那些发达国家。所以“研发幸福感”这东西,还有那些员工满意度调查,只能 take with a grain of salt。
以前在微软的时候,每年都有一个员工满意度调查,叫做 MS Poll。那里面有一部分问题是关于你对你的直属老板的满意度。之前阿里巴巴没有这个,我就跟我们的大G和BP建议说要搞一个,所以后来阿里巴巴就搞了(这个因果关系就类似于公鸡打鸣了所以太阳就出来了),叫做 “管理者快照“。这东西挺好的,让大家对自己老板的不满有地方可以输出,这个分数也让各级老板有所忌惮。
I have been through the “Fish vs Shark” dilemma a number of times before. It was like:
The team has a product/tool/service/system called “Fish”. Fish works, but has shown a lot of signs of aging. And the team/company/business/people have almost outgrown the Fish. So the team started to build the Shark.
Building Shark and helping users to migrate to Shark takes time, and takes resources from that team who owns Fish and Shark.
The team now struggles: Fish is getting worse, and the users are increasingly unhappy with Fish. Plus, knowing Shark is coming, themselves and the users are more hesitant to invest in Fish. That only makes things deteriorate even faster in Fish. Meanwhile, Shark isn’t there yet.
The dilemma is: how much time should the team spend on Fish? Double down on Shark? It’s risky. If Shark delays for some reason (including those out of the team’s control), they are dead in the water: Fish is so broken, while Shark isn’t there yet.
Should the team carve out some time to keep Fish floating? In both Chinese and English there is the phrase “a bird in the hand is worth two in the bush”. That will keep business going and buy some time for Shark, but that will probably delay Shark.
That’s really a hard decision to make. We surely can look at the data: How close is Shark? How much effort does it take to keep Fish float? But how “floating” is enough “floating”? How long can users bear with “just floating”? How much confidence you have to get Shark ready on time? At the end of the day, it might still rely on some judgement and gut-feeling.