“惠普之道”和Monorepo

如今听说过“惠普之道”的人,估计都是至少四十岁以上的了。我刚毕业那几年,大家都在说“惠普之道”。《惠普之道》是一本九十年代的书,英文书名叫”The HP Way“(我估计 “Aliway” 也是从 “The HP Way” 来的)。那时候惠普在大家眼里是一个成功的公司,Carly Fiorina是那时候最火的CEO,江湖地位堪比今天的Elon Musk。

二十年过去了,现在很少听到有人讲“惠普之道”了,我甚至怀疑如今刚毕业的大学生可能连惠普这个公司都没听到过。现在大家都在学谷歌,因为谷歌是一家成功的公司。其实,谷歌成功已经有很多年了,只不过出圈需要一个过程。以前谷歌还只在圈内红火的时候,大家已经在学了,大家都在说 20% time 怎么怎么好,怎么怎么培育创新。

这两年好像不太听到有人讲 20% time 了,这几年大家都在学谷歌的 OKR。满眼都是各种文章阐述 OKR 的精髓是什么、OKR 和 KPI 的本质差别是什么、为什么 OKR 比 KPI 好。甚至连有些政府部门都在搞 OKR。虽然有很多人 clarify 说我们搞 OKR 并不是跟风、并不是因为谷歌搞了 OKR 所以我们也要搞,但夜深人静的时候扪心自问,如果谷歌没有那么成功,OKR 还会有那么多人学吗。

这样的例子还有很多。二三十年前,通用电气如日中天的时候,大家都学通用电气的末位淘汰,感觉末位淘汰是保持大公司企业活力的关键。后来通用电气走下坡路了,大家就开始反思,反思末位淘汰是不是导致微软的企业文化问题的原因,一家接着一家的公司都把末位淘汰和 curve 给取消掉了。

谷歌之后最红的科技公司是 Facebook。Facebook 声名鹊起的那段时间,大家都学 Facebook 搞 Hackathon ,但这两年大家讲 Hackathon 渐渐讲的少了。真正被 Facebook 带红的是 Monorepo(大库)。或者说,Monorepo 是被谷歌和脸书两家一起带红的:谷歌和脸书都是用大库的,那肯定不是巧合吧,而且谷歌和脸书的研发效能的口碑都是顶流的,让人不得不相信大库一定在里面起到了很大的作用。

大库其实也有大库的痛苦。上周我做了一个 diff,把六十几个 Dockerfile 里面 pip install 的 “-vv” 参数给去掉了(that's a story for another day)。这个 diff 到现在还在等 code review,因为这个 diff 动了十几个微服务的 Dockerfile,要那十几个团队的人都 code review 通过了才能 land。除非我一个个 team 一遍遍的催,否则估计这个 diff 永远没法合并了。

大家都说大库的好处是做这种大面积 horizontal 的改动比较容易。我看也不见得有多容易。看样子,到头来我可能还是会把这个大 diff 拆成十几个小 diff,每个微服务一个 diff,单独做 code review。但这样搞一堆小 diff,那和每个微服务单独一个 repo 有啥差别呢。

员工满意度调查

早上填了一个公司内部的 developer productivity 满意度调查。这种调查在我以前公司也经常搞,我相信其他公司也有。今天这个调查我基本上每一项填的都是 Very Satisfied 或者 Satisfied。其实现在每天都能遇到各种问题,各种不完善的地方。但我也没觉得不满意,因为这样那样的问题、这样那样的不完善的地方都很正常,在中美两国的各个大厂小厂都普遍存在。就算是几家整体上做的很好的公司,到具体的团队也一样有很多问题。有问题就一点点搞呗。

满意度、幸福感,很大程度上是基于期望的。我上周四买了两顶帽子一件衣服,这周一收到邮件,说我的 order 已经 shipped 了。看了看 UPS tracking,要这周五(明天)deliver。这水平比淘宝差到不知道哪里去了。不过我也没有觉得啥不满意,因为期望低呗,我反正也不急着用。而且我知道美国这些网站的尿性,所以买东西都是 plan ahead 的。

如果有个满意度调查,问我对美国 online shopping 的 shipping speed 满意不满意,我大概也还是会填 satisfied。所以满意不满意和真的做的好不好之间没有太直接的联系。满意不满意和被调查的这个人有没有见过世面也没关系。过去几年我是已经习惯了淘宝和京东的速度的。京东上买个洗衣机都能隔天就送到,美国你买个洗衣机试试看。

“研发满意度调查” 或者 “研发幸福感调查” 的结果,看看就好。如果今年的结果比去年的满意度高、幸福感高,也别太当回事儿。这个结果可以拿去给不称职的 CTO 看,可以拿去给做业务出身的总裁们看。真的拿着各个团队的 “研发满意度” 做横向排名的,非蠢即坏。其实很多老板们心里也明白这个道理,很多时候大家都只是看破不说破罢了。

满意度高不代表 developer productivity 做的好。做的好的团队和公司,满意度和 “研发幸福感” 调查的结果完全有可能比做的不好的还差。全球 happiest countries 榜上名列前矛的很多国家同时也在 depression rate 榜上名列前矛。还有个说法说不丹是世界上 happiest country,但不丹人民的生活水平可比不了那些发达国家。所以“研发幸福感”这东西,还有那些员工满意度调查,只能 take with a grain of salt。

以前在微软的时候,每年都有一个员工满意度调查,叫做 MS Poll。那里面有一部分问题是关于你对你的直属老板的满意度。之前阿里巴巴没有这个,我就跟我们的大G和BP建议说要搞一个,所以后来阿里巴巴就搞了(这个因果关系就类似于公鸡打鸣了所以太阳就出来了),叫做 “管理者快照“。这东西挺好的,让大家对自己老板的不满有地方可以输出,这个分数也让各级老板有所忌惮。

以前在微软的时候,各级主管对这个满意度调查还是满上心的。分数如果很难看,日子多少会有点儿不那么好过。每年有这个分数在,我们做主管的一年到头都要很小心,团队要好生伺候着,就怕到时候分数不好看。临近年度调查的时候还要多搞一些聚餐,拉拢拉拢感情,各种暗示。但有时候,辛辛苦苦一整年,调查前一个月来了个紧急项目加班很多,一年的努力就白费了。

怎么让 MS Poll 分数高一点,这事情困扰了我很多年。直到有一次,我当时的老板给我说了他的一个秘诀。每次临近调查的时候,他都会找他的手下做 1:1,聊的时候就会把 MS Poll 里面的那几个问题先问一遍。人嘛,当面都是不太好意思说太难听的,所以 1:1 的时候被问到了都会说”还不错“、”挺好的“。神奇的地方在于:等到过几天填正式的调查表的时候,你选择的答案会不由自主的向在 1:1 时候自己嘴巴里说过的话靠拢,会更偏向于选择”满意“、”比较满意“。

我当时听他讲完后的感觉就是:哇塞,还能有这样的骚操作啊。YYDS!