谷歌的軟件工程文化:激發創造力、鼓勵自主性

谷歌進行了幾項研究,以更好地理解經理和文化對團隊績效的影響。2008年,他們發表了“氧氣項目”的相關發現,並於2018年發表了一項後續研究。在2008年發現的8個最佳經理人行爲中,他們發現了兩種新的行爲,它們是橫跨整個谷歌的協作性和強有力的決策。

在2019年,Seth Richtsmeier 分享了一些對谷歌今日的成功產生了幫助的文化實踐。這些文化實踐包括,公司創造了這樣一個環境,它鼓勵人們的創造力和自主性,並建議透明性和跨職能協作,以加快信息共享和創新。

谷歌的軟件工程師 Fergus Henderson 在2017年發表了一篇文章,描述了谷歌的軟件工程實踐,他認爲這些實踐對公司的成功和軟件開發人員對該公司的喜歡程度做出了巨大貢獻。Henderson總結了關鍵的工程技術和實踐,這些技術和實踐廣泛地在團隊間共享,這些團隊在谷歌內都經受住了時間的嚴格考驗。

第一個關鍵實踐是使用代碼存儲庫:大多數開發人員的代碼都存儲在一個統一的源代碼庫中,所有軟件工程師都可以訪問這些源代碼。寫訪問權限是受控制的,但是工程師可以訪問任何代碼並進行修改,只要這些修改可以獲得代碼所有者的批准就能夠提交入庫。當涉及到代碼所有權時,存儲庫的每個子樹都有一個列出了用戶ID的文件。每個子樹的所有者控制對該子樹的寫訪問權,整個團隊都列在所有者的文件中。

該構建基於一個名爲Blaze的分佈式系統,用於編譯和鏈接軟件以及運行測試。Blaze爲構建和測試整個代碼庫的軟件提供了標準命令。這些標準實踐允許工程師在代碼庫中快速、安全地構建和測試軟件,並允許工程師輕鬆進行跨項目的更改。每次構建工作都分佈在數百甚至數千臺機器上,這可以快速構建非常大的程序或並行運行數千個測試。

軟件工程師使用內部開發的基於web的工具執行代碼審查。對主要源代碼庫的所有更改都需經由至少其他一位工程師進行評審。

軟件重寫每隔幾年就會發生一次,這會消耗大量的資源,但它保證了公司快速適應市場需求和變化的能力。工程師重寫代碼以減少逐漸積累的遺留性代碼和代碼複雜性,並允許他們將自己的知識和代碼所有權轉移給新的團隊成員。這些重寫確保谷歌的代碼基礎是使用現代技術和工程實踐編寫的。

從文化上講,工程師有權修復任何損壞的代碼,不管產品邊界如何,他們通過這個方式來確保他們的產品符合公司的最高質量標準。

同樣在2017年發表的一篇文章中,曾於2006年至2008年在谷歌工作的Edmond Lau證實,谷歌傳授着有價值的工程技術,這可以幫助工程師在職業生涯中取得成功,但他指出,大多數工程師都受限於開發和協調大型的、全球性的產品。工程師在迭代、確定優先級、做出產品決策、甚至採取行動或根據結果確定時間優先級方面的靈活性更低。

原文鏈接:

Google Software Engineering Culture

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章