💡 核心矛盾:實作與決策的脫鉤
為什麼「傳聲筒效應」是致命的?
資訊在層級間傳遞時,會發生以下損失:
- 商業動機 (The “Why”): 被簡化為「老闆要的」。
- 邊界條件 (Edge Cases): PM 可能忽略了技術上的極端情況。
- 技術債成本 (Technical Debt): 決策者通常看不見為了快而犧牲的架構完整性。
🛠 系統型工程文化的具體實踐
要打破這種斷層,不能只靠「多開會」,而是要建立非同步且透明的機制:
1. RFC (Request for Comments) 流程
這不僅是技術文件的交流,更是一種決策透明化的工具。
- 目的: 在寫程式碼之前,先寫下「為什麼要這樣設計」以及「考慮過哪些備案」。
- 價值: 讓初級工程師也能看見資深架構師的思考脈絡。
2. ADR (Architecture Decision Records)
記錄下每一個重大架構決策的時空背景。
- 痛點解決: 避免兩年後的工程師看著程式碼大罵:「是誰寫出這種垃圾?」
- 真相: 當時可能是為了符合某個現在已不存在的法規限制。
3. 領域驅動設計 (Domain-Driven Design, DDD)
鼓勵工程師與 Domain Expert(領域專家) 直接對話。
- 透過 Event Storming 等工作坊,讓工程師直接參與梳理業務流程,而不是隔著 PM 猜需求。
🚀 從「碼農」進化為「系統建造者」
System Thinker 其實就是具備「產品意識」的工程師。在矽谷,這類人常被稱為 Product Engineer。
| 維度 | 任務執行者 (Coder) | 系統建造者 (System Builder) |
| 關注點 | 如何寫出這段邏輯 | 這個功能解決什麼問題 |
| 對待需求 | 照單全收 | 挑戰需求、尋求更簡單的替代方案 |
| 溝通語言 | Syntax, Framework, Database | Scalability, Trade-offs, User Impact |
| 價值體現 | 產出的代碼量 | 系統的穩定性與業務成長 |
結語:
管理者不懂技術,只懂商業邏輯、PM略懂技術、懂使用者需求,但無法完美傳達實作該注意的地方、工程師不懂商業邏輯或動機,只能憑空或簡略的要求去實作。這都是造成軟體品質不佳或不符預期的根本原因。
工程的本質從來不只是寫程式。一個真正好的系統,必須同時整合技術、使用需求、商業目標與外部限制。如果關鍵設計資訊只掌握在少數人手中,而真正每天在建構系統的人卻被蒙在鼓裡,組織很難發展出健康的工程文化。
有正確的工程文化,才能達成好的軟體品質。而工程師也不會只是coding monkey,能產生真正的價值。
因此,一個成熟的工程組織應該努力做到一件事:讓設計過程透明,讓每一位工程師都有機會參與系統層級的思考。只有這樣,工程師才不再只是「完成任務的人」,而是真正有影響力的系統建造者。