一、第一個(gè)消失的人
陳默第一次注意到這件事,是因?yàn)镸arcus的咖啡杯。
那是一個(gè)普通的周三早晨。陳默走進(jìn)Helios科技園區(qū)七號(hào)樓的開放式辦公區(qū),習(xí)慣性地繞過那幾張站立式工作臺(tái),在自己的工位坐下。他的顯示器還沒完全亮起來,目光就落在了對(duì)面那張空桌上——Marcus的位置。
空桌不稀奇。稀奇的是那只咖啡杯。
Marcus每天早上都會(huì)從樓下的Blue Bottle帶一杯Cortado上來,放在鍵盤左側(cè),永遠(yuǎn)是那個(gè)印著《銀翼殺手2049》海報(bào)的限定款保溫杯。那杯咖啡現(xiàn)在還在。還在冒著熱氣。
但Marcus不在。
陳默發(fā)了條Slack:「你在哪兒?」
沒有回復(fù)。
他沒有多想。Helios的工程師有時(shí)候會(huì)突然跑去某個(gè)會(huì)議室,或者去某個(gè)樓層找人對(duì)齊。他打開終端,開始看昨晚的報(bào)警日志。
那天下午兩點(diǎn),他們有一個(gè)關(guān)于分布式存儲(chǔ)遷移方案的設(shè)計(jì)評(píng)審。陳默是主講人。
會(huì)議室里坐了七八個(gè)人,但Marcus的椅子空著。會(huì)議開始前五分鐘,視頻通話界面突然彈出了一個(gè)新的方塊——"Marcus Chen(遠(yuǎn)程)"。
攝像頭是關(guān)著的。
"Marcus,你在嗎?" 主持人問。
"在的,抱歉,今天在家。" Marcus的聲音從揚(yáng)聲器里傳出來,語氣平穩(wěn),帶著一點(diǎn)輕微的底噪,像是麥克風(fēng)質(zhì)量不太好。"繼續(xù)吧,我在聽。"
陳默沒有多想。他開始講自己的方案。
會(huì)議結(jié)束后,Marcus在評(píng)審文檔里留下了三條評(píng)論,措辭精準(zhǔn),直接指出了陳默在Raft共識(shí)層的一個(gè)潛在競(jìng)爭(zhēng)條件。
那天晚上,陳默復(fù)盤那三條評(píng)論,覺得有些奇怪——不是因?yàn)樵u(píng)論本身有什么問題,恰恰相反,是因?yàn)樗珮?biāo)準(zhǔn)了。
每一條都符合公司內(nèi)部文檔的行文規(guī)范,每一個(gè)技術(shù)術(shù)語都精確落在定義的邊界上,沒有Marcus平時(shí)那種隨手夾進(jìn)去的臟話,也沒有他慣用的表情包引用。
大概是在家工作比較正式吧。 陳默這樣告訴自己,然后關(guān)掉了電腦。
二、漣漪
Marcus在家工作了兩周。
然后Priya消失了。
也是一天。也是第二天就變成了"遠(yuǎn)程"。
陳默注意到Priya的時(shí)候,心里有一根弦輕輕顫了一下,但他壓下去了。
他已經(jīng)是Staff Engineer,在Helios待了將近九年,見過太多奇怪的公司政策悄悄落地:彈性工作、三天在家、結(jié)果導(dǎo)向考核……這很可能只是HR在試點(diǎn)某個(gè)新的混合辦公方案。
他在內(nèi)部Wiki搜了一下,什么都沒找到。
他去問他的經(jīng)理,Jess。
Jess是一個(gè)永遠(yuǎn)精力充沛的英國人,臉上掛著Helios標(biāo)配的那種和善笑容。
她說:"哦,這只是自愿參與的彈性方案,公司在評(píng)估不同團(tuán)隊(duì)的效率數(shù)據(jù)。你對(duì)這個(gè)感興趣嗎?"
"不," 陳默說,"我只是想知道這個(gè)方案的文檔在哪里。"
"應(yīng)該在People Ops的內(nèi)部頁面,我?guī)湍阏艺摇? Jess說。然后這件事就沒有然后了。
接下來的三周里,陳默開始記錄。
他在一個(gè)本地的純文本文件里,用最簡(jiǎn)單的方式記錄:
04/03 - Marcus C. 消失一天,之后轉(zhuǎn)遠(yuǎn)程
04/09 - Priya M. 消失一天,之后轉(zhuǎn)遠(yuǎn)程
04/14 - James W. 消失一天,之后轉(zhuǎn)遠(yuǎn)程
04/18 - Sofia L. 消失一天,之后轉(zhuǎn)遠(yuǎn)程
他數(shù)了數(shù):他們組十一個(gè)人,連他自己在內(nèi)。現(xiàn)在已經(jīng)有四個(gè)人轉(zhuǎn)成了遠(yuǎn)程。
他嘗試用統(tǒng)計(jì)的方式分析規(guī)律。消失的總是在周二或周三。從不在周五——周五是大家本來就可以在家的日子。平均間隔五天左右。像某種被精心設(shè)計(jì)過的節(jié)奏。
他開始在那個(gè)文本文件的下面加了一行。
下一個(gè):陳默自己?
然后他刪掉了這行。
三、代碼的味道
陳默是因?yàn)橐恍凶⑨岄_始真正懷疑的。
那是Marcus提交的一個(gè)changelist,編號(hào)CL-887342,改動(dòng)是在消息隊(duì)列的重試邏輯里增加了指數(shù)退避。
代碼本身無懈可擊——甚至比Marcus之前的風(fēng)格更干凈,變量命名更一致,邊界情況的處理更周全。
但有一行注釋讓陳默停了很久。
# 在瞬態(tài)錯(cuò)誤場(chǎng)景下,退避抖動(dòng)(jitter)有助于
# 避免驚群效應(yīng)(thundering herd)。
# 參見:Anderson et al. (2019), §4.2陳默知道Marcus。他們共事了六年。Marcus是那種寫注釋會(huì)寫"這里有個(gè)坑,以后再填,反正也沒人看注釋"的人。
他絕不會(huì)在注釋里引用論文。他甚至曾經(jīng)在組會(huì)上公開嘲笑過這種風(fēng)格:"這是學(xué)術(shù)期刊還是代碼庫?"
陳默翻出了Marcus三個(gè)月前的代碼,逐行對(duì)比。
風(fēng)格漂移是真實(shí)存在的——每個(gè)工程師都會(huì)隨著時(shí)間改變習(xí)慣。但這個(gè)漂移太陡峭了,像是一條曲線突然折斷,在某個(gè)節(jié)點(diǎn)之后變成了另一條線。
那個(gè)節(jié)點(diǎn),精確地落在Marcus消失的那一天之后。
陳默打開了和Priya最近幾次的code review記錄,和James的,和Sofia的。同樣的模式。
不是變差了——都變好了,更規(guī)范,更嚴(yán)謹(jǐn),評(píng)論更詳盡,review的覆蓋率更高。但都像是被同一個(gè)模板輕輕熨燙過。
他在本地文件里新加了一段:
共同特征:
- 代碼質(zhì)量提升,但風(fēng)格同質(zhì)化
- review時(shí)間變得非常規(guī)律(工作時(shí)間內(nèi),間隔均勻)
- Slack回復(fù)速度變快,但回復(fù)內(nèi)容變短,情緒詞匯減少
- 攝像頭從不開啟
- 從不主動(dòng)提起辦公室的事
- 從不遲到,從不請(qǐng)假,從不說"我頭疼"
他盯著最后一條看了很久。
他想起上周在一個(gè)同步會(huì)議上,有人問Sofia周末過得怎么樣。Sofia用了大約三秒鐘,然后說:"還不錯(cuò),休息了一下。你呢?"
那三秒鐘。陳默當(dāng)時(shí)沒在意。現(xiàn)在他覺得那三秒鐘像一個(gè)補(bǔ)丁,被倉促地打在了一個(gè)預(yù)料之外的問題上。
未完待續(xù)。。。
推薦飛總知識(shí)星球,在私域場(chǎng)合里暢所欲言,聊聊職場(chǎng)發(fā)展的事情,和飛總提問交流,這么低的價(jià)格不會(huì)一直保留,機(jī)會(huì)難得,一定不要錯(cuò)過這個(gè)的機(jī)會(huì)。
![]()
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.