I believe that it is better to be looked over than it is to be overlooked.
— Mae West, Belle of the Nineties, 1934

核心概念#

不只是你擁有什麼,還有你怎麼包裝它。
擁有最好的想法、最棒的程式碼,或最務實的思維,如果你無法與他人有效溝通,最終都是徒勞的。
好的想法如果沒有有效溝通就是孤兒。

作為開發者,大部分時間都在溝通:
會議中聆聽和談話、與終端用戶合作、寫程式碼、寫提案和報告、在團隊中倡導想法。

Tip 11 - English is Just Another Programming Language(英語只是另一種程式語言)

把自然語言當作你寫程式碼一樣對待:遵循 DRY 原則、ETC、自動化等。

溝通的關鍵要素#

了解你想說什麼#

商業溝通中最困難的部分是弄清楚你到底想說什麼。
寫大綱,然後問自己:「這能以對我的受眾有效的方式傳達我想表達的嗎?」反覆精煉直到可以為止。

了解你的受眾#

你只有在傳達你想傳達的意思時才算是在溝通。
你需要了解受眾的需求、興趣和能力。

對不同的受眾,用不同的方式呈現同一個技術更新。收集回饋,持續改進你對受眾的了解。

選擇時機#

讓你說的話在時間上也相關。
有時只需要問:「這是個談論…的好時機嗎?」

選擇風格#

根據受眾調整你的交付方式。
有些人想要正式的「只要事實」簡報,有些人喜歡先閒聊。
他們的技術水平如何?如有疑問,直接問。

讓它好看#

你的想法很重要,它們值得一個好看的載體。
花時間學習排版和格式工具。
檢查拼字——先自動檢查,再手動檢查。

讓受眾參與#

如果可能,讓讀者參與文件的早期草稿。
取得回饋,建立良好的工作關係。

做一個傾聽者#

如果你想讓別人聽你說話:傾聽他們
如果你不聽他們的,他們也不會聽你的。鼓勵別人發言,把會議變成對話。

回覆別人#

總是回覆郵件和留言,即使回覆只是「我稍後回覆你」。
讓人們保持知情會使他們更容易原諒偶爾的疏忽。

Tip 12 - It’s Both What You Say and the Way You Say It(既是你說什麼,也是你怎麼說)

溝通越有效,你就越有影響力。

文件#

Tip 13 - Build Documentation In, Don’t Bolt It On(將文件內建,而非外掛)

務實的程式設計師將文件視為整體開發過程的一部分。
但這不代表每個函式、資料結構、型別宣告都需要自己的註解——這種機械式的註解寫法實際上讓維護更困難。

限制非 API 註解討論為什麼做某事、它的目的和目標。
程式碼已展示了怎麼做,對此加註解是多餘的且違反 DRY 原則。

技巧: 註解原始碼是記錄工程取捨、決策原因和被放棄的替代方案的絕佳機會——
這些是無法在其他地方記錄的。

線上溝通#

關於寫作的一切也適用於電子郵件、社群媒體貼文和部落格:

  • 發送前校對
  • 檢查拼字和自動修正的錯誤
  • 保持格式簡潔清晰
  • 引用保持最少
  • 不要發出你不願意當面說的話
  • 檢查收件人名單

溝通摘要#

  • 知道你想說什麼
  • 了解你的受眾
  • 選擇時機
  • 選擇風格
  • 讓它好看
  • 讓受眾參與
  • 做一個傾聽者
  • 回覆別人
  • 將程式碼和文件放在一起

相關章節#

  • Topic 15,估算
  • Topic 18,強力編輯
  • Topic 45,需求之坑
  • Topic 49,務實的團隊