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