許多工程團隊在引入 AI 輔助開發後,會發現一個弔詭的現象:開發速度確實提升了,但軟體交付的整體效率卻沒有對應增加,甚至系統變得更不穩定。這正是因為 AI 正在打破傳統的軟體開發生命週期(SDLC, Software Development Life Cycle)。
當 AI 10 分鐘內 AI 能產出 1,500 行程式碼,而人類審核員一小時只能消化 500 行時,傳統的 Pull Request(PR,拉取請求,一種請求將程式碼合併至主分支的審核機制)就變成了嚴重的效能瓶頸。
AI 造成的 SDLC 崩潰:從 PR 瓶頸到技術債
在 AI 普及之前,我們的開發流程是線性的:編寫、提交、審核、測試、部署。但 AI 代理(AI Agents)的出現將產出量提升了數倍,導致以下問題:
第一,審核負荷過重。當 PR 體積過大,人類審核員會陷入疲勞,導致「500 行程式碼只得到一個 LGTM(Looks Good To Me,看起來沒問題)」的現象,許多潛在 Bug 因而溜進生產環境。
第二,短期速度提升,長期技術債累積。研究顯示,使用 AI 工具在首月能顯著提升開發速度,但隨後速度會回落至基準線。原因在於 AI 產出的程式碼雖然能跑,但往往缺乏長期維護的結構,導致技術債快速累積,最終拖慢後續開發。
第三,排隊理論的災難。根據排隊理論(Queuing Theory),當進入系統的工作量(AI 產出的 PR)超過處理能力(人類審核速度)時,等待時間會趨向無限大。除非交付速度能跟上產出速度,否則 AI 帶來的效率提升將被審核延遲完全抵消。
從「關注任務」轉向「關注驗證」
面對這個困境,我們不能僅僅優化 Prompt(提示詞)或增加審核人力,而必須將重心從「如何讓 AI 寫碼」轉移到「如何驗證 AI 的輸出」。
在 AI 代理的循環中,通常包含任務(Task)、工具(Tool)與檢查(Check)。過去業界過度關注任務與工具,但「檢查」才是決定能否安全加速的關鍵。如果能建立一套極其快速且精準的自動化驗證機制,我們就能讓 AI 在不犧牲穩定性的情況下全力運作。
實務上的加速方案:測試影響分析(TIA)
為了讓驗證跟上 AI 的速度,不能每次提交都執行全量測試(Full Test Suite),這在大型單體架構(Monolith)中太慢了。這裡推薦一種實務技巧:測試影響分析(Test Impact Analysis, TIA)。
TIA 的核心在於建立源碼與測試案例之間的依賴圖(Dependency Graph)。當 AI 修改了某個特定組件時,系統會分析該組件影響的範圍,僅執行相關的測試子集,而非全部測試。
例如,在一個前端應用中,若 AI 僅修改了使用者設定的 API,TIA 會自動跳過與待辦事項(Todo)無關的測試。在 CircleCI 的實務案例中,這種方法能將原本需要 4 分鐘且需多機並行的測試,縮減到單機 1.5 分鐘內完成,讓 AI 能在極短時間內獲得反饋並自我修正。
對抗 Flaky Tests:建立乾淨的信號
AI 代理最怕的是 Flaky Tests(不穩定測試,指同一段程式碼在相同環境下,有時通過有時失敗的測試)。如果測試結果不可信,AI 會陷入錯誤的修正循環,或者人類審核員會忽略真正的錯誤。
解決方案是將 CI 管道視為「法官」。透過紀錄歷史執行結果,識別出哪些測試是 Flaky 的,並利用 AI 代理專門修復這些不穩定測試。但關鍵在於不能讓 AI 憑空想像(Hallucination),必須強制 AI 執行以下工作流: 針對特定 Flaky 測試規劃修復方案。 在隔離環境嘗試復現問題。 將修復方案提交至 CI 管道,以實際的綠燈(Pass)作為唯一驗證標準。
重新定義未來交付流程
未來的 SDLC 可能不再是線性的。我們不需要強制要求「審核必須在部署之前」這種僵化的順序,而應該轉向「基於證明」的交付。
只要一個提交能通過嚴格的自動化測試、靜態分析,並附帶 AI 的推理軌跡(Reasoning Trace),它就具備了部署的條件。我們應該把精力花在構建這座「驗證工廠」上,確保環境能承載高頻率的變更,而非糾結於每一行程式碼的細節。
來源:infoq.com (Presentation by Michael Webster)
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。