矽谷碼農的日子
一撥人急匆匆而出,一撥人魚貫而入,有人瞥見我紋絲不動,投來略帶詫異的目光,隨即化作一抹淺笑,我則回以苦澀一哂。今天似乎格外巧合,與我相關的所有會議,竟齊聚這方寸之地。慶幸不必抱著電腦,在迷宮般的會議室間奔波,可內心卻暗自歎喟:「又是一日匆匆,還能否留一刻真正實幹?」
自敏捷開發(Agile System)之風吹入矽谷,會議如雨後春筍,層出不窮。大學時,軟件工程課上,教授侃侃而談,描繪如何以工程之法鍛造實用而精良的軟件。那時的我,只覺理論高遠卻不難解,殊不知,待到投身職場,方知其中深意如海。
八○年代畢業後,我輾轉數國,終在矽谷這科技洪流的源頭落腳,僥倖躋身一家巨頭。那時的開發過程,恰如學校所學:從研讀需求,細剖設計文檔,到勾勒程序藍圖,小組反覆推敲後,方才動筆編碼。繼而數輪商討與修繕,編寫測試腳本,調試無誤後,交由專職測試組嚴審。如此,一款產品從萌芽到交付,往往耗費半年光陰,版本更迭則以年為計。這傳統而漫長的流程,只為淬煉品質,雖成本高企,售價不菲,卻也自有其道。
那時,會議稀若晨星:每周一次的大組會,老闆與眾人互通有無,小組討論則數周一聚。朝九晚五,我獨坐辦公室,靜心敲擊代碼,耳邊唯有鍵盤的低吟。機器性能有限,內存侷促,編寫程序如琢玉,技巧至上。我常覺編程與作文同脈,每鑄一段佳碼,或讀他人妙作,皆心生歡喜。文章以自然語言抒懷,程序則以機器之語傳令,異曲同工。年復一年,我在這白領之夢中緩步前行,靜待那遙遠的養老福祉。
「這個沒做,推到下周吧。」「那個動不了,得等A君完工。」「A君,何時能好?」「難說,我手頭還有別的。」會議室裡,聲音交織如織。敏捷開發便是如此:任務碎如塵沙,開發員、測試員、項目經理日日圍屏而坐,逐條檢視進度。項目經理指尖在鍵盤上起舞,條目挪移,日期翻飛,時間卻在鼠標的敏捷滑動中悄然流逝,問題未解,會後仍需再議。為求便利,辦公室牆垣盡拆,化作一間通透大堂,宛若工廠車間,簡陋的電腦桌列陣,小道縱橫,人影捧著筆記本,在過道間往來穿梭。
「這段代碼太精巧,別人怕是看不懂。」新來的B君一句質疑,將我拉回現實,旋即,議論聲四起,七嘴八舌。短短數年,高科技一日千里,內存與速度不再是瓶頸。為搶占市場先機,年輕一代棄技巧於不顧,唯求直白、簡易、速成,資源充裕,何須為節省而殫精竭慮?同樣的代碼,攜著同樣的瑕疵,被反覆複製、修補,只為爭分奪秒。至於發布後的紕漏,待客戶反饋,再補救不遲。
我不禁憶起大二初見電腦的時光:一台龐然大物獨踞機房,程序靠穿孔機打出,每段代碼須在腦海中千錘百煉,確保無誤,方敢孔鑿紙帶。
我倚坐角落,凝望這喧鬧景象,心頭卻湧起一絲茫然。程序員的匠心,彷彿在這無休的拆分與重組中,漸被消磨殆盡。我似在滑向生產流水線的邊緣。
午飯多自帶飯盒,非為省錢,而是中國人的胃總需特別撫慰,日日三明治、薯條、可樂,我難以為繼。不帶飯的日子,若非公司供餐,便是同事舊友小聚。今日即是如此,幾名多年未見的女友,終得面敘。
城市交通如痼疾,高峰時自不必說,連午飯時段亦人潮洶湧。恰逢我這「湊熱鬧」之人出門,總是撞上擁堵。幾經輾轉,覓得停車位,步入餐廳,眾人擁抱寒暄,笑語間不免「你一點沒變」的溢美之詞。
菜單遞來,大家默契地點選工作日午間的優惠套餐。覓食非重點,閒談才是此聚真意,況且不久還得趕回公司。「孩子怎樣了?」媽媽間的經典開場,彼此恭維一番後,話題自然落在兒女身上。
孩子幼時,免不了訴說接送之苦、學琴之累、周末中文課的煎熬,繼而互獻妙計,一餐飯畢,滿載啟發,只待回家與先生商議,先生多半嘆息:「又要破費。」待孩子入高中,話題轉為升學,耳邊盡是「別人家孩子」的傳奇,一飯之餘,思量如何與家人溝通,預料先生淡然,孩子不屑。孩子上大學,則聊實習與就業。總之,對母親而言,兒女是永不枯竭的談資。
下午得以靜心編碼,直至暮色低垂。下班路上,我又陷車流,二十餘分鐘的車程,高峰時常延至一小時。天黑時,高架上車燈連綿如龍,不上高架則頻遇紅燈。我不甚喜駕車,卻也不厭紅燈,尤其下班時,正可藉此喘息,滌去白日瑣碎,回味趣事,或籌謀與先生分享之事。
「回來了。」入門時,先生的聲音伴著飯香從廚房飄來。我輕應一聲,腳步卻不由轉向孩子房中,明知他們或埋首書海,或凝視屏幕,無暇理我,仍想第一眼望見他們。
廚房裡,排風扇嗡鳴,我化身話匣,繪聲繪色訴說白日見聞,或急切拋出待解之題。同為碼農的先生卻沉默寡言,低頭切菜,鍋鏟翻飛,偶有「嗯」聲,如石入深潭,漣漪淺淡。我有時疑他未聞,可瞧他專注的背影,又覺這沉默亦或是默契。
飯後,時常需VPN連入公司,查探問題。周末,我化身全職司機,接送孩子課外活動後,最愛靜坐品一杯下午茶。如世人般,我在工作與生活的跑步機上奔行,似在追逐一場夢。
三十餘年碼農生涯如煙散盡。退休後,含飴弄孫之餘,我捧一杯抹茶,靜靜敲下這些文字。歲月如茶,清苦中透回甘,一飲而盡,心緒安然。
