近期 AI 寫 Code 的一些想法

近期 AI 寫 Code 的一些想法

之前用 AI 寫程式,比較 free style,簡單說,就是功能能運作就好,反正就解決單點問題,就算是個商業應用,也大多設計成可以離線使用,架構很簡單。

但最近為了要完成我 Growth OS 的野望,我又回到以前工程師年代,會很在意目錄架構、資料結構、資料流、權限控制,甚至也會思考更多關於擴展性、多租戶、系統邊界設計的問題。

也因為有較深入的思考,對於 AI 參與開發這件事,我有了多一點的體悟。

Rule-baesd 模式

從前的程式開發大多是建立在有明確規格之後,演算法就像數學公式一樣,輸入什麼樣的參數,往往就能得到一個可預期的結果。

簡單的說,就是「確定性」,所以以前的測試根據的是輸入 A/B,是否得到 C 結果。

直到現在,如果我們對一個程式的執行結果,最主要看的是「確定性」,也就是執行一百次都要得到可預期的結果。那最後或許還是只有清楚的 rule 能做到這件事。

所以那些不容有失的程式,你還是需要讓程式碼每個 conditions/rules 都寫得清清楚楚,不然肯定會掛。

Principle-baesd 模式

最近透過 AI 在進行比較有架構性的程式設計時發現,有很多需求若要用 rule-based 來處理,複雜度真的很高,同時也不見得有必要。例如針對一份簡報給回饋,評價一份履歷,每次給出的結果略有不同其實不會有什麼太大的問題。

只要你不是這次說簡報超棒,下次說超爛,履歷不會這次說合適,下次剔除就好。我們需要的是「一致性」而非確定性。每次的評價都是正面的,至於是超級棒,還是很棒是其次,而就算兩次都是超級棒,原因略有差異也沒關係。因為最終都會進入到下個階段,或者都不會有下個動作。

以最近的案例為例,我撰寫的 OKR 工具,會根據我定義好的原則來回饋使用者所設定的內容。

但同樣的內容,在兩次執行過程中給出的結果卻有極大的差別,雖然兩者最後都需要再調整 KR 的內容,但要改的地方卻有極大的差異。這就偏離了我想要的結果,這結果不一致。

在 OKR 工具中,針對同一個 OKR,工具給出了不一致的結果

面對這類「一致性」的需求,我覺得以羅列「原則(Principle)」的方式來進行非常適合。對我來說,目前寫在 markdown 檔中的內容,對我來說就是一條條的原則。

針對 OKR,我撰寫了 3 份 md 檔,總行數大約 1,000 行

而 Prompt + LLM 算起來就是一種基於原則(Principle-baesd)的開發模式。

而要做到一致性,你的原則也不能定義的太鬆散或模糊,不然會失去一致性,但如果你要把所有原則都羅列清楚,把所有判斷條件都講完,那就會很接近 rule-based。

但我覺得沒有必要,因為窮舉所有的 rules 代價太大,根本不划算。現階段,我覺得 Claude Code 滿足我最多的其實是這一塊。

因為我過去想過很多次要把一些複雜的概念系統化時,我總會面臨到抽象容易,但要具象到可實作難度太高了。最後我只能走 divide-and conquer 的模式,先把範圍拆小,然後一層一層透過 rule-baesd 把需求定義清楚。但即便限縮範圍了,我還是很難窮舉所有可能性,而當無法窮舉時,我想做的系統根本就做不出來。

我現在想通的是,過去我一直在追求結果的確定性,但其實我只需要做到一致性就好。

Scenario-Generating 模式

第三種模式,我稱之為叫 Scenario-Generating 模式。有些需求其實我尚未釐清,也不確定我可以怎麼做,我只是描述一個情境,然後說明我想看見的可能樣貌,然後請 Claude Code 先幫我做一個版本出來看看。

從前這種創意是稀缺品,因為我們很難叫團隊夥伴去想想看,或者叫員工自己去找尋可能的方向。但我們自己又經常卡在念頭尚未通透,需求若有似無的狀態,最後的結果通常是 - 放棄。

但現在,我會把我想到的情境告訴 Claude Code,然後請他幫我找相似的案例,或者根據我當下的描述,他來闡述他的理解,抑或幫我做出一個他想像中的東西。最後我可以針對他的敘述或成品來進一步說明逼近我真正需要的東西。

在我開發過程,我覺得最有趣的地方是,以前是實作者會來訪談(拷問)我,希望我把需求講清楚。AI 其實也會問我想法到底是什麼?

但現在我會跟他說:「你先跑三個案例的結果給我看。」、「你每個都做一次,我來看看哪個比較接近我要的。」

從前,第一個要求,案例通常是我來想,但現在我都直接交給 AI。而第二個要求,往往是老闆跟員工之間最大的衝突點,一不小心就會被說是慣老闆。但其實,這兩種模式都大大加快了我釐清需求的速度。

還記得上次跟 Happy 在最新一期的《搞什麼鬼》中聊到「要做 GM,不要做 PM」。

PM 總是習慣把需求講得鉅細靡遺,把規格寫的清清楚楚,然後讓工程師去完成所要開發的功能。所以動腦的人是 PM,工程師只是負責建造跟執行的人。

GM 則是負責提需求,不負責想細節,細節應該交給其他人來想。以前的程式無法做好這件事,但現在的 AI 完全能做到思考、聯想、創造。

我們不需要再扮演一個想盡辦法完善所有細節的人,而應該大膽嘗試將創意交給 AI,自己專注提出需求就好。

對於那些不追求正確性跟一致性的東西,或許 Scenario-Generating 模式更適合。

不過我近期的任務中,很多狀況是先走 Scenario-Generating 模式,有個雛型後我再切入 Principle-baesd 模式,在幾個小時內生成一個我滿意的成果。

因為我做的大多不是規格功能從一開始就確定的東西,在過去經驗中,我要從構想到產出成品,通常需要花上一兩個月以上的時間。而現在,可能只是一天或半天的時間就能做到。

這種改變讓我感到非常興奮,也讓我有重新開始好好寫程式,打造產品的念頭。


這三種模式其實是並存的:

  • Rule-baesd 追求確定性
  • Principle-baesd 在意一致性
  • Scenario-Generating 重點在可能性

AI Coding 的時代,真的很有趣。

如果你覺得我內容寫得還不錯,歡迎訂閱我的電子報,我每雙週會發送一封電子報到你的信箱。訂閱連結在這,過往的電子報也在這:Gipi電子報

也鼓勵你可以將我的電子報分享給你認為有需要的朋友們,也許你的舉手之勞,將會改變另一個人的思維與習慣。

Read more

自媒體困境,我的思考

自媒體困境,我的思考

昨天在 Facebook 上提到長期經營自媒體的困難,從 2006 年開始寫文章以來,迄今剛好 20 年,以內容產製來說,我應該也算是高產,中間也遭遇了一些挑戰。 不過自媒體一直都是一種放大器,而非我的主要收入源。 早期,我有一份正職工作,所以自媒體只是我用來分享經驗、與人連結、獲得影響力的方式之一。 中期,我成為自由工作者,自媒體是我創造營收的漏斗上層,讓我有穩定的案源,也讓我賣課程、推書、辦活動時可以順順的完成。 現在,自媒體算是我生活中的一種調劑,我沒有設定太明確的流量目標或轉化目標,比較像是隨興而做,暫時沒有特別目的。至於未來會不會改變不好說,但現階段就是這個樣子。 從影響力走到變現,看起來是兩種不同路徑,但對我來說其實我一直都把關鍵放在「影響深度」以及「影響對象」兩件事情上。 所謂的「影響深度」,指的是我能讓多少人採取行動,而且會願意為我所說的事情付出一定的代價,這個代價包含錢、時間、習慣的改變。所以我從文章、影片、營隊課程、

By gipi
年度策略會議的幾點提醒

年度策略會議的幾點提醒

最近幾次的會議,因為大家都在談年度策略、OKR 跟關鍵任務,以下是一些我會特別提醒的地方,也供大家做參考。 如果只有一個目標要追求,那是什麼? 很多時候我們會想著要同時提高營收,提高利潤,有時兩者不容易兼顧,如果非得做個選擇,那你會選哪一個?同樣的選擇也會發生在要流量還是要轉化,要品質還是要速度。多數時候我們都會得到一個兩者都重要的結論,但兼顧,往往就等於要同時完成兩件事。策略的重點之一就是要做出選擇,不願意選擇,不願意捨棄,不願意定義優先順序,那策略其實也等於白做了。 目標必須被進一步釐清,所謂的清晰往往與數字的組成有關 當我們說目標是兩億台幣的營收,可當我細部問:「有沒有限定產品別?」、「有沒有限定銷售區域?」、「除了 B2C,能做 B2B 嗎?」這時往往會聽到許多的回應,包含 「新產品要一定占比」,我會問「占比多少?」 「希望能擴展到海外去」,我會問「哪個區域或國別?」、「占比多少?」 「那好像不是我們過去的商模」,我會問「那可以還不行?」 當這些問題被逐一回答後,所謂的「營收兩億」的定義才算被釐清了。

By gipi
我讀麥肯錫的《注意力方程式》報告

我讀麥肯錫的《注意力方程式》報告

近期花了點時間閱讀麥肯錫的《注意力方程式》(The Attention Equation)報告,從中獲得了一些不錯的啟發,也跟大家分享這篇報告所提到的內容,以及我獲得的收穫。 報告背景 報告的內容大約是 20 多頁的原文,核心放在談論注意力方程式(Attention Equation)這個概念,那什麼是注意力方程式,為什麼麥肯錫要特別談論這個概念呢?首先我們得回到近幾年大家經常在談論的幾個概念: 1. 流量愈來愈貴,數位廣告的 ROI 持續下探。 2. 演算法愈來愈迷,多數的數位廣告媒介都被演算法給操控,不容易破解之虞,還經常更動。 3. 傳統的文字內容不再受到流量青睞,長影音也愈來愈沒人想看,反而短影音似乎成為新的流量王者。 過往我們在看待廣告或其他行銷媒介,或者進一步探討企業獲客(Customer Acquisition)的方式時,我們大多會談論自有媒體(Owned media)、付費媒體(Paid media)與贏來的媒體(Earned media)三者的比例,以及企業應該強化的重點。

By gipi
普通人悖論

普通人悖論

今天跑步時聽了一本書,書中提到一個「普通人悖論」。聽著有趣,因為似乎解答了我這幾年的一些自我認知的疑問。 「我們一般人....」 「對普通家庭來說....」 我們總看著成功人士的故事,閱讀那些不平凡的案例,可到最後,我們還是會回過頭來告訴自己「我們就是個普通人」。 我們渴望不凡,渴望能活出屬於自我的人生,但我們卻又認為自己無法脫離普通人的路徑。20 多歲出社會,謀得一份工作,接著兢兢業業數十年,從基層爬到高層,一輩子在職場上與人競爭。當我們看到那些跳脫這種路徑的人時,我們又說服自己「那是別人」、「那是獨特個案」。 我們心理渴望自己也能是獨特個案,但又不斷說服自己「我只是個普通人」。 這種心境,讓我們沒有勇氣去追求屬於自己的人生。 在聆聽這段時,為什麼我會特別有感觸呢? 在我今年撰寫的新書《用商業思維優化你的人生選擇》中我提到,每個人的人生都是獨一無二的。你不見得要像他人一樣功成名就才算非凡,你能做自己喜歡的是,成為自己想要成為的樣子,活出自己的人生,那你就是個非凡的人。 因為其他人很難活得像你這樣。 我內心是堅定相信這件事的。但我卻又經常在一些時刻,會將「我們一般人」

By gipi