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