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