沉默的高昂代價:為什麼工程師不對糟糕的架構提出異議

架構災難鮮少是技術知識不足的結果。在大多數情況下,現場的工程師清楚地知道為什麼某個決定是有缺陷的;他們只是發現,說出心聲的社交成本太高了。當異議的成本超過了防止失敗的預期收益時,沉默就成了理性的選擇。

這種動態關係在技術現實與企業「一致性」之間創造了一個危險的鴻溝。在許多組織中,「一致性」並非指達成共識,而是指缺乏明顯的異議。當這個鴻溝擴大時,公司不僅在累積技術債,還在培養一種「習得性無助」的文化。

沉默失敗的解剖學

每一次重大的架構崩潰都遵循著類似的模式:那些最接近工作的人發現了明顯的技術問題,但反對的社交成本阻止了這些資訊傳遞給決策者。其結果是,一個在共識的偽裝下通過的決定,隨後卻發生了災難性的失敗。

歷史案例說明了跨不同行業的這種模式:

  • Nokia: 工程師意識到 Symbian 從根本上無法應對觸控螢幕時代。然而,向上層呈報壞消息被視為職業風險。知識確實存在,但它從未傳遞出去,導致了其手機部門最終的崩潰。
  • Boeing: 內部溝通顯示,工程師敏銳地察覺到與 MCAS 系統相關的風險,該系統依賴單一感測器。生產進度與成本壓力掩蓋了這些警告,導致了悲劇性的後果。
  • TSB Bank: 在一次「Big Bang」IT 遷移過程中,技術上的反對意見被提出,但為了配合上線時程而遭到忽略。隨之而來的系統崩潰導致數百萬客戶無法存取帳戶。
  • Microsoft: 為了在 Windows CE 核心上構建 Windows Phone 的推動,忽略了內部警告。即使開發了基於 Android 的替代方案 (Nokia X),也被斥為「對願景的不忠誠」。

為什麼工程師保持沉默

詢問「為什麼當時沒人說話?」是組織將責任推卸給個人,同時忽略了鼓勵沉默的系統性誘因的便利方式。

異議的社交稅

提出異議往往帶着沉重的標籤。提出疑慮的工程師經常被貼上「不具團隊合作精神」、「消極」或「好鬥」的標籤。一旦工程師經歷過這種情況——或目睹同事遭遇此事——他們就會學到,專業精神等同於沉默。

HiPPO 效應與指標崇拜

在許多會議中,一旦 HiPPO (Highest Paid Person's Opinion) 被提出,討論就會立即結束。這被重新包裝成「一致性」的投降。此外,公司經常使用指標來終結爭論,而不是用來衡量現實。如果一個 A/B test 顯示彈出視窗增加了點擊率,討論就會結束,即使長期的用戶體驗正在惡化。

心理上的代價:習得性無助

當第一個錯誤的決定未受挑戰時,它就樹立了一個先例。這不僅僅是技術債;這是「疤痕組織」。新進員工進入環境並觀察到質疑是異常的,進而導致一種習得性無助的狀態。

正如一位參與社群討論的貢獻者所言,保持沉默的誘因往往與基本的穩定性有關:

"There is no incentive to speak up... There is incentive to stay quiet: getting the paycheck and a stress-free evening with my family."

超越沉默:實際的異議方式

有效的異議並非指陳述一個決定是「錯誤」的——這聽稱像是對決策者的個人攻擊。相反,真正的異議應該是讓隱形的風險變得可見。它涉及將反對意見框架化為具體的風險與權衡:

  • "What does this decision cost us in 18 months?"
  • "How are we handling this specific risk in testing?"
  • "What is the rollback plan if this goes sideways?"

這些問題強迫決策必須自證其合理性,並為會議室中持有相同疑慮的人提供掩護。

建立心理安全感的文化

解決這個問題需要結構性的改變,而非要求個人展現勇氣。組織必須將決策與提出異議的人分開。這可以透過以下方式達成:

  1. Blameless Postmortems: 將失敗視為數據點,而非績效問題。
  2. Formalizing Dissent: 實施類似 Amazon 的 "disagree and commit" 框架,在選擇路徑之前記錄並聽取異議。
  3. Diplomatic Framing: 意識到工程師可能需要盟友,能夠將技術風險轉換為業務價值與風險管理語言。

最終,當一家公司中「正確」與「安全」是兩回事時,決策就不再由技術現實驅動——而是由會議室的社交動態驅動。最成功的技術組織是那些將異議視為關鍵安全機制,而非缺乏一致性的組織。

Sources