文件假說的由來#

「文件假說」這個詞彙借自聖經學術研究,原指舊約聖經由多份獨立文件彙編而成的理論。Brooks 借用這個概念,提出一個類似的主張:任何專案的管理,都可以用一小組關鍵文件來支撐。這些文件不需要很多,但缺一不可。

文件的價值不在於它記錄了什麼,而在於撰寫文件的過程迫使你做出決策。許多混沌不明的問題,在你試圖將它寫成文件的那一刻就必須釐清。

軟體專案的關鍵文件#

Brooks 列出了軟體專案中不可或缺的核心文件清單:

1. 目標(Objectives)#

系統要做什麼?為誰做?達成什麼商業目標?這份文件定義了專案存在的理由,是所有後續決策的基礎。

2. 規格書(Specifications)#

即使用者手冊或架構文件。這是系統外部行為的完整描述——使用者會看到什麼、能做什麼。Brooks 在前幾章已經詳細論述了規格書的重要性。

3. 時程(Schedule)#

包含里程碑、截止日期和各項任務的時間分配。時程是管理者追蹤進度的主要工具。

4. 預算(Budget)#

資金的分配計畫。這包含人力成本、設備成本和其他資源的配置。

5. 組織架構圖(Organization Chart)#

誰負責什麼?向誰匯報?團隊之間如何協調?這份文件定義了人員的角色與責任。

6. 空間配置(Space Allocation)#

團隊的實體空間安排。在 Brooks 的時代,這包括辦公室和機房的分配。在今天,這可能延伸到遠端協作工具和溝通管道的規劃。

7. 預估與預測(Estimate, Forecast, Prices)#

成本預估、市場預測和定價策略。這些數字驅動著商業決策。

大學科系的類比#

為了說明這組文件的通用性,Brooks 以一個大學資訊科學系為例:

  • 目標 → 課程描述與教學目標
  • 規格書 → 學位要求與課程大綱
  • 時程 → 教學排課與任務分配
  • 預算 → 科系年度預算
  • 組織架構 → 教職員名單與委員會分工
  • 空間配置 → 教室、實驗室和辦公室分配

這個類比展示了一個重要事實:無論管理的是軟體專案還是學術機構,所需的核心文件結構驚人地相似。這暗示了管理的本質具有跨領域的共通性。

如果你在管理一個專案卻說不出上述七份文件的內容,那麼很可能有些關鍵決策尚未做出——你只是還沒意識到而已。

文件的三重功能#

Brooks 認為這些關鍵文件同時服務三個目的:

迫使決策#

撰寫文件的過程本身就是決策的過程。當你試圖寫下「系統應該如何處理 X 情境」時,你就不得不做出選擇。許多在口頭討論中可以含糊帶過的問題,在落筆的那一刻都無處遁形。

傳達決策#

文件是將決策傳遞給所有相關人員的載體。口頭傳達容易走樣、遺忘或產生歧義;書面文件則提供了一個穩定、可查閱、可追溯的溝通媒介。

追蹤狀態#

文件構成了一個資料庫,管理者可以透過它追蹤專案的當前狀態、歷史變更和未來計畫。定期更新文件並比較實際進度與預期計畫,是專案管控的核心機制。

不要把文件當作一次性的工作產出。文件應該是活的——隨著專案推進持續更新。過時的文件比沒有文件更危險,因為它會傳達錯誤的資訊。

康威定律的再次印證#

Brooks 在本章再次引用了康威定律:系統的設計反映了組織的溝通結構。因此,組織架構圖本身就是一份設計文件——它不僅定義了誰向誰匯報,更隱含地決定了系統將如何被分割和整合。

這意味著管理者在繪製組織架構圖時,應該同時意識到自己正在做一個系統架構的決策。

管理者的真正職責#

Brooks 在本章的結尾提出了一個精闢的觀點:

管理者的任務不是親自做出所有決策,而是確保所有必要的決策都被做出。

文件就是實現這個目標的工具。當你看到文件中有空白、有含糊、有矛盾時,就代表有決策尚未完成。管理者的工作是識別這些空白,並推動相關人員去填補它們。

缺少文件的專案不是「敏捷」,而是「失控」。敏捷開發減少的是不必要的文件,而非關鍵的決策記錄。上述七份核心文件,無論你採用什麼開發方法論,都是不可省略的。

本章重點#

  • 每個專案都需要一小組關鍵文件:目標、規格書、時程、預算、組織架構、空間配置、預估
  • 這組文件結構具有跨領域的通用性——從軟體專案到大學科系皆然
  • 文件同時服務三個目的:迫使決策、傳達決策、追蹤狀態
  • 組織架構圖本身就是系統設計的一部分(康威定律)
  • 管理者的核心職責是確保所有決策都被做出,文件是實現這個目標的工具