標準即底線期望#

標準(Standards) 是基準期望。它們是我們劃下的沙線——不可跨越的界線。它們是我們設定的最低可接受參數。標準可以被超越,但絕不能低於

Standards are baseline expectations. They are the lines in the sand that we decide we cannot cross.

Your New CTO:兩種視角的落差#

想像一下:Bob Martin 是你的新任 CTO。他要告訴你他對你的期望。你閱讀這些期望時,會從兩個互相矛盾的視角出發:

視角一:管理者、高階主管、使用者#

  • 從他們的角度,這些期望看起來理所當然、極為平常
  • 沒有任何一位經理、主管或使用者會期待更少的東西
  • 他們會說:「軟體本來就該這樣做,不是嗎?」

視角二:程式設計師、架構師、技術主管#

  • 從他們的角度,這些期望看起來極端、不可能,甚至瘋狂
  • 典型反應:「這怎麼可能?」「我們沒辦法做到這種程度。」「現實不是這樣運作的。」

這兩個視角的差距、這些期望的錯位,正是軟體產業最主要的失敗——也是我們必須迫切修復的問題。

flowchart LR
    subgraph 管理視角["管理者/使用者視角"]
        direction TB
        A1["這些期望理所當然"]
        A2["軟體本來就該這樣"]
        A3["期望更少才奇怪"]
    end

    subgraph 工程視角["程式設計師視角"]
        direction TB
        B1["這些期望極端"]
        B2["這些期望不可能"]
        B3["這些期望瘋狂"]
    end

    管理視角 -.->|"期望落差"| C["軟體產業的核心失敗"]
    工程視角 -.->|"期望落差"| C

    style C fill:#d62828,color:#fff
    style 管理視角 fill:#f0fff0,stroke:#2d6a4f
    style 工程視角 fill:#fff5f5,stroke:#d62828

Bob Martin 以一句話總結 Part II 的口吻:

As your new CTO, I expect. …

(作為你的新 CTO,我期望……)


Part II 章節總覽#

本書第二部分討論軟體專業人員應當自我要求的標準(Standards)。如果說紀律是「如何做」,標準就是「做到什麼程度」。作者從程式設計師與管理者兩種不同視角出發,定義了專業軟體開發者應達到的水準。

Part II 包含三個章節:

  • Productivity(生產力):軟體應保持低廉的變更成本、系統應隨時處於可部署的就緒狀態、產出應穩定而非波動劇烈
  • Quality(品質):持續改善、無所畏懼的能力(Fearless Competence)、QA 不應發現任何缺陷的極致標準、自動化測試的不可妥協性
  • Courage(勇氣):誠實面對困境——敢於說「不」、誠實估算、持續學習、將自己的知識傳承給他人

這三個標準互相關聯:沒有品質就沒有真正的生產力,而維持品質與生產力都需要勇氣。作者透過這一部分傳達一個核心訊息——專業不只是擁有技能,更是對自己的工作設定高標準並始終堅守。