這兩天看到 Quora 上一個不錯的問題︰What makes a good engineering culture? (是什麼造就了好的軟體工程文化?) 這個其實也是最近我在思考的問題之一,而評分最高的答案,剛好是一位 Quora 的軟體工程師所回答的。

因為回文的內容我還滿喜歡的,所以試著用爛爛的英文跟中文,來翻譯文章中提出來的 10 點想法。我儘量逐字句翻譯,冒號後算是我的小小理解或註解這樣。對細節有興趣的朋友們就回頭去看看內文吧︰

[Edit]
關於第 6 點 Shared Code 的觀念,在搞笑談軟工部落格中,也有一篇好文︰Shared Code:讓我們變成博格人吧,解釋了這個觀念,可以順便參考閱讀。

  1. Optimize for iteration speed. (迭代速度的最佳化︰加速產品/專案迭代的速度)
  2. Push relentlessly toward automation. (不顧一切的朝自動化方向推進︰儘量將瑣事自動化、排程化)
  3. Build the right software abstractions. (建立正確的軟體抽象化架構︰保持核心架構簡單,可以有效提升團隊效率,和方便採用第三方架構或函式庫)
  4. Develop a focus on high code quality with code reviews. (採用 code review 的方式,使團隊聚焦於高品質的程式碼)
  5. Maintain a respectful work environment. (建立並維持一個互相尊重的工作環境)
  6. Build shared ownership of code. (建立程式碼共有的環境︰專案中的程式碼,屬於團隊中的所有人所共有。團隊成員對系統中的程式碼好壞具有集體意識,對於不良的設計皆可以動手進行調整修改)
  7. Invest in automated testing. (投資於自動化測試)
  8. Allot 20% time. (20% 時間的分派︰典型的例子是 Google,員工擁有 20% 開發自己作品的時間)
  9. Build a culture of learning and continuous improvement. (建立一個持續學習與改善的文
  10. Hire the best. (聘用最好的人)