
凌晨?jī)牲c(diǎn),顯示器幽藍(lán)的光暈映著我浮腫的眼皮,鍵盤(pán)縫隙里的薯片碎屑隨著顫抖簌簌掉落。產(chǎn)品經(jīng)理在群里輕飄飄發(fā)來(lái)的 “加個(gè)搜索功能”,此刻像一把生銹的鈍刀,在我太陽(yáng)穴上反復(fù)剮蹭。咖啡杯底殘留的褐色污漬早已干涸,第三罐紅牛在桌角堆成小山,鋁罐表面凝結(jié)的水珠正順著我的手背往下淌,混著冷汗浸濕了袖口。
這不是第一次了。上個(gè)月的 “優(yōu)化用戶體驗(yàn)” 讓我把整個(gè)頁(yè)面推翻重寫(xiě),結(jié)果甲方大爺指著屏幕說(shuō) “我想要的是五彩斑斕的黑”;上上個(gè)月的 “做個(gè)差不多的界面”,最終演變成十八個(gè)版本的深夜會(huì)議,每個(gè)領(lǐng)導(dǎo)都有自己的哈姆雷特。需求文檔里的每個(gè)字都像薛定諤的貓,你永遠(yuǎn)不知道打開(kāi)測(cè)試服時(shí),會(huì)跳出什么奇形怪狀的生物。窗外的霓虹在玻璃上暈染成扭曲的色塊,就像我混亂的代碼邏輯,越改越像一攤無(wú)法收拾的爛泥。
需求評(píng)審會(huì)是當(dāng)代職場(chǎng)最魔幻的行為藝術(shù)。產(chǎn)品經(jīng)理捧著咖啡講述 “用戶痛點(diǎn)”,PPT 上的流程圖比清明上河圖還復(fù)雜;運(yùn)營(yíng)小姐姐眨著無(wú)辜的眼睛說(shuō) “這個(gè)功能周末就要”;老板敲著桌子強(qiáng)調(diào) “小改動(dòng)而已”。而我們程序員,像被架在火上烤的秋刀魚(yú),連說(shuō) “不” 的資格都沒(méi)有 —— 畢竟在某些人眼里,寫(xiě)代碼和擰螺絲沒(méi)什么區(qū)別。我揉著刺痛的后頸,看著會(huì)議室內(nèi)此起彼伏的手機(jī)屏幕光,突然想起自己已經(jīng)連續(xù)三周沒(méi)見(jiàn)過(guò)夕陽(yáng)。
最絕望的不是需求本身,而是需求的無(wú)限膨脹。最初的 “加個(gè)按鈕” 會(huì)變成 “要帶粒子特效的動(dòng)態(tài)按鈕”,“優(yōu)化速度” 最終演變成 “必須比微信還快 0.01 秒”。需求文檔像被施了膨脹咒的氣球,而我們的發(fā)際線,正以肉眼可見(jiàn)的速度后移。凌晨四點(diǎn),我盯著不斷報(bào)錯(cuò)的代碼,眼前開(kāi)始出現(xiàn)重影,太陽(yáng)穴突突跳動(dòng)的頻率和空調(diào)外機(jī)的轟鳴逐漸重合。

驗(yàn)收那天,會(huì)議室的空調(diào)發(fā)出刺耳的嗡鳴。領(lǐng)導(dǎo)翹著二郎腿,鼠標(biāo)滾輪被他壓得吱呀作響,鏡片后的眼睛瞇成兩條細(xì)縫:“這搜索框位置不對(duì)啊,我要的是懸浮在右上角,還得跟著頁(yè)面滾動(dòng)。” 我攥緊手中的會(huì)議記錄,指節(jié)泛白 —— 群聊記錄里明明寫(xiě)的是 “頂部居中”,此刻卻在投影儀上變成模糊的光斑。“而且這個(gè)搜索結(jié)果展示,太單調(diào)了?!?他突然用力拍了下桌子,震得馬克杯里的枸杞都蹦了起來(lái),“得加上漸變背景,再整點(diǎn)動(dòng)態(tài)縮放效果,年輕人就是缺乏想象力。” 我盯著他锃亮的皮鞋尖,指甲深深掐進(jìn)掌心 —— 三天前的需求確認(rèn)會(huì)上,他親口說(shuō)過(guò) “簡(jiǎn)潔優(yōu)先”。喉嚨里泛起鐵銹味,是熬夜上火牙齦出血的味道,我卻連起身接杯水的力氣都沒(méi)有。
當(dāng)我第 108 次修改代碼時(shí),突然理解了西西弗斯的浪漫。至少他推的石頭不會(huì)突然長(zhǎng)出翅膀,不會(huì)在快到山頂時(shí)突然變成刺猬。而我們面對(duì)的,是永遠(yuǎn)在變形的需求,是永遠(yuǎn)不夠用的排期,是永遠(yuǎn)無(wú)法溝通的 “外行”。顯示器右下角的時(shí)間跳到五點(diǎn)十七分,窗外的城市依舊沉睡,只有我敲鍵盤(pán)的聲音在空蕩蕩的辦公室回響。手指機(jī)械地敲擊著,我忽然覺(jué)得自己像臺(tái)老化的機(jī)器,齒輪間卡著無(wú)數(shù)未解決的需求,每轉(zhuǎn)動(dòng)一次都發(fā)出痛苦的呻吟。
但憤怒過(guò)后,鍵盤(pán)依然要敲,bug 依然要改。畢竟在這個(gè)全民創(chuàng)業(yè)的時(shí)代,每個(gè)程序員都是用代碼對(duì)抗混沌的戰(zhàn)士。我們罵罵咧咧地寫(xiě)著需求,就像小時(shí)候捏著鼻子喝中藥 —— 雖然苦,但總能治好些什么??僧?dāng)晨光終于刺破云層,照在我布滿血絲的眼睛上時(shí),我卻看不到那些所謂 “治好” 的希望,只看見(jiàn)下一個(gè) “一句話需求” 正張牙舞爪地向我撲來(lái)。
下次再收到 “一句話需求” 時(shí),我決定把自己關(guān)進(jìn)小黑屋,對(duì)著空氣開(kāi)三個(gè)小時(shí)的需求評(píng)審會(huì)。說(shuō)不定,那些漂浮在空氣中的 bug,會(huì)自己爬進(jìn)垃圾桶里。可即便如此,我也知道,新的需求總會(huì)像永不停歇的潮水,將我再次淹沒(méi)在代碼的深海里。