軟件與AI:規劃式開發與即興式開發
本文探討了軟件開發中兩種方法——規劃式(類似小説創作的‘情節規劃’)和即興式(‘隨性寫作’)——如何影響AI工具的使用。作者認為,AI代理(自主執行)適合規劃式開發,而AI助理(協作輔助)適合即興式開發。在現有代碼庫中,即興式開發有助於建立理解,而AI代理可能阻礙學習。在全新項目中,AI代理風險較低,但即使如此,代碼生成也會剝奪部分編程的樂趣——即通過探索問題來學習的‘玩樂’過程。關鍵在於根據當前開發階段選擇合適的AI風格。
軟件開發與小説創作之間存在有趣的類比。小説中有兩種寫作風格:一種是“規劃者”,他們在動筆之前先構建世界、角色和大綱;另一種是“即興者”,他們從幾個有趣的角色和設定出發,隨性寫作,讓故事自然發展。這兩種風格在軟件開發中同樣存在:規劃式開發強調在編碼之前先通過設計文檔進行深思熟慮,而即興式開發則將代碼本身視為思考工具,通過編寫代碼來逐步理解問題。
AI工具在這兩種風格中扮演不同角色。作者將AI分為兩類:“代理”能夠自主完成目標,從高級規範直接生成最終產品;“助理”則與人類協作,如自動補全、代碼審查或研究輔助。代理更適合規劃式開發,因為它們可以將已有的理解轉化為代碼;助理則更適合即興式開發,因為它們幫助開發者從現有代碼和文檔中提取知識,增強理解。
實際應用中,開發者面臨的兩類場景——現有代碼庫(棕色地)和新項目(綠色地)——對AI的使用有顯著影響。在現有代碼庫中,尤其是當項目龐大且歷史久遠時,開發者往往需要採用即興式開發來逐步理解系統。此時,代理式AI難以發揮作用,因為瓶頸在於理解而非編碼。相反,助理式AI(如自動建議、代碼審查)可以有效支持學習過程。在綠色地項目中,由於約束較少,代理式AI風險更低,可以加速開發。但即使如此,完全依賴AI生成代碼會剝奪開發者通過“玩樂”式探索來學習問題的機會,而這正是編程樂趣和專業知識積累的重要來源。
最終,作者強調沒有一種AI風格適用於所有場景。關鍵是根據當前開發階段和任務性質,選擇合適的AI工具:當你已經理解問題並需要高效表達時,使用代理;當你還在探索和理解問題時,使用助理。這種選擇不僅能提升效率,還能保護編程的樂趣和知識的深度。