如何阻止開發者重復發明輪子?
讓我們構建一個內部平臺
日益增長的復雜性導致許多企業采用中央平臺模式,其中內部平臺團隊的任務是審查工程師最需要的工具、構建模板并繪制黃金路徑,以簡化他們的生產過程。同時還集中財務、運營、安全性和治理等功能,以減輕個體開發者的認知負擔。
以音樂流媒體巨頭Spotify為例。Spotify產品經理Gary Niemen在2020年的一篇博文中寫道:“回溯到差不多六年以前,Spotify一直致力于用自主團隊打造敏捷工程文化。但這在帶來優勢的同時,也帶來了復雜性,包括一個分散的開發者工具生態系統,當你在系統里遇到問題時,唯一的方法就是詢問你的同事。”
隨著Spotify的擴展,它發現推動其快速增長的方法實際上已經開始拖累它。它需要整合和簡化。“好用或值得推薦的工具應該很容易被找到,使用該工具的過程應該很清楚,其中還應該有高質量的用戶說明。而且,用戶應該很明確地知道:如果自己遇到困難,能夠從哪里獲得支持。”Niemen寫道。
Humanitec的von Grünberg在2021年的博文中寫道,一個好的內部開發者平臺的關鍵是,在不讓開發者感到受限制的前提下,為想要繼續手頭工作的開發者提供自助服務和篩出沒有價值的任務之間找到平衡。
“擁有了最佳路徑并不意味著限制或扼殺工程師,也不是為了實現路徑而設定標準。而是當團隊有了最佳路徑,就不必重新發明輪子,只需做少量的決策,并且可以利用他們的生產力和創造力來實現更高的目標。他們可以快速恢復行動。”Spotify產品經理Niemen寫道。
但問題是,“開發者喜歡重新發明輪子。沒有什么比創造出更好的快捷鍵更讓他們滿意了?!鳖檰朣impson說。但是現在很多技術問題都能直接在Stack Overflow上找到解答了,這真的是開發者利用時間的最佳方法嗎?
微軟開發部門的產品CVP Amanda Silver表示:“總會有一些企業試圖壓制開發者的權力,而另一些企業則試圖賦予開發者權力,其核心理念是開發者的效率。我們可以構建一個系統,讓開發者去編寫只有他們才能編寫的代碼,而不會分心,或因學習他們不適合的領域而有負擔?!?/p>
成立于1987年的旅游科技公司Amadeus經歷了這些技術變革的浪潮,他們最開始在大型主機上構建應用程序,之后在2000年代初轉向了開放式的Linux平臺,現在又更傾向于使用 Kubernetes編排的容器化應用程序。
Amadeus基礎設施和云主管Edouard Hubin表示:“我們的開發者需要能夠在我們提供的核心上進行開發,因此我們的想法是為他們提供一個功能性平臺。新技術為安全性和穩定性帶來了更多的復雜性。當你打開一個系統時,你肯定希望它是穩定的。數據驅動應用程序的興起對我們來說有著完全不同的復雜程度。它帶來了一種編寫應用程序和構建反饋循環的新方法。這些都是新事物,都會帶來相應的復雜性?!?/p>
因此,Hubin希望通過內部團隊設計解決方案或在有意義的地方進行付費托管服務,來盡可能地隱藏復雜性。以數據庫為例,Amadeus過去自己管理MongoDB實例,但現在選擇使用供應商管理的MongoDB Atlas服務。該公司對管理Kubernetes 也抱有相同的想法。
但是工程師仍會將新工具引入生態系統。Hubin說:“有時必須拒絕這種情況。最近,有工程師試圖引入新的數據庫。他們的觀點是,就算標準選項不是那么好,公司從整體上仍然能更好地控制我們使用的數據庫數量?!?/p>
每個大型企業都有大量工程師,其中一些工程師專注于構建彈性系統和向客戶快速交付的功能,而另一些則拼命想要補齊最新技術。Two Sigma的Fournier說,這兩種工程師都有價值,但需要謹慎管理。
Fournier表示:“你需要那些熱衷于了解新事物和發現新事物的人,因為你需要人們來管理在裸機上的Kubernetes。同時你也需要那些熱衷于研究新事物的人,他們會了解這些新事物的工作原理,并知道如何使用它們會對公司更好。他們會是你制作原型時的好伙伴,并幫助你確定是否值得投資和解鎖新事物?!?/p>
作者:Scott Carey 是 IDG UK Enterprise Titles 的組編輯,主要為 InfoWorld 撰稿。
原文網址:https://www.infoworld.com/article/3639050/complexity-is-killing-software-developers.html