本文将带读者了解可持续性在软件工程中的作用和重要性,以及科技公司都应立即选择这一理念的原因。
译者 | 朱钢
审校 | 梁策 孙淑娟
技术经理常常专注眼前成就而非本质影响。看到员工加班到很晚,他们会表现得满心欢喜,相信这就等于生产力。但实际上,这种方法常会适得其反。
可持续的软件开发会带来更多益处。在软件工程和软件使用过程中,这种方法将软件开发生命周期(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