Sustainable software limits hardware's energy consumption and minimizes environmental impact by lowering data center carbon emissions. But individual developers who adopt greener coding practices are unlikely to make a dent in software's carbon emissions without organizational and vendor support.
In theory, developers can create sustainable software by implementing green software best practices, such as reducing polling network calls or cleaning up inefficient or duplicate features. But in practice, developers' hands are often tied by other organizational demands, such as fast delivery and vendor lock-in. For sustainability to take root, developers need broad organizational policies committed to lowering carbon emissions, better vendor sustainability practices and more tools for developers to assess software's effects on the environment, according to industry experts.
Optimization for sustainability is often the lowest priority for organizations, especially in the case of revenue-generating applications, said Vladimir Mukhin, lead systems engineer at an IT services company in Newtown, Pa.
"There are always higher priorities, such as security, making the application scalable and highly available, or adding new features," he said.
Chris Pratt, founder of Vocal Software, a video conferencing company, agreed that the environment can be a low priority for some enterprises. Vocal generates carbon-negative software wherever possible, such as running software on carbon-negative hardware, but Pratt doesn't think that is the norm for enterprises.
"If a developer is working for a company, I'm going to assume that the CEO is worried about getting code out on time," he said. "They don't care whether the code is convoluted and uses a ton of energy -- they want code that works and solves a business problem."
Green hardware might be key to sustainable software
A developer's ability to produce sustainable software is largely dependent on what hardware the software is running on or how a vendor is powering a data center, Pratt said.
Many software engineers work for companies with on-premises hardware, and those companies might choose to adopt a carbon-negative policy for their data centers, he said. Carbon-negative data centers remove more carbon than they emit, through either cleaner energy sources or carbon offsets -- credits organizations can buy to decrease their carbon footprint.
"But [sustainability] is certainly not something that a single software engineer can address," Pratt said. "It is dependent on their organization or their vendor's organization to address."
Enterprise developers might have their hands tied when it comes to choosing where to run their applications, but some developers -- such as freelancers or those working for smaller organizations -- might have the freedom to take a closer look at more sustainable hardware options for running software, Pratt said.
The three main hyperscalers -- AWS, Google and Microsoft -- have pledged to curb carbon emissions. For example, Amazon claims it is on track to power all operations, including AWS, with 100% renewable energy by 2025. Microsoft claims it has been carbon neutral, which means it removes as much carbon each year as it emits, since 2012, and it plans to reach carbon negativity by 2030. Google claims Google Cloud work processes have been net zero since 2019, and it has plans to run on carbon-free energy such as wind power by 2030. Net zero expands carbon neutral to include all greenhouse gases, such as fluorinated gases, methane and nitrous oxide.
But these steps from hyperscalers don't go far enough, Mukhin said.
"Cloud providers could offer extra discounts for performance-optimized applications," he said. "This would provide additional external motivation for developers to start making greener software."
More tools needed to tackle carbon emissions
The Green Software Foundation, a nonprofit organization dedicated to establishing industry standards for green software, published and manages a list of tools to help developers measure carbon emissions and energy consumption for software.
Chris PrattFounder, Vocal Software
However, an individual developer using these tools to clean up code will have a limited effect on the software's sustainability, Pratt said.
"It is tough for software developers to reduce carbon emissions by making software more efficient," he said. "But if grossly inefficient software is deployed at scale, there may be some negative impact you can improve."
Rather than rely on individual developers to tweak pieces of code, an enterprise-wide policy could have more of an effect.
A stack checker would be a good start, said Chris Riley, senior manager of developer relations at marketing tech firm HubSpot. The stack checker could work in a similar way to StackShare's model, cross referenced with some kind of official report, he said. StackShare is a software discovery platform that lets developers share information about who is using what software tools and why.
Riley imagines the stack checker would look something like Wired's report card on how the environmental claims of the top three cloud providers measure up.
Tiebe Parmentier, co-founder of customer support system Tekst.ai, believes that many companies -- especially startups -- could speed toward greener software if the tools supported sustainability.
For example, GitHub is popular with developers, so an integrated sustainability tool could make a difference in carbon emissions, he said.
"I would love a feature that -- for every new part of code that gets released -- shows the ecological impact," Parmentier said. Whenever a developer creates a new pull request, an automatic tool could check the energy efficiency of the new code, much in the same way that quality checkers or automatic deployment bots work today, he said.
"It would also be great to have some of these badges in our codebase," Parmentier said. "We already have some for quality, but not ecology."