溝通回饋是為了疏通與其他人交互的管道。一方面保證資訊能夠傳達出去,減少因為理解偏差造成的工作疏漏;另一方面確保我們能夠準確接收外部資訊。

用資訊論理解溝通#

溝通的本質是編碼解碼的過程:

sequenceDiagram
    participant S as 發送方
    participant M as 訊息通道
    participant R as 接收方

    S->>S: 編碼(將想法轉為語言)
    S->>M: 傳送訊息
    M->>R: 傳遞
    R->>R: 解碼(理解語言含義)
    R-->>S: 回饋確認理解
    Note over S,R: 不同角色間存在上下文差異<br/>理解偏差要早發現早回饋

不同角色間存在上下文差異,需要分段解碼,理解偏差要早發現早回饋。

通過溝通回饋,不斷升級自己的編解碼能力。

程式碼也是溝通#

寫程式碼的進階路徑:

  1. 編寫可以運行的程式碼
  2. 編寫符合程式碼規範的程式碼
  3. 編寫人可以理解的程式碼
  4. 用業務語言寫程式碼

程式碼是寫給人看的,順便讓機器執行。用業務的語言寫程式碼,讓領域專家也能讀懂。

會議是重量級溝通#

會議的問題:

  • 佔用所有參與者的時間
  • 容易跑題或拖延
  • 決策效率低
  • 減少參會人數
  • 能面對面溝通就不開會
  • 會前準備:把觀點寫下來發給主持人
  • 設置時間緩衝:30 分鐘會議設 25 分鐘

視覺化溝通#

看板(Kanban) 是一種來自精益生產的視覺化實踐:

  • 按階段將任務放置其中
  • 可以幫助發現問題(如某階段堆積過多)
  • 讓進度一目了然

多嘗試用視覺化的方式進行溝通。一張圖勝過千言萬語。

走近使用者#

聆聽使用者聲音的三個層次:

  1. 能做自己使用者,做自己的使用者
  2. 能接近使用者,接近使用者
  3. 沒有使用者,創造使用者

產品經理和開發想出來的很多是偽需求,客戶關注的才是真需求。

Fail Fast 原則#

一種編寫程式碼的原則:出現問題盡早報錯。

  • 有問題盡早暴露
  • 不要隱藏錯誤
  • 事情往前做,問題及早發現

儘早暴露問題,而不是等到最後一刻。被指責往往是因為問題暴露得太晚。

複盤:回顧會議#

軟體團隊複盤的一種實踐:

flowchart LR
    A[📝 枚舉關注點] --> B[🗳️ 選出重點]
    B --> C[🔍 深入討論]
    C --> D[✅ 列出行動項]
    D --> E[👤 找到負責人]

    style A fill:#e3f2fd
    style B fill:#e3f2fd
    style C fill:#fff3e0
    style D fill:#e8f5e9
    style E fill:#e8f5e9
  1. 枚舉關注點:每個人列出關注的問題
  2. 選出重點:投票選擇最重要的議題
  3. 深入討論:分析根本原因
  4. 列出行動項:明確改進措施
  5. 找到負責人:確保落實

5 個為什麼#

沿著一條主線追問多個問題,直到找到根本原因。

5個為什麼範例
sequenceDiagram
    participant Q as 提問者
    participant A as 問題追溯

    Q->>A: 為什麼網站掛了?
    A-->>Q: 伺服器沒響應

    Q->>A: 為什麼伺服器沒響應?
    A-->>Q: 記憶體用完了

    Q->>A: 為什麼記憶體用完了?
    A-->>Q: 有個查詢沒加分頁

    Q->>A: 為什麼沒加分頁?
    A-->>Q: 需求沒有明確說要分頁

    Q->>A: 為什麼需求沒明確?
    A-->>Q: 需求評審沒有檢查清單

    Note over Q,A: 🎯 根本原因:需求評審流程需要改進

好的複盤需要有坦誠的文化氛圍,否則可能變成互相指責甩鍋。

金字塔原理#

結構化表達的方法:

flowchart TB
    C[🎯 中心論點]
    C --> S1[分論點 1]
    C --> S2[分論點 2]
    C --> S3[分論點 3]
    S1 --> E1[論據]
    S1 --> E2[論據]
    S2 --> E3[論據]
    S2 --> E4[論據]
    S3 --> E5[論據]
    S3 --> E6[論據]

    style C fill:#1565c0,color:#fff
    style S1 fill:#42a5f5,color:#fff
    style S2 fill:#42a5f5,color:#fff
    style S3 fill:#42a5f5,color:#fff

結論先行,然後展開論證。

多輸出,讓知識更有結構。寫文件也是一種學習方式。

實戰指南#

情境行動指南
日常溝通不斷升級自己的編解碼能力
寫程式碼用業務的語言寫程式碼
需要開會時多面對面溝通,少開會
展示進度用視覺化的方式
問題排查定期複盤,找準問題根因
理解需求多走近使用者
遇到問題事情往前做,有問題盡早暴露
分享知識多輸出,讓知識更有結構