軟體開發中「資訊不對稱」的痛點 (也是間接促使工程師變成碼農的原因)


💡 核心矛盾:實作與決策的脫鉤

為什麼「傳聲筒效應」是致命的?

資訊在層級間傳遞時,會發生以下損失:

  1. 商業動機 (The “Why”): 被簡化為「老闆要的」。
  2. 邊界條件 (Edge Cases): PM 可能忽略了技術上的極端情況。
  3. 技術債成本 (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, DatabaseScalability, Trade-offs, User Impact
價值體現產出的代碼量系統的穩定性與業務成長

結語:

管理者不懂技術,只懂商業邏輯、PM略懂技術、懂使用者需求,但無法完美傳達實作該注意的地方、工程師不懂商業邏輯或動機,只能憑空或簡略的要求去實作。這都是造成軟體品質不佳或不符預期的根本原因。

工程的本質從來不只是寫程式。一個真正好的系統,必須同時整合技術、使用需求、商業目標與外部限制。如果關鍵設計資訊只掌握在少數人手中,而真正每天在建構系統的人卻被蒙在鼓裡,組織很難發展出健康的工程文化。

有正確的工程文化,才能達成好的軟體品質。而工程師也不會只是coding monkey,能產生真正的價值。


因此,一個成熟的工程組織應該努力做到一件事:讓設計過程透明,讓每一位工程師都有機會參與系統層級的思考。只有這樣,工程師才不再只是「完成任務的人」,而是真正有影響力的系統建造者。

探索更多來自 LifeJourney 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading