Google 的軟體工程之道 (21) — 如何做好團隊合作

https://innovecs.com/blog/building-software-development-teams/

此系列為 【 Google 的軟體工程之道 】一書的書摘與點評,期待用最精要的文字,帶來豐富的內容分享。預計 2~3 周左右會有一篇更新,歡迎追蹤支持!

【 Google 的軟體工程之道 】全系列: https://medium.com/@johnliutw/list/da301cc31b15

核心思想

不管如何,軟體是由人所生產,是團隊合作的成果,需要遵從謙遜、尊重和信任的核心價值觀

團隊合作的不利因素

  1. 不安全感: 曾經,在 Google 內部的一個流行內部需求,聚焦在怎麼隱藏 branch,將程式碼的 commit 記錄刪除等等… 這都圍繞著一個核心問題: 對於手上的工作缺乏安全感。
  2. 天才神話: Linux 不只是 Linus 的發明,而是社群集體努力的成果,但這卻容易被忽略。真正的天才其實非常稀有,但我們大部分人都不是天才,絕大多數工作也不需要天才,但至少都需要基本的社交能力。
  3. 隱藏可能的傷害: 試圖遮蓋自己正在進行的工作,害怕被發現不完美。但這可能會導致部分問題其實能透過他人視角快速解決,而不被盲點給侷限。但要小心,避免在方向和目標不明確時,過早獲得太多回饋
  4. 巴士因子: 團隊裡多少人被巴士撞倒會導致專案失敗。如果人數越少,越危險,代表有知識孤島現象,這是任何大型軟體團隊都應避免的狀況,理想上,每個人都能被取代。
  5. 進展速度: 快速的開發回饋很重要,避免花了大半時間成本後才能執行獲得回饋,而是要儘早測試與糾錯。可參考測試左移的概念:

6. 不洽當的工作環境: 不管是一間獨立辦公室和關著的門來隔絕溝通,或是上百人的團聚開放辦公室,都是對團隊產能來說很糟糕的設計。前者無法受益於團隊開發,後者會讓工程師們不再說話。

建立良好團隊合作的要件

  1. 強調三個重要核心價值觀: 對於自己的產出與重要性保持謙遜、尊重與自己工作的所有人、信任團隊夥伴有能力做對事情
  2. 避免自負,不需要自認為需要說每一個主題的第一句話和最後一句話
  3. 學會給出有建設性的建議和接受評論,避免針對人的評論來讓人覺得被冒犯,然後進而陷入情緒化的狀態
  4. 接受失敗,沒有遭遇過失敗,則無法創新或是承擔足夠的風險
  5. 確保不會有追究責任的事後檢討文化,應該要聚焦在事件的發生過程、損害評估,以及避免問題再發生的解決方案
  6. 保持耐心,接受個體間的差異,並尊重不同的意見,找出合作的模式

如果喜歡這個系列的話,歡迎將此連結加入你的最愛:

【 Google 的軟體工程之道 】全系列 https://medium.com/@johnliutw/list/da301cc31b15

--

--

Johnliutw
JohnLiu 的軟體工程思維

熱愛軟體全端技術開發,較為擅長 Web 領域,並有多年線上與線下授課經驗,專精軟體新手教學。 相關合作: johnliutw@hotmail.com