郵件發出的瞬間,林夕的手指在滑鼠上停留了五秒。
然後他關掉電腦,起身,離開辦公室。走廊很安靜,隻有安全出口的綠光幽幽亮著。電梯下行時,他盯著樓層數字跳動:19,18,17……像某種倒數。
走出大廈,晚風帶著夏末的微涼。他站在路邊,看著車流,忽然不知道該去哪。
手機震動了。先是楊帆的回複:“報告收到,分析透徹。週一上午討論。”
然後是老陳:“小林,你這報告寫得……太直接了吧?周凱那邊怕是不好看。”
小雨也發來微信:“我剛纔看到郵件了。你膽子真大,敢抄送張維。”
最後是周凱,沒有文字,隻有一個表情:一個微笑的emoji。
那個笑臉在夜色裏顯得格外刺眼。
林夕沒有回複任何人。他收起手機,走向地鐵站。車廂裏人不多,他找了個角落坐下,閉上眼睛。
腦海裏是那份報告的每一個字,每一個結論。他知道自己做了什麽——不僅指出了問題,還撕開了“技術選型”背後那層“政治正確”的麵紗:分散式資料庫的取捨不是秘密,但很少有人會當著所有人的麵,把它和具體的業務風險、額外的開發成本、未來的運維複雜度直接掛鉤。
這就像在宴會上指出皇帝沒穿衣服。
《孫子兵法·九變篇》說:“途有所不由,軍有所不擊,城有所不攻,地有所不爭,君命有所不受。”
意思是:有的路不走,有的敵軍不攻擊,有的城池不攻占,有的地方不爭奪,君主的命令有時也可以不接受。
今天他走了“不由”的路,攻擊了“不擊”的敵人,爭奪了“不爭”的地方,也拒絕了某種不言而喻的“君命”。
回到出租屋,他開啟燈,看到桌上那本《孫子兵法》。書頁攤開在《火攻篇》:
“凡火攻有五:一曰火人,二曰火積,三曰火輜,四曰火庫,五曰火隊。”
火攻有五種:火燒敵兵,火燒糧草,火燒器械,火燒倉庫,火燒糧道。
他今天放的這把火,燒的是什麽?
也許是某個人的麵子,也許是某個專案的進度,也許是某種心照不宣的默契。
但,值得嗎?
手機又震了。這次是張維,直接打了電話過來。
林夕深吸一口氣,接起:“喂,張總。”
“報告我看了。”張維的聲音很平靜,“寫得很好。尤其是把技術取捨和業務風險直接對應,這是很多技術人欠缺的思維。”
“謝謝。”
“但你知道這份報告可能帶來的後果嗎?”
林夕沉默。
“周凱下午剛跟投資部匯報了試點進展,說初步測試順利,問題都在可控範圍內。”張維頓了頓,“然後你的報告就來了,說問題不是‘可控’,而是‘必然取捨’,需要‘重寫業務邏輯’和‘建立複雜機製’。”
“我隻是陳述事實。”
“事實有時候比謊言更傷人。”張維說,“下週一技術委員會要開會,討論海量資料的試點結論。你的報告現在成了最重要的參考材料。”
“我該怎麽做?”
“你不需要怎麽做。”張維說,“你已經做了該做的。接下來,是看別人怎麽做。”
電話結束通話。
林夕放下手機,走到窗前。城市的夜晚從不真正黑暗,總有無數的光從地麵升起,暈染天空。
他想起陳啟明郵件裏的話:“有時候,所謂的優化,是掩蓋問題的開始。”
今天,他把那些“優化”重新定義成了“問題”。
他不知道自己是對是錯。
隻知道,如果不說,那些問題會像三年前的積分係統一樣,被臨時方案掩蓋,然後在某個高峰時刻,以更大的代價爆發。
週日,林夕一整天沒出門。他關掉手機,在出租屋裏看書。不是技術書,是一本閑書,關於曆史。讀到明朝那些言官,他們明知上奏會觸怒皇帝,會丟官甚至丟命,但還是要把話說出來。
為什麽?
書裏寫:“因為他們相信,有些事比個人的安危更重要。”
林夕合上書。他沒那麽高尚,他隻是……受不了那種明知有問題卻要假裝看不見的感覺。
週一,林夕提前半小時到公司。
十九樓很安靜,孵化部的人還沒來齊。他的工位幹淨整潔,MacBook靜靜地躺著。他坐下,開機,登入郵箱。
未讀郵件十幾封。大部分是工作相關的,還有一封來自陌生的內部郵箱,標題:“關於你上週五的報告”。
點開,隻有一句話:“技術委員會將於今天下午三點召開特別會議,討論海量資料試點評估。請準備參會並陳述報告。會議邀請稍後發出。”
發件人:技術委員會秘書處。
林夕盯著這行字。技術委員會是公司技術決策的最高機構,由CTO、各技術總監、架構師代表組成。他一個剛轉正的員工,要去那裏做陳述?
上午九點,楊帆把他叫進辦公室。
“報告我仔細看了。”楊帆坐在辦公桌後,表情嚴肅,“結論很明確:海量資料不適合我們當前階段的業務。你同意這個結論嗎?”
“從技術角度,是的。”林夕說,“但如果公司戰略層麵有其他考慮……”
“技術委員會的任務,就是從技術角度給出建議。”楊帆打斷他,“戰略是戰略部的事。你的報告已經送到了所有委員手裏,包括CTO。”
林夕心跳加速:“CTO也看了?”
“看了,而且有批示。”楊帆把一張列印紙推過來。
紙上是一行手寫字:“分析透徹,風險清晰。下午會重點討論。”
落款是一個龍飛鳳舞的簽名:徐遠峰。
CTO的名字。
“徐總很重視。”楊帆說,“下午的會,你準備十分鍾的陳述。重點講三個問題:資料一致性風險、業務改造成本、長期運維複雜度。不要帶情緒,隻說事實。”
“好。”
“還有,”楊帆看著他,“周凱也會參會。你的報告直接挑戰了他的判斷,他可能會有不同意見。你準備怎麽應對?”
林夕想了想:“我隻說測試發現的事實,不評價任何人的判斷。”
“正確。”楊帆點頭,“記住,技術辯論,永遠對事不對人。”
下午兩點五十,林夕站在三十樓會議室門口。
這是公司最高層的會議室,落地窗外是整個科技園區的全景。裏麵已經坐了七八個人,都是技術總監級別的,林夕隻認得張總監和周凱。
周凱看到他,笑著點點頭,表情自然得彷彿什麽都沒發生過。
張總監也看到了他,招手讓他進來:“小林,坐這邊。”
林夕在靠近門口的位置坐下。陸陸續續又進來幾個人,最後進來的是CTO徐遠峰——一個五十歲上下、頭發花白、穿著polo衫的男人,看起來更像大學教授而不是科技公司高管。
“人都到齊了,開始吧。”徐遠峰沒有廢話,“今天隻有一個議題:海量資料在孵化部的試點評估。楊帆,你先簡單介紹背景。”
楊帆站起來,用三分鍾講了試點起因、測試過程、初步發現。
“詳細測試報告,由具體執行人林夕說明。”楊帆看向林夕。
所有人的目光聚焦過來。
林夕站起身,走到投影儀前。U盤插入,PPT開啟。第一頁就是那七個問題的總結。
“各位領導,我是孵化部後端開發林夕,負責本次海量資料試點的測試工作。”他的聲音還算平穩,“接下來我將匯報測試中發現的關鍵問題及其影響。”
他用了八分鍾,講清楚了每個問題的技術原理、複現場景、對業務的影響。他沒有用任何情緒化的詞語,隻說資料和事實。
講完後,會議室裏安靜了幾秒。
“資料很詳細。”徐遠峰先開口,“那麽你的結論是什麽?”
“結論是,”林夕深吸一口氣,“海量資料作為新興分散式資料庫,在擴充套件性和效能上有優勢,但在資料一致性和事務完整性上存在設計上的取捨。這些取捨會導致業務層複雜度大幅增加,需要重寫核心邏輯、增加大量補償機製、建立更複雜的監控體係。對於‘星課堂’這樣一個處於快速發展期的專案,引入這樣的複雜度,可能得不償失。”
他說完了。
會議室裏再次安靜。
周凱舉手:“我來說幾句。”
“請。”徐遠峰點頭。
“首先,我肯定林夕的測試工作,非常細致專業。”周凱語氣溫和,“但我想補充幾個背景。第一,海量資料是我們投資部重點關注的合作夥伴,引入他們不僅是技術選型,也是戰略合作。第二,分散式資料庫是行業趨勢,我們現在不擁抱,未來可能落後。第三,測試中發現的問題,海量資料已經承諾在後續版本優化,而且我們可以通過架構設計規避大部分風險。”
他看向林夕:“小林,你報告中提到的那些業務改造成本,是否可能通過設計來降低?比如,我們能不能隻把適合分散式場景的資料遷移過去,其他保持原狀?”
這個問題很巧妙。如果林夕說“可以”,那就意味著問題“有解決方案”;如果說“不可以”,就顯得固執己見。
林夕思考了幾秒:“理論上可以。但這就意味著,我們需要維護兩套資料儲存、兩套訪問邏輯、兩套監控體係。複雜度沒有降低,隻是轉移了。”
“那也比完全不用好吧?”周凱笑了,“技術選型從來不是非黑即白,而是權衡利弊。”
“我同意。”林夕說,“但權衡需要量化。我在報告最後嚐試做了量化:按照最保守的估計,為了規避海量資料的一致性問題,‘星課堂’專案需要增加至少三個月開發週期、兩個專職的開發運維人力,以及未來每年30%的額外運維成本。而收益是:在十萬級並發下,P99延遲降低30%。”
他調出最後一頁PPT:“如果我們的業務在未來一年內達不到十萬並發,這個收益可能無法覆蓋成本。”
資料擺出來,討論就具體了。
接下來是技術委員們的提問。有人問技術細節,有人問替代方案,有人問時間規劃。林夕一一回答,能答的答,不能答的就說“需要進一步評估”。
討論持續了一個小時。最後,徐遠峰總結:
“今天的討論很充分。我的意見是:第一,海量資料的技術優勢是存在的,但不適合‘星課堂’當前階段。第二,建議技術部繼續跟進海量資料的技術發展,可以在非核心場景小範圍試用。第三,孵化部繼續按原技術棧推進專案,確保按時上線。”
他看向周凱:“周凱,你的積分重構專案,可以考慮在合適的時候引入海量資料做對比測試,但不要作為唯一方案。”
“明白。”周凱點頭,表情依然平靜。
“林夕,”徐遠峰轉向他,“你的報告寫得很好。技術人就應該有這樣嚴謹、客觀的態度。以後有類似評估,可以繼續這樣深度分析。”
“謝謝徐總。”
“散會。”
人們陸續離開。林夕收拾東西時,周凱走過來,拍拍他的肩:“講得很好。年輕人,有衝勁是好事。”
語氣依然溫和,但林夕看到,周凱眼裏的笑意沒有到達眼底。
走出會議室,楊帆在走廊等他。
“表現不錯。”楊帆說,“既堅持了原則,又沒有激化矛盾。”
“周凱那邊……”
“他沒事。”楊帆擺擺手,“徐總定了調,他不會怎麽樣。而且你的分析確實紮實,挑不出毛病。”
他們一起等電梯。電梯從樓下上來,門開了,張維在裏麵。
“正好。”張維看到他們,“聊幾句?”
三人走進電梯。門關上,狹小的空間裏隻有機械運轉的聲音。
“會開完了?”張維問。
“開完了,徐總拍板,試點暫停。”楊帆說。
“意料之中。”張維看向林夕,“你的報告起了關鍵作用。”
“我隻是做測試。”林夕說。
“不隻是測試。”張維笑了,“你知道為什麽今天周凱沒怎麽反駁你嗎?”
林夕搖頭。
“因為你的報告抄送了我,而我又轉發給了徐總。”張維說,“徐總最討厭的就是技術決策摻雜太多非技術因素。你的報告純粹從技術風險出發,正好符合他的價值觀。”
電梯到達十九樓。門開了,但張維沒出去。
“林夕,”他說,“你今天燒了一把火。火燒掉了海量資料的試點,也可能燒掉了一些人的計劃。接下來,小心點。”
“小心什麽?”
“小心那些被你燒到的人。”張維按了關門鍵,“火能照亮路,也能引來撲火的人。”
電梯門合上,繼續上行。
林夕和楊帆站在走廊裏。
“他說的對。”楊帆說,“你這次確實得罪了一些人。不過沒關係,隻要你在技術上立得住,沒人能動你。”
“我隻是做了該做的事。”
“很多人知道該做什麽,但不敢做。”楊帆看著他,“你比他們勇敢。”
回到工位,林夕開啟電腦。郵箱裏躺著幾十封新郵件,大部分是專案相關的。他掃了一眼,開始處理工作。
下午五點,老陳召集小組開會,宣佈試點暫停,專案回歸原技術棧。大家鬆了口氣——畢竟誰也不想去維護兩套係統。
散會後,小雨悄悄對林夕說:“你知道嗎,剛才技術部那邊傳開了,說你一個人幹翻了一個合作專案。”
“沒那麽誇張。”林夕說。
“就是那麽誇張。”小雨眼睛發亮,“現在好多人都知道孵化部有個狠人,測試做得比QA還細,報告寫得比架構師還深。”
林夕苦笑。這不是他想要的。
晚上加班時,趙磊發來微信:“哥們兒,聽說你今天在技術委員會大殺四方?周凱回來的時候臉都是綠的。”
“謠言。”
“絕對不是謠言。技術部都傳瘋了。”趙磊發來一個偷笑的表情,“不過你小心點,周凱這人表麵大度,其實記仇。”
“知道了,謝謝。”
關掉微信,林夕繼續寫程式碼。窗外的天色完全黑了,辦公室裏隻剩下他和幾個加班的同事。
他寫得很投入,暫時忘了白天的一切。
直到晚上十點,他準備下班時,郵箱提示音響起。
一封新郵件,發件人是一個完全陌生的地址,不是公司郵箱。
標題隻有一個字:“火。”
林夕點開。
正文也隻有一句話:
“火把舉得太高,容易燒到自己。但如果你不放這把火,黑夜永遠沒人看見。做得對,但要小心。有人在看著你。”
沒有落款。
林夕盯著這封郵件,很久。
然後,他做了三件事:
第一,截圖儲存。
第二,回複:“你是誰?”
第三,關掉郵箱。
他坐在黑暗的辦公室裏,隻有顯示器的光映在臉上。
窗外,城市的燈火依然璀璨。
但有些光,不是來自地麵。
而是來自那些舉著火把的人。
他們站在黑暗裏,
用自己的光,
照亮前路,
也照亮自己可能被燒毀的命運。
林夕關掉電腦,
站起身。
他知道,
從今天起,
他正式進入了某些人的視線。
好的,壞的,
明的,暗的。
而他必須繼續走。
因為火已經點燃,
就無法回頭。
隻能,
繼續燃燒。