![]()
前幾天寫的《》大家討論很多,今天再來深度討論一下當軟件開發(fā)成本無限趨近于0時,軟件的真正價值究竟在哪里。我在去年其實就寫過一篇相關文章,感興趣的朋友也可以閱讀《》。
十個人能不能重建 DocuSign?從純粹的代碼角度看,答案可能是肯定的。但這個問題真正有趣的地方在于:這十個人會把時間花在哪里?他們不會花在敲代碼上,而是會花在辯論邊界情況、合規(guī)要求、信任保證、可審計性、錯誤語義、用戶體驗,以及在不同法律環(huán)境下"簽名"到底意味著什么。這個問題不是關于執(zhí)行能力,而是關于判斷力。
最近讀到 Sarah Guo 的一篇文章,她提出了一個我認為極其深刻的觀點:當代碼變得廉價時,judgment(判斷力)才是真正的工作。這個觀點徹底顛覆了我對軟件開發(fā)演進的理解。在軟件歷史的大部分時間里,執(zhí)行是稀缺的。寫代碼慢、貴,而且受限于人的產出能力。困難的部分是讓軟件存在本身。但 AI coding agents(AI 編程代理)正在反轉這個世界。代碼現(xiàn)在可以快速、廉價、大規(guī)模地生產出來。執(zhí)行不再是限制因素,特別是對于那些在前沿運作的團隊來說,結果的好壞更多是由協(xié)調和判斷決定的,而不是打字速度。
我對這個轉變的理解是:我們正在經歷軟件開發(fā)的范式轉移。從稀缺性經濟轉向豐富性經濟,而這種轉變帶來的影響遠比大多數人想象的要深遠。當某樣東西從稀缺變成豐富時,價值就會轉移到其他地方。在軟件領域,價值正在從"能不能寫出代碼"轉移到"知不知道該寫什么代碼"。這不是一個小調整,而是整個行業(yè)底層邏輯的重構。
從執(zhí)行到意圖的轉變
Sarah Guo 在文章中指出,當軟件變得豐富時,清晰表達 intent(意圖)的能力反而變得稀缺。這有時被描述為創(chuàng)意勝過執(zhí)行的勝利,但這種說法完全錯過了重點。在真實系統(tǒng)中,大部分重要的 intent 都是深度技術性的:積累的上下文、系統(tǒng)知識,以及關于權衡的判斷。工作并沒有消失,它只是轉移了。
我深有感觸。過去幾個月,我在使用 AI coding agents 時,發(fā)現(xiàn)自己花在引導和糾正 agent 上的時間,和我直接寫代碼的時間差不多。一開始我覺得自己很蠢,好像在犯一些不該犯的錯誤。但后來我意識到,這個反應本身很有信息量。它指向了系統(tǒng)中那些我隱性理解但從未清晰表達過的部分。工作從打字轉向了澄清判斷。
當你告訴一個有經驗的工程師"讓這個更快",他們不會把這當成字面指令。他們會推斷上下文:是延遲重要還是吞吐量重要,這里的"足夠快"意味著什么,哪些權衡是可接受的,以及什么時候應該質疑這個前提本身。Coding agents 不具備這種背景。你要么規(guī)定得不夠詳細,得到一個看似合理但實際錯誤的東西;要么規(guī)定得過于詳細,花在寫指令上的時間比直接寫代碼還多。
軟件豐富讓這個鴻溝變得可見。執(zhí)行錯誤的 intent 很便宜,這意味著不對齊會很快顯現(xiàn)出來。我認為這是一個好事。過去,錯誤的決策可能要等到系統(tǒng)上線運行很久之后才會暴露。現(xiàn)在,由于 AI 可以快速把你的想法變成代碼,你會更早地發(fā)現(xiàn)自己的想法是否清晰、是否正確。這種快速反饋循環(huán)實際上在加速學習。
什么是"不可接受的代碼"
Sarah Guo 提出了一個特別精準的概念:隨著 agents 能力提升,主要的失敗模式發(fā)生了變化。問題很少是代碼崩潰。不可接受的代碼能運行、能通過測試、看起來合理,但它違反了系統(tǒng)的隱含契約。在實踐中,這通常意味著打破了不可見的 invariants(不變量):關于冪等性、順序、失敗語義、數據完整性或遺留耦合的假設,這些從未被寫下來,因為它們是通過經驗學到的。
這段話讓我想起了我在實際項目中遇到的無數次困境。這種代碼可能跨越了不該跨越的邊界,優(yōu)化了錯誤的維度,引入了脆弱的抽象,錯誤處理了邊界情況,或者悄悄移除了未來的選項。一個人類工程師會拒絕它,不是因為它不正確,而是因為他們不想擁有它。正確性和可接受性之間的鴻溝,正是工程 intent 變得重要的地方。
我發(fā)現(xiàn)這個觀察特別深刻,因為它觸及了軟件工程中最難以量化的部分:品味。知道什么時候某個東西在技術上是對的,但對于你正在構建的系統(tǒng)來說形狀是錯的。這種判斷力無法通過測試用例完全捕獲,也很難形式化。它來自于對系統(tǒng)深層理解,來自于見過太多次某種模式最終導致問題,來自于對長期維護成本的直覺。
Sarah Guo 在文章中提到,他們在一些快速增長、有數百名工程師的公司中看到這種情況。早期系統(tǒng)是由還在發(fā)展高級判斷力的團隊快速構建的。代碼能工作,擴展得足以發(fā)布,然后成為后續(xù)一切的基礎。當 AI coding tools 變得更強大、在日常工作中更普遍時,它們忠實地復制了那些早期模式。臨時決策變成了默認值,并在代碼庫中重復。隨著時間推移,哪些架構選擇是偶然的、哪些假設沒有被審查過、哪些決策承載的權重遠超任何人的預期,這些都變得清晰起來。
我認為這揭示了一個更深層的真相:自動化會放大任何已經存在的結構。當那個結構是隱含的時,放大會讓它變得可讀。這既是機會也是風險。機會在于,那些一直存在但從未被正式化的模式和假設,現(xiàn)在因為被大規(guī)模復制而變得顯而易見,團隊可以有意識地決定哪些要保留、哪些要修改、哪些要丟棄。風險在于,如果你沒有意識到這個動態(tài),你可能會在不知不覺中把技術債務擴大十倍。
并非所有代碼都同樣可規(guī)范化
Sarah Guo 提供了一個特別有用的框架來理解 agents 在哪些地方工作得好,哪些地方會遇到困難。這是一個關于 intent 明確性和穩(wěn)定性的譜系:
在譜系的一端是非常容易規(guī)范化的代碼,比如數據庫、編譯器、協(xié)議。Intent 是形式化的、可檢查的。然后是操作性規(guī)范化的代碼,比如持續(xù)集成、ETL(數據提取轉換加載)、CRUD 服務,范圍控制占主導地位。接下來是測試錨定的代碼,比如業(yè)務邏輯、bug 修復,部分 intent 可以被捕獲。
然后情況開始變得棘手。品味密集型的工作,比如重構、API 設計、抽象,規(guī)范和判斷變得關鍵。以人為中心的工作,比如產品邏輯、用戶體驗、命名,intent 會演化。最后是難以規(guī)范化的工作,比如架構、策略,intent 存在于代碼之外。
隨著你在這個譜系上往下移動,失敗不再看起來像 bugs,而是看起來像你不信任的代碼。我發(fā)現(xiàn)這個框架特別有用,因為它幫助我理解為什么有些時候使用 AI coding agents 感覺像魔法,有些時候卻感覺像在跟一個不理解上下文的初級開發(fā)者打交道。
關鍵洞察是:agents 不是在所有類型的編程工作上都同樣有效。它們在 intent 可以被明確表達的地方表現(xiàn)出色,在 intent 依賴于隱性知識和品味的地方則會遇到困難。這意味著,作為工程師,我們需要學會識別哪些工作適合委托給 agents,哪些工作需要人類深度參與。這本身就是一種新的技能。
從個人技能到組織能力
Sarah Guo 觀察到,現(xiàn)在有些公司的 ARR(年度經常性收入)超過 1 億美元,快速增長,但計劃保持在大約 100 名工程師以下——每個人都在 intent 并行表達的極限上運作。最強的用戶不是寫出更好的 prompts(提示詞)。他們更好地管理 intent。他們指定結果而不是步驟,盡早暴露假設,保持 diffs(差異)小而可審查,推動更簡單的解決方案,并像對待不可信的 pull request 一樣對待 agent 輸出。
這段話讓我意識到,我們正在見證軟件開發(fā)從個人技能轉向組織能力的轉變。過去,一個公司的工程能力主要取決于它能招到多少優(yōu)秀的個人貢獻者。現(xiàn)在,越來越取決于它如何構建系統(tǒng)和流程來捕獲、傳播和放大判斷力。
她提到,在快速增長的初創(chuàng)公司中,高級工程師越來越依賴測試和實時系統(tǒng),而不是仔細閱讀代碼。她講了一個工程師的故事,這個人曾經通過讓自己在每個 pull request 后吃一顆 M&M 來保持 PR 的小巧。今天,每當系統(tǒng)確認約束時——在 canary(金絲雀部署)保持穩(wěn)定后、回滾成功后,或者 invariants(不變量)在應該觸發(fā)時觸發(fā)——他就吃一顆 M&M,而且他需要一個更大的碗。
我喜歡這個比喻,因為它生動地展示了驗證重點的轉移。從驗證代碼本身,轉向驗證代碼在系統(tǒng)中的行為。這是一個深刻的轉變,因為它認識到在軟件豐富的世界里,讀懂每一行代碼變得越來越不現(xiàn)實也越來越不必要。重要的是建立正確的約束和檢查點,讓系統(tǒng)自己證明它的行為是可接受的。
Sarah Guo 把這稱為 judgment engineering(判斷力工程):將積累的經驗轉化為顯式約束、測試和邊界的工作,系統(tǒng)和團隊可以據此運作。做得好的話,它讓高質量決策更容易在人員、時間和系統(tǒng)之間重復。
我認為這個概念捕捉到了軟件工程演進的本質。我們正在從"寫代碼"的時代,轉向"編碼判斷力"的時代。這不是說寫代碼變得不重要了,而是說最高杠桿的工作正在轉向如何將人類的判斷系統(tǒng)化、可重復化、可擴展化。這種轉變對工程師的技能要求提出了新的挑戰(zhàn):不僅要懂技術,還要能夠清晰地表達為什么某個技術選擇是對的,能夠將隱性知識顯性化,能夠設計出捕獲判斷力的系統(tǒng)。
從軟件團隊到軟件密集的世界
Sarah Guo 提出,當編寫和維護代碼的成本下降時,組織不再問某件事是否可以自動化,而是開始決定是否應該自動化。軟件擴散到內部工作流、邊界情況和特定領域的流程中,這些過去太昂貴或太脆弱而無法編碼。
像 CRM(客戶關系管理)或 HRIS(人力資源信息系統(tǒng))這樣的系統(tǒng)從外部看起來很直接,但它們代表了數千工程師年花在編碼業(yè)務邏輯、例外和約束上的時間,這些都是通過艱難的方式學到的。軟件豐富不會抹去這項工作——它改變了類似判斷現(xiàn)在可以多快、多廣泛地被表達。
在一個軟件密集的世界里,價值不再主要累積到單個工具上,而是累積到決定哪些決策被自動化、在什么約束下自動化的人身上。我認為這是一個關鍵洞察。當更多東西變成軟件時,另一個瓶頸變得更清晰:首先形成正確的 intent。足夠了解一個領域,能夠從客戶那里提取期望的行為——理解他們的意思,而不僅僅是他們說的話——變得越來越有價值。
這讓我想到,軟件豐富時代的贏家可能不是技術最強的公司,而是最懂業(yè)務、最能將業(yè)務理解轉化為清晰 intent 的公司。技術執(zhí)行能力正在被商品化,但對問題的深度理解、對客戶真正需求的洞察,這些依然稀缺。
Sarah Guo 提到,模型可能會在這項工作上提供越來越多的幫助:暴露不一致、測試解釋、讓假設顯性化。這能走多遠仍然是一個開放的問題。但下游的一切都是從這里形成的 intent 擴展出去的。我同意這個觀點,但我也認為,至少在可預見的未來,形成正確的 intent 仍然需要深度的人類判斷。AI 可以幫助我們更快地迭代、更早地發(fā)現(xiàn)問題、更系統(tǒng)地測試假設,但它還不能替代對業(yè)務的深度理解和對客戶需求的敏銳洞察。
瓶頸在哪里
Sarah Guo 的結論非常有力:軟件豐富迫使 intent 浮出水面。隨著自動化增加,判斷力開始表現(xiàn)得像類型系統(tǒng):它定義了什么是允許的、什么可以安全組合、失敗會在哪里浮現(xiàn)。弱判斷讓幾乎任何東西都能運行。強判斷在錯誤擴散之前就排除了整個類別的錯誤。軟件豐富使判斷力成為杠桿的單位。
我深刻認同這個觀點。在代碼稀缺的時代,杠桿來自于能寫出代碼的能力。在代碼豐富的時代,杠桿來自于知道該寫什么代碼的判斷力。這不僅僅是個人層面的轉變,更是組織層面、行業(yè)層面的轉變。
我一直在思考這對軟件工程師的職業(yè)發(fā)展意味著什么。過去,成為優(yōu)秀工程師的路徑很清晰:學習編程語言、掌握算法和數據結構、了解系統(tǒng)設計、積累項目經驗。這些依然重要,但它們不再足夠。現(xiàn)在,工程師還需要學會如何清晰地表達 intent、如何將隱性知識顯性化、如何設計捕獲判斷力的系統(tǒng)、如何在人和 AI 之間有效分配工作。
這種轉變對工程教育也提出了新的挑戰(zhàn)。我們不能只教學生如何寫代碼,還要教他們如何思考代碼背后的 intent、如何評估不同實現(xiàn)的權衡、如何在系統(tǒng)層面做出判斷。這些能力過去可能被視為高級工程師才需要的,現(xiàn)在卻變成了基礎能力。
從公司層面看,這種轉變意味著組織需要重新思考如何評估和培養(yǎng)工程人才。簡單地看代碼產出不再有意義。需要看的是:這個人是否能清晰地表達 intent?是否能做出好的判斷?是否能將判斷系統(tǒng)化?是否能有效地與 AI coding agents 協(xié)作?這些都是新的評估維度。
我也在思考這對軟件行業(yè)競爭格局的影響。當代碼變得廉價時,競爭優(yōu)勢不再來自于能寫出代碼,而是來自于知道該寫什么代碼。這意味著那些擁有深度領域知識、能夠清晰表達業(yè)務需求、能夠做出好的技術判斷的團隊,將會獲得巨大的優(yōu)勢。反過來,那些只是執(zhí)行能力強但缺乏判斷力的團隊,優(yōu)勢會逐漸消失。
我的一些深度思考
讀完 Sarah Guo 的文章后,我一直在反復思考一個問題:這種轉變到底是讓軟件開發(fā)變簡單了,還是變復雜了?表面上看,代碼變得更容易寫了,這應該是簡化了。但實際上,對 intent 清晰性和判斷力的要求提高了,這又是復雜化了。
我的結論是:這種轉變降低了進入門檻,但提高了天花板。寫一個能運行的程序變得更容易了,但寫一個優(yōu)秀的、可維護的、長期可持續(xù)的系統(tǒng)變得更難了。這是因為,當執(zhí)行不再是瓶頸時,所有其他的問題都變得更加突出:你真的理解問題嗎?你的解決方案真的是最優(yōu)的嗎?你考慮了所有的邊界情況嗎?你的設計能夠適應未來的變化嗎?
這讓我想起了一個更廣泛的模式:每當某項技術讓某種工作變得更容易時,它也會提高對其他能力的要求。文字處理軟件讓打字變得更容易,但也提高了對寫作能力的要求。搜索引擎讓查找信息變得更容易,但也提高了對信息篩選和批判性思維的要求。現(xiàn)在,AI coding agents 讓寫代碼變得更容易,但也提高了對判斷力和 intent 清晰性的要求。
另一個我一直在思考的問題是:這種轉變對不同經驗水平的工程師影響是什么?對初級工程師來說,AI coding agents 可能是一個巨大的加速器,幫助他們更快地學習和產出。但如果他們過度依賴 agents,可能會錯過建立深層理解的機會。對高級工程師來說,agents 可能讓他們能夠在更高層次上操作,但也要求他們更清晰地表達那些過去只是隱性知識的東西。
我認為,成功適應這種轉變的關鍵,是找到人和 AI 之間正確的協(xié)作模式。不是把所有工作都交給 AI,也不是完全拒絕使用 AI,而是理解各自的優(yōu)勢和局限,在合適的地方使用合適的工具。人類擅長判斷、理解上下文、做出權衡決策;AI 擅長快速執(zhí)行、處理大量細節(jié)、探索多個選項。最好的結果來自于將兩者有機結合。
最后,我想說的是,軟件豐富時代的到來,實際上是對整個行業(yè)的一次試煉。它會暴露出那些一直依賴執(zhí)行能力但缺乏深度判斷力的工程師和團隊。它也會獎勵那些一直在培養(yǎng)判斷力、積累領域知識、建立系統(tǒng)化思維的人。這不是技術的勝利取代人的勝利,而是更高層次的人類能力——判斷力、洞察力、創(chuàng)造力——變得更加重要和有價值。
軟件豐富不是終點,而是新起點。它開啟了一個新的競爭維度,在這個維度上,判斷力成為最稀缺、最有價值的資源。那些能夠適應這種轉變、提升判斷力、將經驗系統(tǒng)化的人和組織,將會在這個新時代中獲得巨大的優(yōu)勢。
結尾
也歡迎大家留言討論,分享你的觀點!
覺得內容不錯的朋友能夠幫忙右下角點個贊,分享一下。您的每次分享,都是在激勵我不斷產出更好的內容。
歡迎關注深思圈,一起探索更大的世界。
![]()
![]()
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.