敏捷的初衷:回到四個價值觀

★★★★Draft

From無瑕的程式碼 敏捷篇

📚 From the Books

敏捷的初衷:回到四個價值觀專業素養

敏捷不是流程、不是潮流,也不只是一套規則。作為 2001 年敏捷宣言的共同起草人,Uncle Bob 寫這本書是為了正本清源:許多團隊只採用了管理實踐(站會、看板)卻跳過技術實踐(TDD、重構),讓敏捷淪為空殼。敏捷的核心動機來自更深的一層——專業主義,以及對客戶合理期望的回應。

🧠 Core Ideas

TIP

為什麼軟體不會隨時間變好?因為恐懼。看到醜程式碼,第一個念頭是「該清理」,第二個念頭是「不敢碰」——碰壞了就變我的責任。這種恐懼讓開發者變得無能。想像有個按鈕,按下幾秒就知道系統是綠燈還是紅燈——TDD 就是那個按鈕,它把「無懼的能力(Fearless Competence)」還給你。

⚖️ 生產力為何會隨時間崩塌

新專案初期進展飛快,但混亂會複利。Uncle Bob 把它畫成一個正回饋迴路——理解這個迴路,才懂敏捷的技術實踐為什麼不是奢侈品。

時程壓力的惡性循環
  • 程式碼越亂 → 開發越慢。混亂讓每一次改動都更費力、更容易出錯。

  • 開發越慢 → 壓力越大 → 越傾向製造更多混亂。趕工時最先被犧牲的就是測試、Code Review 與重構。

  • 管理層加人也救不了。Brooks’ Law:在延遲的專案中增加人手只會讓它更延遲——新人需要學習期,而且往往學到的是舊有的壞習慣。

  • 打破迴路的槓桿:TDD、Pairing、Refactoring、Simple Design 是技術關鍵,Planning Game 則是對抗時程壓力的解藥。客戶有權期望「年初花兩週的功能,一年後類似的功能也差不多兩週」。

🖼️ 為什麼專業主義是敏捷的倫理基礎

Uncle Bob 把敏捷的理由推到倫理層面。他在小木屋裡數了一下,身邊至少有 30 台需要軟體驅動的電腦;現代社會裡,法律的執行、飛機的飛行、股票的交易全都依賴軟體——寫軟體的人實質上掌控了世界的運作,但「我們做得並不好」。他舉了一連串真實災難:2013 年 Toyota 因程式碼裡的全域變數與義大利麵式結構賠償數百萬美元、737 MAX 的 MCAS 軟體造成數百人罹難、Volkswagen 排放醜聞中 CEO 把責任推給「幾個軟體工程師」。

正因如此,他以 CTO 的視角列出一串「合理期望」:不出爛貨、持續技術就緒、穩定的生產力、低成本的適應性、持續改善、QA 什麼都找不到、測試自動化、要敢說「不」。他強調——你被雇用,更多是因為你「說不的能力」,而非你寫程式的能力。這些期望搭配 Snowbird 會議上由 Kent Beck、Ward Cunningham、Ron Jeffries 制定的「權利法案」(客戶與開發者的權利像手套一樣互補),共同構成了敏捷的骨架:一套由權利、期望與紀律組成、支撐起道德專業的體系。

IMPORTANT

敏捷宣言的四項價值、Circle of Life 的三層實踐(業務、團隊、技術)與這套權利期望,最終都指向同一件事——把程式設計轉變成一門真正且受尊重的專業。這也是為什麼 Uncle Bob 最後把敏捷收束於「軟體工匠精神」:管理實踐給了框架,技術紀律才是靈魂。

🔑 Takeaways

✍️ My Notes

No notes yet — jot your takeaways or Q&A here.

📖 Further Reading