軟件工程中可持續(xù)性為什么很重要
譯文譯者 | 朱鋼
審校 | 梁策 孫淑娟
技術經理常常專注眼前成就而非本質影響??吹絾T工加班到很晚,他們會表現得滿心歡喜,相信這就等于生產力。但實際上,這種方法常會適得其反。
可持續(xù)的軟件開發(fā)會帶來更多益處。在軟件工程和軟件使用過程中,這種方法將軟件開發(fā)生命周期(SDLC)優(yōu)化 、財務和人力資源予以綜合??沙掷m(xù)軟件還意味著對環(huán)境的危害最小。鑒于2040年信息通信技術(ICT)將占全球碳足跡的14%,這一點至關重要。
為了實現軟件工程的可持續(xù)性,產品團隊需要主動納新,最大限度地降低復雜性,并關注軟件消耗的資源等。這些努力將產生深遠影響,從而改變行業(yè)面貌并有助于應對氣候變化。
軟件工程中的可持續(xù)性是什么?
首先,我們來厘清一下可持續(xù)軟件工程的概念。雖然許多公司表示他們采取了可持續(xù)方法,但實際上他們可能并沒有理解可持續(xù)真正意味著什么。因此,他們看起來遵循了一些可持續(xù)軟件開發(fā)的原則,但推出的解決方案仍然消耗過多資源。
可持續(xù)軟件開發(fā)作為一種綜合方法有兩個主要思想。首先,產品團隊應該使他們的解決方案盡可能地具有成本效益、生產力和生態(tài)友好。第二,優(yōu)化應提升產品質量。下面列出了一些可持續(xù)性原則,對軟件可持續(xù)性方法進行了詳細解釋。
為什么產品團隊應該努力實現可持續(xù)的軟件工程?
讓地球更環(huán)保,這樣的想法還不足以說服企業(yè)改變老式方法。通常,只有帶來商業(yè)利益或是符合法規(guī)要求才能加速企業(yè)變革。
軟件工程可持續(xù)性具有廣泛益處。產品團隊因此能創(chuàng)建專注于增長而不是故障排除的解決方案。總的來說,當開發(fā)不可持續(xù)時,團隊就會陷入糾正錯誤和財務損失的惡性循環(huán)。另一方面,可持續(xù)性軟件開發(fā)允許工程師在復雜性不斷增加的情況下不斷改進他們的服務。他們創(chuàng)建的可持續(xù)軟件比傳統(tǒng)產品使用更少的人力和硬件資源。
以下是可持續(xù)軟件的主要優(yōu)勢:
- 環(huán)保。可持續(xù)的軟件開發(fā)實踐需要環(huán)境友好,因此對環(huán)境破壞較小。到 2030 年,數據中心將消耗全球 8% 的電力,計算機系統(tǒng)的碳足跡也在穩(wěn)步增長。因此,現在開始減少由 ICT 造成的資源消耗和排放至關重要。
與數據中心運營相關的環(huán)境影響(美國)
??(來源)??
- 件可持續(xù)性確保采用全新的工程方法。可持續(xù)軟件工程雖然側重生態(tài),但也徹底改變了SDLC方法??沙掷m(xù)性也是對技術團隊工作的優(yōu)化,經理們無需在周末加班趕進度,而是真正提高了生產力。他們可以把時間花在組織更智能的工作上,以便享受日后更高的效率。
??(來源)??
- 可持續(xù)發(fā)展軟件通過更積極高效的團隊來增加收入。當技術團隊覺得他們開發(fā)的產品能為社會帶來真正價值時,就會有更高的積極性。他們提供更具創(chuàng)造性和更高效的解決方案,從而產生更多利潤。
- 可持續(xù)編程表明了對最終用戶和業(yè)務伙伴的重視。提供可持續(xù)軟件的公司聲譽更好。消費者認為這些品牌更可靠,并且通過使用這樣的解決方案,會對他們有積極影響。
- 可持續(xù)發(fā)展軟件可降低維護費用。由于可持續(xù)軟件減少了服務器上負載,且消耗功率更少,因此它更具成本效益。這對最終用戶和產品所有者都很重要。
- 可持續(xù)規(guī)劃可減少因遵守新法規(guī)而產生的意外成本。在接下來的幾十年里,我們將看到許多限制碳排放和資源過度使用的新規(guī)定?,F在就設計可持續(xù)軟件可以為未來做好準備,并簡化合規(guī)性方面的付出。當政府通過此類法規(guī)時,你無需重建產品就能滿足要求。
- 軟件工程的可持續(xù)性讓公司成為理想工作場所。當人們在考慮加入一個公司時,如果知道他們的工作將有助于實現這個美好理念,就可能作出加入公司的決定。在競爭激烈的勞動力市場中,這種優(yōu)勢至關重要,因為合格的人力資源總是有限的。
最后,如果想與市場頭部競爭,所有科技公司都應確保軟件的可持續(xù)性。遵循可持續(xù)發(fā)展原則,你的產品也會一直前進。這些產品將具有足夠的靈活性,從而能夠適應不斷變化的市場環(huán)境,而這樣的市場總是對優(yōu)化的需求更為迫切。
實現軟件可持續(xù)性的 3 個主要步驟
軟件可持續(xù)性需要對軟件開發(fā)最佳實踐、模型和方法進行革新。為了確保軟件工程的可持續(xù)性,團隊需要衡量產品消耗的能源量,而大多數技術團隊以前從未如此。因此,改變思維方式,變得更加環(huán)??赡芫哂幸欢ㄌ魬?zhàn)性。
編程如果要轉向可持續(xù),請按照以下建議步驟操作:
Step #1:為可持續(xù)發(fā)展軟件開發(fā)做好準備,讓團隊了解這一理念
很少有科技公司采用可持續(xù)的編程方法。他們專注于滿足當前用戶需求,而未制定戰(zhàn)略性的軟件可持續(xù)發(fā)展計劃。因此,為了實現軟件工程的可持續(xù)性,就需要重建現有業(yè)務模型。
確保實施自動化測試,避免過度設計,并采用工具來計算軟件對環(huán)境的影響。
Step #2::使用綠色代碼進行可持續(xù)編程
綠色代碼是為最小化算法的相對功耗而編寫的代碼。通過綠色編碼,物理服務器和系統(tǒng)的能源負載得以減少, 而這也是一種能夠實現可持續(xù)編程的趨勢方法。
要創(chuàng)建綠色代碼,你需要:
- 針對高能耗和常見使用場景優(yōu)化功能
- 刪除未使用的功能和循環(huán)
- 通過更高效的緩存策略、最小化的數據交換和壓縮來優(yōu)化數據使用
- 根據設備的電源模式和工作條件調整應用的工作方式
- 如果軟件包含 AI 功能,請選擇能耗較低的 ML 模型
Step #3: 評估產品影響
最后,你必須監(jiān)控所開發(fā)軟件的能耗,以確定可以優(yōu)化的模塊。這是一個逐步實現的過程,包含在整個可持續(xù)軟件工程周期。
可持續(xù)和綠色編程項目示例
科技行業(yè)的領頭羊是可持續(xù)軟件工程潮流的引領者。他們重視自己的商譽,并了解自己對社會的影響。請查看以下示例,來了解下其他企業(yè)為軟件可持續(xù)性所做的工作。
蘋果
2020 年,蘋果承諾到 2030 年確保其產品和供應鏈實現碳中和100% 。蘋果計劃將排放量減少75%,并為剩余25%的足跡開發(fā)創(chuàng)新的碳去除技術。蘋果還設計了一個為期10年的氣候路線圖,以降低排放。此外他們還表示,所有最近發(fā)布的iPhone,iPad,Apple Watch和Mac設備都會包含回收內容。
沃爾瑪
為了減少浪費和能源使用,全球最大的零售商沃爾瑪推出了多種數字化轉型。此外他們還采取措施,通過更先進的可持續(xù)發(fā)展軟件解決方案來提高供應鏈效率。
比如,沃爾瑪允許消費者通過其移動應用程序完成移動快遞退貨,買家可以在當地零售店掃描二維碼來支付商品。由于自助服務減少了運輸和相關二氧化碳排放,此舉不但節(jié)省了顧客時間還有利于生態(tài)。
2020年,Facebook發(fā)布了《凈零承諾》白皮書,這明確了Facebook對可持續(xù)軟件工程和資源謹慎管理的準備。到2030年,在整個價值鏈中Facebook將實現溫室氣體凈零排放。
為了提高可持續(xù)性,Facebook還將循環(huán)經濟原則納入其服務器硬件和消費產品中。他們將可維修性和可回收性納入設計流程,并延長硬件使用壽命。
技術行業(yè)領頭羊是整個行業(yè)的塑造者,因此軟件工程可持續(xù)性也是大勢所趨。所有進入市場的科技公司和初創(chuàng)公司都應遵循可持續(xù)原則,并設計出優(yōu)化的解決方案。
譯者介紹
朱鋼,51CTO社區(qū)編輯,2019年CSDN博客專家20強,2020年騰訊云+社區(qū)優(yōu)秀作者,10年一線開發(fā)經驗,曾參與獵頭服務網站架構設計,企業(yè)智能客服以及大型電子政務系統(tǒng)開發(fā),主導某大型央企內部防泄密和電子文檔安全監(jiān)控系統(tǒng)的建設,目前在BIM頭部企業(yè)從事招投標軟件開發(fā)。
原文標題:??Why Sustainability in Software Engineering Matters??,作者:Tetiana Paratsii