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