How to Build Sustainable Software
Is your organization's software environmentally friendly or a carbon hog? Here's what you need to know to go green.
Green software engineering is a set of best practices aimed at creating applications that lower carbon emissions. The green software movement is accelerating rapidly. The Green Software Foundation now has over 60 member organizations, including tech giants such as Microsoft, Google, and Intel.
Sustainable software can help reduce the often-considerable environmental impact of software development, says Tim Juravich, a principal with business advisory firm Deloitte Consulting, in an email interview. "By optimizing resource usage, sustainable software helps create a more environmentally friendly digital infrastructure."
"Software development quality can have direct ties to energy consumption and, therefore, sustainability," Juravich says. "Having teams think about creating software in a sustainable manner also promotes long-term software viability by utilizing efficient coding techniques, reducing maintenance requirements, and enhancing scalability -- all with the goal of minimizing the carbon footprint."
All enterprises should focus on lowering their carbon footprint, advises Carl Coken, vice president of engineering at Atrius, a software company focusing on energy management. "If we can build more efficient software, we can decrease the hardware resources that are used and therefore lower the overall carbon impact," he says in an email interview.
With the arrival of chief sustainability officers (CSOs) and teams, and over half a million environmental, social, and governance (ESG) professionals, there's a need to understand the carbon footprint of both the enterprise and vendors, says Mark Smith, partner and head of software research at technology research and advisory firm ISG. Supplier input is essential. "Software companies need to provide the compute and consumption of their operations and software, their related impact on sustainability, and where users can find reporting on ESG metrics," he explains in an email interview.
Multiple Benefits
While sustainable software reduces energy consumption and carbon emissions, it also provides operational cost savings by allowing enhanced resource utilization. "In many cases, we're also seeing a push toward sustainability reducing technical debt and enabling an easier developer experience due to architecture simplification," Juravich says.
By building more sustainable, efficient software, adopters can decrease overall power consumption, including servers, storage, networking and, as AI becomes more prevalent, GPUs, Coken says. "This becomes even more important when considering the rapid development and implementation of AI, which can be particularly power hungry."
The first step when building a sustainable software initiative is setting clear goals and developing quality success metrics. "By defining metrics that correlate to sustainability, it creates a quantifiable conversation of brokering sustainability throughout the development process," Juravich says. He also recommends fostering a culture of collaboration and innovation -- thinking outside the box -- where all parties are encouraged to speak up, present ideas, and help develop software development practices designed to meet sustainability goals.
Targeting Sustainability
Developers play a major role in achieving enterprise sustainability by creating optimized code designed to minimize energy consumption, Juravich says. They should be encouraged to use energy-efficient development methods, such as those suggested by the Green Software Foundation, to improve efficiency and prolong application lifespans. "Organizations can also use renewable energy sources for their data centers and cloud computing needs," he adds.
When building new products, software developers tend to use all available resources, Coken observes. This can lead to bad habits in terms of both cost and efficiency. "Furthermore, the resources that have the highest carbon impact also tend to also have the highest cost," he notes. "Therefore, in a broad sense, you can use cost as a way to measure your carbon impact."
Developers can also make software more sustainable by identifying and stopping wasteful activities. "Turning off VMs or containers when they aren't being used, deprecating them when they are no longer needed, and creating and implementing storage retention policies can all significantly improve energy efficiency," Coken says.
Building the Case
When approaching enterprise leaders about the need for a sustainable software strategy, begin by emphasizing the potential cost savings. "Typically, the best way to convince management colleagues is to appeal to their wallet," Coken says. While most executives understand this, and would like to support policies that help the environment, sustainability goals can seem vague, esoteric, and costly to adopt with only a low return on investment. He notes that by showing how sustainability goals will positively impact budgets -- and potentially their bonuses -- over the long term, enthusiasm for sustainable software development initiatives will increase.
While focusing on cost is a helpful motivation tool, it's also important to track your organization software's carbon impact to show where savings may be found, Coken says. "Cloud vendors, such as Microsoft, provide the tools to do so." One such tool is Microsoft’s Emissions Impact Dashboard. There are also other free tools, including the open-source Cloud Carbon Footprint, which allows users to carbon emissions across different clouds.
About the Author
You May Also Like