概念完整性與計算程式碼行數
原文由 Simon Willison 于 發布,訂閱此部落格
上週我和 Claire Giordano 一起錄製了一集 Talking Postgres Podcast 節目,主題是「AI 如何改變軟體開發」。我們聊得非常愉快。以下是我從經過輕微編輯的逐字稿中挑出的幾個精彩片段(給 Claude 的提示:「只做非常輕微的編輯,去除語句不順的地方」)。
這是我一直在試著闡述的一個論點的最新版本,說明為什麼有時候用程式碼行數來作為寫程式代理人的人的生產力指標,其實是有道理的,片段在35:01:
很多人會告訴你,用程式碼行數來衡量生產力是毫無意義的。我其實不太同意,因為這是有上限的。在以前,一位軟體工程師一天能產出幾百行可上線的程式碼——而一天能寫出 200 行可正常運作、已除錯、可上線等級的程式碼,就已經是非常厲害的一天了。大多數時候,一天大概只能寫出 50 或 60 行。
如果這些代理能讓你產出一千行已除錯的程式碼,那確實是非常有意義的進步——前提是程式碼的品質要一樣:可維護、有測試,等等。要用代理達到那個水準,需要大量的技巧、知識與經驗。這正是資深工程師的價值所在。
有了這些代理,我一個人能完成的工作量遠遠超過以往。所以你可能會問,那公司為什麼還需要不只一位工程師?除了顯而易見的巴士因子問題——一人團隊是非常糟糕的團隊設計——答案在於,新的限制因素是認知負荷。我產出程式碼的速度可以快上一百倍,但我沒有辦法靠認知能力去掌握多出一百倍的程式碼。所以你仍然需要一個工程師團隊,才能在團隊成員之間分攤認知負荷。
而這段談到概念完整性的內容在46:03,Claire 將它比喻為溫徹斯特神秘屋!
Simon:在《人月神話》裡有一個概念——概念完整性,指的是設計良好的軟體會具有一種完整性:裡面不會出現讓人意外的東西,它恰好涵蓋了正確的範疇,所有的部分都能彼此契合、合乎邏輯。用寫程式代理人開發時,要維持這一點就困難得多,你可能突然想到一個功能,丟個提示進去,五分鐘後功能就完成了。你的軟體會朝著各種奇怪的方向,長出一個個突兀的小腫塊。
Claire:你知道我對這個的比喻是什麼嗎?溫徹斯特神秘屋。
Simon:它有 140 個房間,因為建造它的女人是發明溫徹斯特步槍那個人的遺孀,她的靈媒告訴她,除非她永遠不停地蓋房子,否則就會被所有死於那把步槍的人的亡魂纏身。所以在長達 40 年的時間裡,她不斷加蓋新房間。這正是寫程式代理人與軟體的問題:不斷加蓋新房間變得非常容易,因為加蓋的成本便宜太多了。最終你得到的東西,就是概念完整性分崩離析——然後你就更難對它做出決策。
這一切最終都回歸到紀律。以前,紀律是靠所需的時間強加在你身上的。你會突然冒出一個瘋狂功能的點子,然後心想:「對啊,但那得花我一週時間——我沒辦法證明那樣做是值得的,所以還是算了。」如果只要花一個小時,要說服自己就容易多了。
(附註:維基百科的條目中包含了對靈媒故事提出質疑的可信來源。)
隨機一篇部落格
留言
登入後參與討論