Wednesday, May 30, 2012

What Makes a Good Engineering Culture

http://laoyaoba.com/ss6/html/71/n-318471.html
http://www.eettaiwan.com/ART_8800667641_675327_NT_ef6f6748.HTM
http://www.slate.com/blogs/quora/2012/05/24/what_makes_a_good_engineering_culture_.html


最近在Quora社群問答網站上出現了一個有趣的問題:如何打造一個優質的 工程文化 
該社群問答網路的一位 軟體工程師 Edmond Lau表示,在聽過好幾百位年輕工程師在工作面試時描述自己喜歡或不喜歡原本公司的工程文化後,他的心中開始產生了這樣的疑問。
因此,以這些工程師回覆的答案,以及他曾經待過Google、Ooyala與Quora的職業生涯經驗為基礎,Lau整理出打造一個良好工程文化本質的幾項要件。
首先,為例行工作的決策流程實現最佳化。 這意味著經理人們應該給予工程師和設計者自行決定日常例行任務的彈性度與自主權,不必再凡事都得要求主管的許可。 Lau表示,簡化決策過程可提高工作的積極度與生產力,而繁瑣的官僚作風則可能打擊工程師的豪情壯志。
Lau憶及在Google任職時,對於用戶明顯可見的任何搜尋結果改變都必須取得該公司副總裁Marissa Mayer的親自批准,Lau認為​​ 這種決定「顯著地阻礙了創新」。
其次,支撐強大工程文化的基礎在於持續地邁向自動化發展,這也是減少工程師業務負擔的方式。 Lau認為 ​​,「自動化解決方案和腳本重複的任務是很重要的,因為它確保了服務可自動重新執行,讓工程團隊得以騰出時間來開發實際的產品,」。
第三,建立正確合適的軟體抽象概念,為其進行簡化並減少客制校準的必要。 「包括Memcached、Redis與MongoDB等系統變得越來越普及且可靠,可減少建構客制儲存與快取系統的必要,」Lau認為,這比採用只著重 ​​某部份的特定方案更好。
第四,強調程式碼品質以及程式碼審查 據Lau表示,「更乾淨的程式碼較易於判斷、更快進行開發,也更易於因應變化修改,以及較不易出錯。」
Lau建議應該適時地為程式碼審查建立完整流程。 如果事先知道某些程式碼將送交他人進審查,應該會為工程團隊帶來正面積極的同儕壓力,也能避免在工作流程中出現「難以維護且未經測試的程式碼」。
第五、共同分享程式碼的所有權。 Lau認為​​ 這將有助於減輕個別工程師的責任與壓力,同時也避免工程師過度看重自己在一項計劃的重要性。
此外,讓工程師能自在地選用各種不同的程式碼,還能避免他們受限於某些計畫而無法盡性發揮,同時也為他們的工作提供多樣化選擇。
維持一個彼此尊重的工作環境也相當重要。 不過,這並不是指每個人都處在一個小心謹慎的環境,而是要建立一個「讓人感到能自在地提出看法並挑戰彼此」的地方。
針對自動化測試設備進行投資,這對於一家公司的工程文化也非常重要,因為它可「為免於大規模重組現有程式碼提供了信心與保護。」事實上,Lau指出,缺乏嚴格的自動化測試,許多計劃也會因而延宕。
時間,特別是創新的時間 根據Google的「20%時間原則」,工程師們每天都能利用一些時間自由地去做他們認為值得投入的其他研究計畫。 Lau舉例說,Gmail就是Paul Buchheit利用其20%的時間所開發出來的,他在一天之中就建構出第一版的Gmail。 此外,Google News、Google Transit與Google Suggest等都來自於Google的20%時間原則。
除了 ​​為工程師提供更多真正能實現創新的時間以外,Lau並建議企業建立起一種學習的文化,也可以透過舉辦一些每周高科技會談等活動,為工程師提供一個擴展其工作領域的空間與方式,鼓勵員工持續自我提升。
聘請優秀的人才 「如果你心中認定某個人是『B咖』,那你也很難真的尊重他,」Lau補充,如果你無法信任某位工程師的才能,那就更難以賦予他自行決定產品開發的自主性。 「在矽谷流傳著一個由Steve Jobs創造出來的說法,一流的廠商只用最優秀的人才。(A players hire A players. B players hire C players.)」
工程師們大致上對於Lau的許多看法表示認同,而且也增加了一些他們自己的想法。 有的人說改善工程文化的最重要方式就是讓工程師來決定輕重緩急,而不是交由非技術的管理團隊來決定。 有些則對於管理團隊的作法頗有微詞。
其中還有一位工程師表示:「我們很不喜歡那種看不起人的作法。能不能就讓工程師去做他們想做的事,你只管去找好的工程人才;而你甚至都不必開口要求,他們就會為你的公司創造奇蹟!」
你同意Lau的看法嗎? 你認為打優質的工程文化還應該具備哪些條件? 當你打算轉換跑道時,你希望新公司應該提供什麼樣的工程文化環境? 請說說看您的想法,我們將洗耳恭聽。

No comments:

Related Posts Plugin for WordPress, Blogger...