第十三章 辣得莫法
晚上七點,蘇念念選的餐廳。
不是什麼高檔地方,是他家附近商圈的一家湘菜館,叫「辣得莫法」。
他到的時候,蘇念念已經在靠窗的位置坐著了。
韓路一拉開椅子坐下,抬頭看了她一眼。
上次在Bug Café是下午,陽光從落地窗照進來,蘇念念坐在逆光里,乾淨清爽,像一杯溫水。現在是晚上,餐廳暖色的吊燈從上方打下來,她的眉眼輪廓比白天更深,長發散著垂到肩上,淺杏色的針織衫襯得鎖骨那截細鏈格外顯眼,整個人多了一點白天沒有的味道。
「今天真好看。」韓路一坐定了,語氣隨意得像在說今天天氣不錯。
「……哪天不好看了?」
「沒有不好看的時候,上次是上次的好看,今天是今天的好看。」
他說得太順了,順到蘇念念沒辦法判斷這是真心話還是嘴貧,接了像在撒嬌,不接又顯得小氣。
「嘴真貧。」她最後只說了這三個字,轉頭看向窗外,耳朵尖有一點點紅,但燈光昏黃,看不太出來。
她面前擺著一台打開的蘋果電腦,屏幕上密密麻麻的都是表格。
服務員走過來,蘇念念剛要拿菜單,韓路一已經開口了。
「一個剁椒魚頭、一個小炒黃牛肉、一個虎皮青椒、一個酸辣土豆絲,米飯兩碗,再來一紮酸梅湯。」
蘇念念看著他,手裡的菜單舉了一半,沒放下也沒打開。
「……你點這麼快?」
「我家就在附近,這家店來過幾次。」韓路一順手接過她手裡的菜單遞還給服務員。
等菜的時候,蘇念念把電腦轉過來給他看。
「你說有想法要聊,又不給我劇透,我只好自己猜了,關於代碼審查,我先把賽道摸清楚了。」她抬了抬下巴,「產品經理的基本功。」
屏幕上是一份競品分析表:十七款產品,每一款都列了核心功能、技術路線、定價策略、用戶評價、融資輪次,最右邊一列是她自己標的評分,滿分五分,最高的一款只拿了三分。
「你什麼時候做的?」韓路一問。
「上次跟你聊完就開始整理了,本來只是隨手查查,結果越查越多。」蘇念念說得很輕鬆,像在說一件不值一提的事。
韓路一看了她一眼,她眼下有一層薄薄的遮瑕,蓋住了熬夜的痕跡。
「你給最高分的這款,缺什麼?」他指著表格問。
「跟上次我跟你說的一樣,只能做靜態分析,找到了Bug,但不能告訴你這個Bug在真實業務場景里會造成什麼影響,程式設計師需要的不是「你這行代碼有問題」,而是「這行代碼上線後會炸成什麼樣」。」
「所以核心痛點是——」
「是「代碼和現實之間的鴻溝」。」蘇念念用手指敲了敲桌面,「你上次的原話,我回去想了好幾天,越想越覺得你說到點子上了。」
剁椒魚頭端上來了,熱氣騰騰的。韓路一拿起公筷,挑了幾塊魚腮邊最嫩的肉放到蘇念念碗裡。
「先吃,涼了腥。」
蘇念念低頭看了一眼碗裡的魚肉,全是最好的部位。
她沒說謝謝,拿起筷子吃了一口。
「我想做一款工具。」他說,「名字我都想好了,BugKiller。」
「BugKiller?」蘇念念念了一遍,嚼著魚肉,皺了下眉,「名字太geek了,程式設計師聽著過癮,但以後要做商業化的話不好賣,先當內部代號用吧,回頭再想個正式的。」
「它不只是找Bug,它要做的是——」韓路一在腦子裡組織了一下語言,「建立一個Bug模式資料庫,把各種類型Bug的特徵、觸發條件、影響範圍、最優修復路徑全部結構化,然後用這些數據訓練AI模型,讓AI學會「看到一段代碼就知道它上線後可能會出什麼問題」。」
蘇念念放下筷子,身體前傾。
「等等,你說的Bug模式資料庫,數據從哪來?這是最關鍵的問題。市面上的競品之所以做不好,就是因為訓練數據只有代碼本身,缺乏「代碼在真實場景中的表現」這一層。」
「從我這裡來。」
蘇念念眨了兩下眼睛。
韓路一解釋:「我這些年寫了幾十萬行代碼,debug過的系統也少說有幾十個,最近自由接單又修了上百個項目,每一個Bug的特徵、觸發條件、修復路徑,我都在記錄。」
這是實話,只不過他省略了視界的部分。
「你的個人經驗當然有價值,但一個人的樣本量不夠啊,」蘇念念皺眉,「AI訓練需要大量數據。」
「對,所以第一步是做最小可用產品,用我現有的模式資料庫做一個原型,先驗證思路能不能跑通。如果跑通了,第二步再想辦法擴大數據源,比如接入開源社區的Bug報告、公開的代碼漏洞庫、技術論壇的問答數據。」
「MVP先行,數據飛輪後做。」蘇念念總結了一句。
「對。」
「那你的MVP打算多長時間做出來?」
「一周。」
蘇念念正在喝酸梅湯,差點嗆了。
「一周?你認真的?」
「我已經開始寫了,今天下午搭了Bug模式資料庫的框架,分類結構都想好了,算法層面我有現成的經驗,模型訓練我也熟,一周出原型不是問題。」
蘇念念看了他三秒鐘,把酸梅湯放下了。
「你知道我在公司推那個AI代碼審查項目,光需求階段就花了兩個月。」
「因為你們有流程,有審批,跨部門協調,領導要拍板。」
蘇念念想了想,笑了:「好吧,卷王你說一周就一周,那我能幫什麼?」
「用戶調研和需求文檔。」韓路一說,「你比我了解用戶,你來定義BugKiller應該長什麼樣、核心功能優先級怎麼排、第一批目標用戶是誰。」
「這我在行。」蘇念念已經開始在電腦上打字了。
兩個人一邊吃一邊聊,越聊越快,蘇念念一手夾菜一手打字,韓路一說到技術方案的時候習慣性用筷子在桌上比劃,被她拍了一下手背,「別拿筷子點桌子,不禮貌。」
剁椒魚頭見底的時候,蘇念念的電腦上已經有了一份完整的MVP需求文檔。
韓路一看了一遍。
「你這需求寫得太清楚了。」他說。
「不然呢?寫需求含糊其辭等著開發罵我?」蘇念念哼了一聲,「而且……」
她停了一下,語氣變輕了一點。
「好久沒碰到這麼聊得來的開發了,我在公司跟技術團隊掰扯一個需求能掰扯一個禮拜,你這兒四十分鐘就搞定了。」
「那是因為你需求寫得好。」
蘇念念沒說話,低頭合上了電腦。
燈光從側面照過來,睫毛在她臉上投下一小片陰影。
「一周後你給我看原型,我幫你做用戶測試。」她說。
「你用什麼身份做?你還在公司上班呢。」
蘇念念端起酸梅湯喝了一口,視線落在窗外。
「當作朋友幫忙。」她過了兩秒才說,「反正我自己的項目被人拿走了,閒著也是閒著。」
韓路一叫了買單,蘇念念搶了一下沒搶過,瞪了他一眼:「下次我請。」
「行,等BugKiller上線那天你請。」
「成交。」蘇念念收好電腦,又看了他一眼,「對了,回去別又泡麵對付,冰箱裡多少放點東西。」
「我什麼時候泡麵對付了?」
「你大學四年有三年的午飯是泡麵加火腿腸,別以為我不知道。」
「……那是因為懶,不是因為窮。」
「結果呢?現在也沒改吧。」
韓路一想反駁,但發現自己昨天中午確實吃的泡麵,他沒說話。
蘇念念笑了一下。
出了餐廳,夜風有點涼。
「你怎麼回去?」韓路一問。
「打車。」蘇念念掏出手機叫車,「你呢?」
「走路,十五分鐘。」
「那你先走吧,別等我了。」
「不急。」韓路一靠在路燈杆上,「等你車來了我再走。」
蘇念念看著手機屏幕,沒抬頭,風把她的長髮吹到臉側,她伸手別到耳後。
「韓路一。」
「嗯?」
她好像要說什麼,但手機響了,車到了。
「沒事。」蘇念念拉開車門,回頭沖他笑了一下,「回去早點睡,別又寫到凌晨。」
「知道了,媽。」
「……滾。」
車門關上,車開走了。
韓路一站在原地看著尾燈消失在路口,然後往回走。
他打開視界。
街邊的一切立刻有了數據浮層,公共垃圾桶底座的螺絲鬆了兩顆,便利店的招牌有三個像素的色偏,對面人行道上一個跑步的中年男人左膝半月板有磨損。
整個世界像被掀開了一層皮,露出底下密密麻麻的代碼。
韓路一關掉視界,繼續走。
不是什麼高檔地方,是他家附近商圈的一家湘菜館,叫「辣得莫法」。
他到的時候,蘇念念已經在靠窗的位置坐著了。
韓路一拉開椅子坐下,抬頭看了她一眼。
上次在Bug Café是下午,陽光從落地窗照進來,蘇念念坐在逆光里,乾淨清爽,像一杯溫水。現在是晚上,餐廳暖色的吊燈從上方打下來,她的眉眼輪廓比白天更深,長發散著垂到肩上,淺杏色的針織衫襯得鎖骨那截細鏈格外顯眼,整個人多了一點白天沒有的味道。
「今天真好看。」韓路一坐定了,語氣隨意得像在說今天天氣不錯。
「……哪天不好看了?」
「沒有不好看的時候,上次是上次的好看,今天是今天的好看。」
他說得太順了,順到蘇念念沒辦法判斷這是真心話還是嘴貧,接了像在撒嬌,不接又顯得小氣。
「嘴真貧。」她最後只說了這三個字,轉頭看向窗外,耳朵尖有一點點紅,但燈光昏黃,看不太出來。
她面前擺著一台打開的蘋果電腦,屏幕上密密麻麻的都是表格。
服務員走過來,蘇念念剛要拿菜單,韓路一已經開口了。
「一個剁椒魚頭、一個小炒黃牛肉、一個虎皮青椒、一個酸辣土豆絲,米飯兩碗,再來一紮酸梅湯。」
蘇念念看著他,手裡的菜單舉了一半,沒放下也沒打開。
「……你點這麼快?」
「我家就在附近,這家店來過幾次。」韓路一順手接過她手裡的菜單遞還給服務員。
等菜的時候,蘇念念把電腦轉過來給他看。
「你說有想法要聊,又不給我劇透,我只好自己猜了,關於代碼審查,我先把賽道摸清楚了。」她抬了抬下巴,「產品經理的基本功。」
屏幕上是一份競品分析表:十七款產品,每一款都列了核心功能、技術路線、定價策略、用戶評價、融資輪次,最右邊一列是她自己標的評分,滿分五分,最高的一款只拿了三分。
「你什麼時候做的?」韓路一問。
「上次跟你聊完就開始整理了,本來只是隨手查查,結果越查越多。」蘇念念說得很輕鬆,像在說一件不值一提的事。
韓路一看了她一眼,她眼下有一層薄薄的遮瑕,蓋住了熬夜的痕跡。
「你給最高分的這款,缺什麼?」他指著表格問。
「跟上次我跟你說的一樣,只能做靜態分析,找到了Bug,但不能告訴你這個Bug在真實業務場景里會造成什麼影響,程式設計師需要的不是「你這行代碼有問題」,而是「這行代碼上線後會炸成什麼樣」。」
「所以核心痛點是——」
「是「代碼和現實之間的鴻溝」。」蘇念念用手指敲了敲桌面,「你上次的原話,我回去想了好幾天,越想越覺得你說到點子上了。」
剁椒魚頭端上來了,熱氣騰騰的。韓路一拿起公筷,挑了幾塊魚腮邊最嫩的肉放到蘇念念碗裡。
「先吃,涼了腥。」
蘇念念低頭看了一眼碗裡的魚肉,全是最好的部位。
她沒說謝謝,拿起筷子吃了一口。
「我想做一款工具。」他說,「名字我都想好了,BugKiller。」
「BugKiller?」蘇念念念了一遍,嚼著魚肉,皺了下眉,「名字太geek了,程式設計師聽著過癮,但以後要做商業化的話不好賣,先當內部代號用吧,回頭再想個正式的。」
「它不只是找Bug,它要做的是——」韓路一在腦子裡組織了一下語言,「建立一個Bug模式資料庫,把各種類型Bug的特徵、觸發條件、影響範圍、最優修復路徑全部結構化,然後用這些數據訓練AI模型,讓AI學會「看到一段代碼就知道它上線後可能會出什麼問題」。」
蘇念念放下筷子,身體前傾。
「等等,你說的Bug模式資料庫,數據從哪來?這是最關鍵的問題。市面上的競品之所以做不好,就是因為訓練數據只有代碼本身,缺乏「代碼在真實場景中的表現」這一層。」
「從我這裡來。」
蘇念念眨了兩下眼睛。
韓路一解釋:「我這些年寫了幾十萬行代碼,debug過的系統也少說有幾十個,最近自由接單又修了上百個項目,每一個Bug的特徵、觸發條件、修復路徑,我都在記錄。」
這是實話,只不過他省略了視界的部分。
「你的個人經驗當然有價值,但一個人的樣本量不夠啊,」蘇念念皺眉,「AI訓練需要大量數據。」
「對,所以第一步是做最小可用產品,用我現有的模式資料庫做一個原型,先驗證思路能不能跑通。如果跑通了,第二步再想辦法擴大數據源,比如接入開源社區的Bug報告、公開的代碼漏洞庫、技術論壇的問答數據。」
「MVP先行,數據飛輪後做。」蘇念念總結了一句。
「對。」
「那你的MVP打算多長時間做出來?」
「一周。」
蘇念念正在喝酸梅湯,差點嗆了。
「一周?你認真的?」
「我已經開始寫了,今天下午搭了Bug模式資料庫的框架,分類結構都想好了,算法層面我有現成的經驗,模型訓練我也熟,一周出原型不是問題。」
蘇念念看了他三秒鐘,把酸梅湯放下了。
「你知道我在公司推那個AI代碼審查項目,光需求階段就花了兩個月。」
「因為你們有流程,有審批,跨部門協調,領導要拍板。」
蘇念念想了想,笑了:「好吧,卷王你說一周就一周,那我能幫什麼?」
「用戶調研和需求文檔。」韓路一說,「你比我了解用戶,你來定義BugKiller應該長什麼樣、核心功能優先級怎麼排、第一批目標用戶是誰。」
「這我在行。」蘇念念已經開始在電腦上打字了。
兩個人一邊吃一邊聊,越聊越快,蘇念念一手夾菜一手打字,韓路一說到技術方案的時候習慣性用筷子在桌上比劃,被她拍了一下手背,「別拿筷子點桌子,不禮貌。」
剁椒魚頭見底的時候,蘇念念的電腦上已經有了一份完整的MVP需求文檔。
韓路一看了一遍。
「你這需求寫得太清楚了。」他說。
「不然呢?寫需求含糊其辭等著開發罵我?」蘇念念哼了一聲,「而且……」
她停了一下,語氣變輕了一點。
「好久沒碰到這麼聊得來的開發了,我在公司跟技術團隊掰扯一個需求能掰扯一個禮拜,你這兒四十分鐘就搞定了。」
「那是因為你需求寫得好。」
蘇念念沒說話,低頭合上了電腦。
燈光從側面照過來,睫毛在她臉上投下一小片陰影。
「一周後你給我看原型,我幫你做用戶測試。」她說。
「你用什麼身份做?你還在公司上班呢。」
蘇念念端起酸梅湯喝了一口,視線落在窗外。
「當作朋友幫忙。」她過了兩秒才說,「反正我自己的項目被人拿走了,閒著也是閒著。」
韓路一叫了買單,蘇念念搶了一下沒搶過,瞪了他一眼:「下次我請。」
「行,等BugKiller上線那天你請。」
「成交。」蘇念念收好電腦,又看了他一眼,「對了,回去別又泡麵對付,冰箱裡多少放點東西。」
「我什麼時候泡麵對付了?」
「你大學四年有三年的午飯是泡麵加火腿腸,別以為我不知道。」
「……那是因為懶,不是因為窮。」
「結果呢?現在也沒改吧。」
韓路一想反駁,但發現自己昨天中午確實吃的泡麵,他沒說話。
蘇念念笑了一下。
出了餐廳,夜風有點涼。
「你怎麼回去?」韓路一問。
「打車。」蘇念念掏出手機叫車,「你呢?」
「走路,十五分鐘。」
「那你先走吧,別等我了。」
「不急。」韓路一靠在路燈杆上,「等你車來了我再走。」
蘇念念看著手機屏幕,沒抬頭,風把她的長髮吹到臉側,她伸手別到耳後。
「韓路一。」
「嗯?」
她好像要說什麼,但手機響了,車到了。
「沒事。」蘇念念拉開車門,回頭沖他笑了一下,「回去早點睡,別又寫到凌晨。」
「知道了,媽。」
「……滾。」
車門關上,車開走了。
韓路一站在原地看著尾燈消失在路口,然後往回走。
他打開視界。
街邊的一切立刻有了數據浮層,公共垃圾桶底座的螺絲鬆了兩顆,便利店的招牌有三個像素的色偏,對面人行道上一個跑步的中年男人左膝半月板有磨損。
整個世界像被掀開了一層皮,露出底下密密麻麻的代碼。
韓路一關掉視界,繼續走。