現代工程團隊的五個理論
經過5年的任期后, Kellan Elliott-McCrea 離開了 Etsy 。過去的4年,Elliott-McCrea是Etsy的首席技術官,在那之前,他是工程部的副總裁。在過去的5年內,軟件產品和工程團隊都經歷了翻天覆地的變革。這篇文章 宣布著他的離職 ,同時,Elliott-McCrea在文中詳細闡述了指導他完成那些變革的五個理論。
早在2009年, Etsy 作為一個大型的手工藝成品在線市場平臺,正在 奮力向外擴展 。但是,Etsy網站的可靠性比它應該表現的要糟糕的多,其原因主要跟它的架構有關,該架構起源于DevOps之前的文化。開發人員,DBAs和系統管理人員都專注于他們自己的筒倉。由此而引發的部署既大型又罕見。并且開發人員無法接觸產品。這就是DevOps之前的時代——第一場DevOpsDays會議于2009年在Ghent舉行——所以在當時,這就是開發和運營web網站最常見的方式。
當Elliott-McCrea加入時,變革就已經悄無聲息地醞釀著了,所以這也給他提供了一個測試他的理論的機會。
理論1:我們對軟件開發的“一無所知”,應該被認為是一種事實。
構建軟件是一個團隊努力工作的成果,但是軟件開發的大部分工具、流程和思維模式通常是個人開發者完成的。
理論2:技術是構建它的文化的產物。
文化是構建一切事物的基礎。文化允許你以一種松散耦合的方式進行伸縮。并且,文化是你如何行動,而不是如何談論。
文化并不意味著單一。正如Elliott-McCrea所說:“五年前,現實情況表明,更好的軟件通常是由那種多元性的團隊完成的,這種團隊是由彼此互相關心的一類人組成,但是這跟該行業的自我形象卻是對立的。”
理論3:軟件開發應該被看作是不斷學習和提升的循環,而不是從開始到結束的過程,或者是對正確性的搜尋。
Etsy每天要進行數十次的部署,這樣有利于他們從中學習和提升。有趣的是,Elliott-McCrea說,“成熟是你懂得什么時候該做出權衡,什么時候不該。”
理論4:你可以通過全球范圍內的優化而不是本地優化建立學習的文化。
通過共享的信念、工具和思維模式,使整個團隊同時提升。依賴一些搖滾明星式的程序員,既不是高生產力的最佳解決方案,也不如整體提升一樣令人滿意。
理論5:如果你想進行長期的構建,唯一的保證是改變。
你當前的答案要么目前就是錯誤的,要么很快就會被證明是錯誤的。所以團隊必須不斷的提問,假設理論并測試直到找出新的答案。
工程團隊變化最明顯的方面是,它如何向世界展示自己。這種開放的文化帶來了許多 開源工具 。其中有一些相當出名,比如 StatsD ,一個指標聚合器, Logster ,從日志文件中生成指標。 Etsy 的展示 也成為世界各地許多會議共同的特征, 在展示中,它的工程師從技術和文化方面論及了軟件工程的方方面面。Etsy每半個月,也會在Brooklyn的實驗室 主持嘉賓演講 。