拿什么給軟件開發(fā)做減法?
供應(yīng)商如何應(yīng)對復(fù)雜性
谷歌云的首席開發(fā)倡導(dǎo)者Kelsey Hightower與云軟件行業(yè)的許多同行一樣,將開發(fā)者當(dāng)前可用的眾多選擇級別視為“禮物和詛咒”。
“禮物”是指開發(fā)者擁有幾乎無限的技術(shù)目錄的可用性來構(gòu)建,而“詛咒”是指開發(fā)者在他們的工作流程中還要面對基礎(chǔ)設(shè)施的問題。目前,隨著許多供應(yīng)商專注于托管服務(wù)和抽象化,事情似乎有了截然不同的變化。在一切都碎片化后,我們是否應(yīng)該進行大整合?
Hightower說:“這個職業(yè)不僅僅是編寫代碼,這只是達到目的的手段,也許我們已經(jīng)構(gòu)建了足夠多的東西,可以暫停構(gòu)建新事物,而去讓我們已有的技術(shù)更成熟,并好好地使用他們。也許這就是我們在過去十年中看到的 DevOps 和協(xié)作發(fā)展的圓滿結(jié)果?!?/p>
為了應(yīng)對這種復(fù)雜性,市場正在通過不斷增長的武斷性服務(wù)、托管選項、框架、資源庫和平臺列表,幫助開發(fā)者應(yīng)對復(fù)雜的環(huán)境。
O'Grady在2020年的一篇博文中寫道:“當(dāng)然,沒有供應(yīng)商能夠提供所有必要的部件,未來也不可能。即使是擁有最多樣化的應(yīng)用程序組合和前所未有的上新節(jié)奏的AWS,也無法滿足每個開發(fā)者的需求,亦無法涵蓋所有相關(guān)的開發(fā)者社區(qū)?!?/p>
話雖如此,O'Grady在另一篇文章中寫道:“有充分的證據(jù)表明,我們不再為難買家和開發(fā)者,不再讓他們承擔(dān)挑選原語和從頭開始構(gòu)建的任務(wù)。如果云的第一個時代是由原語定義的,那么它的時代即將結(jié)束。下一個時代可能由自計算行業(yè)成立以來就有的、我們建立在原語上的抽象思維來定義。”
雖然事實證明,將這些原語組裝到連貫的內(nèi)部平臺中對于許多工程主導(dǎo)的企業(yè)來說是一種成功的解決方法,但更傳統(tǒng)的企業(yè)還是還會找供應(yīng)商來幫助他們減輕這種復(fù)雜性。
Kubernetes聯(lián)合創(chuàng)始人、現(xiàn)VMware研發(fā)副總裁Craig McLuckie在接受采訪時表示:“復(fù)雜性不是問題,問題是開發(fā)環(huán)境的反復(fù)無常?!彼J為自己的角色是尋找方法“使開發(fā)者的生活更輕松,以應(yīng)對由工具鏈的碎片化和高度可擴展系統(tǒng)導(dǎo)致的日益復(fù)雜的環(huán)境。”
MongoDB的推廣者Matt Asay最近表示,“如今關(guān)于云的現(xiàn)狀是看誰能最好地集成多樣的云服務(wù)。云會變得更加精彩,確切地說,會變得單一乏味。”
需要機械同感
如果我們處于極簡化的邊緣,我們是否會失去作為軟件開發(fā)者的本質(zhì)?
正如傳奇的英國賽車手Jackie Stewart所說:“要成為一名合格的賽車手,你不必成為一名工程師,但你必須要有機械同感。”簡單來說,要真正做到出色,你必須了解你正在操作的機器。
雖然不能奢望現(xiàn)代軟件開發(fā)者能完全對他們構(gòu)建的復(fù)雜、可擴展的分布式系統(tǒng)產(chǎn)生機械同感,但他們可以在理解的過程中盡可能多地掌握要素。
“開發(fā)者也是系統(tǒng)人員。我們愿意去了解,從裸機到我們正在構(gòu)建的架構(gòu)中,系統(tǒng)是如何工作的。但與此同時,也有很多領(lǐng)域是你沒必要去深入探究的。”微軟的Silver說。
許多開發(fā)者和其團隊的任務(wù)是確定哪些是他們專業(yè)知識中最有價值的地方,以及哪些在做多余的工作中被浪費了。顧問Simpson說:“我們最大的希望是讓公司認識到這個問題,并努力讓開發(fā)者擺脫對機械工作的擔(dān)憂,使他們回到他們最擅長的軟件構(gòu)建上來?!?/p>
軟件開發(fā)者從來沒有面對過比今天更多的復(fù)雜性和可選項,而且也從來沒有這么多的選擇去抽象化,這取決于你和你的企業(yè)在追求目標時可以承受多少復(fù)雜性了。
作者:Scott Carey 是 IDG UK Enterprise Titles 的組編輯,主要為 InfoWorld 撰稿。
原文網(wǎng)址:https://www.infoworld.com/article/3639050/complexity-is-killing-software-developers.html