郵件傳送成功的提示彈出來,像石子投入深潭。
林夕盯著螢幕,心跳在安靜的辦公區裏異常清晰。抄送技術總監這個決定,是他在按下傳送鍵前最後一秒做出的——一種近乎本能的判斷。既然看不清水麵下的暗流,那就把光引進來。
“兵者,國之大事,死生之地,存亡之道,不可不察也。”他默唸著《兵法》開篇的話,但此刻更應景的是另一句:“合於利而動,不合於利而止。”
利益在哪邊?公司的,使用者的,還是周凱的?他分不清。但直覺告訴他,讓更高層看見問題,是最不壞的選擇。
郵件發出後五分鍾,李工的電話直接打過來了。
“小林,你發郵件抄送張總監了?”李工的聲音壓得很低,背景音裏有鍵盤聲,可能在工位。
“嗯,我想申請完整的資料許可權,需要正式流程。”林夕盡量讓語氣聽起來自然。
電話那頭沉默了幾秒。“周凱知道嗎?”
“還不知道。我想先走流程。”
“流程……”李工歎了口氣,“小林,我跟你說實話。那個327的資料,我昨晚就看到了。我也知道周凱列印了報表。這事兒沒你想的那麽簡單。”
“李工,到底怎麽回事?”
又是一陣沉默。“中午一起吃個飯吧。食堂三樓小包廂,十二點。別告訴別人。”
電話結束通話了。
林夕放下手機,手心有點出汗。李工的態度很微妙——不是責備,更像是……警示。那句“沒你想的那麽簡單”,像一層薄冰,下麵不知多深。
他強迫自己冷靜,繼續手頭的工作。優化方案的檔案還沒寫完,他開啟來,卻一個字也寫不下去。螢幕上的遊標在閃爍,像是在倒數什麽。
十點左右,技術部的晨間站會。周凱主持,和往常一樣,語氣輕鬆。
“昨天的小波動已經平穩了,大家辛苦了。特別是小林,及時回滾,處理得很好。”他看向林夕,笑容溫和,“優化方案繼續寫,寫好了我們過一下。下週有個重要的技術評審,張總監會參加,正好可以拿出來討論。”
張總監會參加評審。周凱說這話時表情沒有任何變化,彷彿那封抄送的郵件不存在。要麽他沒收到通知,要麽他根本不在乎。
林夕更傾向於後者。
“對了,小林。”周凱忽然說,“你昨天畫的會員積分係統架構圖,能再完善一下嗎?最好加上資料流向和風險點。張總監一直想看看咱們核心係統的現狀。”
“好的凱哥。”
“今天下班前給我初稿就行,不急。”
散會後,趙磊湊過來:“凱哥今天心情好像不錯?昨晚出了那麽大事兒……”
“也許處理好了。”林夕說。
“處理好?”趙磊冷笑一聲,“我早上聽客服的姐妹說,投訴量沒減反增。不過奇怪的是,那些使用者後來都撤訴了,說是問題解決了,還收到了補償積分。”
“補償積分?”
“嗯,數額還不小,都是直接打到賬戶的,沒走正常客訴流程。”趙磊壓低聲音,“你說,會不會是……”
他沒說完,但意思很明顯。
周凱在私下用補償平息事態。這可能解釋了那張`exchange_pensation`表裏的記錄,也解釋了為什麽財務會跟蘇晴吵架——預算外支出,沒走流程。
但錢從哪來?公司的備用金?還是……別的渠道?
中午十一點五十,林夕提前離開工位,往食堂走。星雲科技的食堂有三層,一樓是大眾視窗,二樓是風味檔口,三樓有幾個小包廂,通常是部門聚餐或接待用。李工選在這裏,顯然不想被人聽見談話。
林夕到的時候,李工已經在了。包廂很小,隻能坐四個人,桌上擺著兩葷兩素的套餐。
門關上了,外麵的嘈雜聲瞬間被隔絕。
“坐。”李工指了指對麵的椅子,自己先扒拉了兩口飯,“邊吃邊說,時間不多。”
林夕坐下,沒動筷子。
李工看了他一眼,放下筷子:“小林,你挺聰明的,技術也好。但職場上,聰明有時候不夠用。”
“我明白。”林夕說,“所以我想知道到底怎麽回事。”
“327次衝突是真的。”李工開門見山,“實際影響的使用者是89人,其中41人被重複扣了積分,金額加起來大概……七萬八千積分,按現在的兌換比例,摺合現金不到一萬塊。錢不多,但性質嚴重。”
“為什麽會議上不說?”
“因為周凱想壓。”李工的聲音很平靜,“他想在張總監知道之前,把事情處理幹淨。私下補償,安撫使用者,修複係統。這樣報上去的時候,就是‘小波動已妥善解決’,而不是‘生產事故’。”
“可這是瞞報……”
“是瞞報。”李工打斷他,“但你知道為什麽嗎?”
林夕搖頭。
“因為三個月後,公司要啟動新一輪融資。”李工盯著他,“這個節骨眼上,任何生產事故,尤其是涉及使用者資金損失的事故,都會影響估值。技術VP(副總裁)的位置空了大半年,周凱是熱門人選。如果他負責的部門在這個時間點出事故,別說升職,可能現有位置都難保。”
所以,是個人利益和公司利益的博弈。周凱選擇犧牲透明度,換取表麵的平穩。
“那您為什麽告訴我這些?”林夕問。
李工苦笑:“因為我也被卷進去了。昨晚那個補償記錄,是我操作的。周凱讓我做,我不能不做。但我不想背這個鍋,萬一將來東窗事發,我是執行者,他是決策者,你說誰的責任大?”
林夕明白了。李工在找退路,或者說,在找同盟。
“張總監如果問起來,我會如實匯報資料。”李工繼續說,“但我需要有人證明,我不是主動隱瞞,而是奉命行事。你那封抄送郵件,正好給了我一個開口的機會。”
“所以您約我吃飯,是想……”
“是想告訴你,別當炮灰。”李工重新拿起筷子,“周凱讓你畫架構圖,讓你寫優化方案,讓你去技術評審會上講。你想過為什麽嗎?”
林夕想過,但沒想透。
“如果事情順利壓下去,你是他培養的新人,功勞有他一份。如果壓不下去,問題暴露了……”李工頓了頓,“那麽,那個新上線的彈窗功能是誰寫的?優化方案是誰提的?架構圖是誰畫的?”
林夕的後背一陣發涼。
“是你。”李工看著他,“到時候,周凱可以說:‘新人經驗不足,方案考慮不周,我已經盡力指導了,但問題還是發生了’。責任的大頭,就轉移了。”
包廂裏的空調有點冷。林夕看著麵前漸漸涼掉的飯菜,忽然覺得一點胃口都沒有。
《孫子兵法·九地篇》:“敵近而靜者,恃其險也;遠而挑戰者,欲人之進也。”
敵人近卻安靜,是倚仗險要地勢;離得遠卻來挑戰,是想引誘對方前進。
周凱的“安靜”和“溫和”,原來也是一道險要地勢。而他給的那些看似機會的任務,是誘餌。
“那我現在該怎麽辦?”林夕問。
“兩件事。”李工伸出兩根手指,“第一,架構圖繼續畫,但要畫得全麵、客觀,把所有風險點都標注清楚,尤其是曆史遺留問題。這樣將來出問題,你可以說‘我早就指出了隱患’。第二,優化方案不要寫得太激進,尤其是不要提‘重構’,那需要資源,短期做不到。就寫具體的、可落地的修複方案。”
“還有呢?”
“還有,離張總監遠點,但離真相近點。”李工擦了擦嘴,“你抄送他那封郵件,已經把自己放在了聚光燈下。接下來,會有人盯著你。小心點。”
飯吃完,剛好十二點半。李工先走了,留下林夕一個人在包廂裏坐了五分鍾。
他想起祖父教他下棋時說的話:“棋局裏,最危險的不是對方的車馬炮,而是那些看似無關的過河卒子。因為它們已經過了河,沒有退路,隻能往前。”
他現在就是那個過了河的卒子。
回到工位,林夕開始畫架構圖。這次他畫得極其細致,不僅標注了資料庫單點故障、防重複提交機製缺陷,還把三年前那場事故的影響範圍、當時的臨時修複方案、後來的引數調整,都作為注釋加了上去。
他甚至畫了一張時間軸,展示這個係統從誕生到現在的每一次重大變更,以及每次變更後出現的問題。
這不再是一張技術架構圖。這是一份病曆。
下午三點,圖基本畫完了。林夕列印出來,厚厚一疊。他拿著圖紙走向周凱的辦公室,敲門。
“進來。”
周凱正在看一份檔案,抬頭看見林夕手裏的圖紙,笑了:“效率這麽高?畫完了?”
“初稿,請您過目。”林夕把圖紙放在桌上。
周凱一張一張翻看,表情從輕鬆逐漸變得凝重。翻到那張時間軸時,他的手指停住了。
“這些曆史問題……你從哪知道的?”
“查了SVN記錄,也問了一些老同事。”林夕說,“我覺得要客觀反映係統現狀,就得把曆史上下文也包含進來。”
周凱沉默了很長時間。辦公室裏隻有空調出風的輕微嗡鳴。
“畫得很好,很全麵。”他終於開口,語氣聽不出情緒,“但有些細節,可能不需要這麽詳細。比如三年前的事故,那時候係統設計還不成熟,跟現在的架構關係不大。”
“可現在的很多問題,根源就在那時候。”林夕堅持道。
周凱抬起頭,眼鏡片後的眼睛看著林夕:“小林,你知道在職場裏,有時候‘正確’不是最重要的嗎?”
“那什麽最重要?”
“時機。”周凱說,“在正確的時間,做正確的事。現在公司要融資,要穩定,要增長。你把這些陳年舊賬翻出來,放在架構圖裏,萬一被投資人看到,會怎麽想?”
“可如果問題不解決,將來可能出更大的事故。”
“所以我們要優化,要修複。”周凱把圖紙合上,“但方式方法很重要。這張圖,我會收下,但你要重新畫一版——簡潔版,隻講現狀和優化方案,不提曆史。”
“那如果將來出問題……”
“不會出問題。”周凱打斷他,聲音裏第一次有了不容置疑的強硬,“因為我們會在出問題之前解決它。明白嗎?”
林夕看著周凱。那張溫和的臉此刻像戴著一張精緻的麵具,隻有眼睛裏透出一絲真實的東西——是警告,也是命令。
“明白了。”林夕說。
“好。簡潔版明天給我。優化方案也按這個思路調整。”周凱揮揮手,“去吧。”
林夕走出辦公室,回到工位。他沒有立刻開始畫圖,而是開啟了公司內網的許可權管理係統。
他有一個小小的、幾乎被遺忘的許可權——作為管培生,他可以在內網知識庫搜尋曆史檔案,但不能下載。他輸入了關鍵詞:“會員積分係統 事故報告 2019”。
搜尋結果跳出來,有十幾篇檔案。大部分是技術方案和需求檔案,但有一篇的標題格外顯眼:
《2019年“雙十一”積分兌換係統故障複盤報告》
作者:陳啟明。
狀態:已歸檔。訪問許可權:技術部經理及以上。
林夕盯著那個標題,心跳加速。他沒有許可權開啟,但能看到檔案的基本資訊:建立時間2019年11月15日,最後修改時間2019年11月20日,大小1.2MB。
11月20日,是陳啟明離職的前一天。
他修改了這份報告,然後離開了公司。
而報告的訪問許可權,在“技術部經理及以上”——周凱肯定看過。
林夕關掉搜尋頁麵,靠在椅子上。窗外的陽光西斜,在辦公桌上投下長長的影子。
他麵前有兩張圖紙:一張是詳細版,記錄了所有問題和曆史;一張即將要畫的簡潔版,掩蓋了傷疤,隻展示光鮮。
而那份他無法開啟的報告裏,可能藏著三年前的全部真相。
祖父的聲音在耳邊響起:“見勝不過眾人之所知,非善之善者也。”
預見勝利不超過一般人的見識,不算高明中的高明。
他現在看到的,可能隻是水麵上的波紋。而水下的冰山,遠比想象中龐大。
但至少,他知道冰山存在。
而且,他找到了第一張指向它的地圖。
隻是這張地圖,此刻鎖在某個他沒有許可權開啟的檔案裏。
而鑰匙,可能在那個已經離開三年的人手裏,也可能在某個決定隱瞞真相的人桌上。
林夕拿起筆,開始在紙上畫簡潔版的架構圖。線條幹淨,結構清晰,風險點被溫和地標注為“待優化項”。
他畫得很慢,很仔細。
因為這一次,他知道自己畫的不隻是一張圖。
他畫的是一道防線——在真相浮出水麵之前,保護自己的防線。
而防線背後,是那個327,是那份被隱藏的報告,是所有被掩蓋的錯誤。
它們在暗處等待。
就像他一樣。