How to Shrink IT's Carbon Footprint Using Software
Software efficiency practices can significantly reduce IT’s carbon footprint, yet organizations have yet to fully seize its potential.
In an increasingly digital-first world, organizations are under enormous pressure to reduce IT carbon footprints. Artificial intelligence’s explosive entrance into mainstream business discussions has only added to this pressure. Given that AI models require massive energy-hungry computing systems to run, CIOs are now grappling with how to eke out even more energy efficiency gains from IT systems.
So where to start? Digital transformation projects are complex, and sustainable IT solutions are multifaceted, requiring specialist knowledge and holistic systems thinking. In the nearly 25 years that I have been designing sustainable IT, there are five key areas that continue to rise to the top. Customers are great at focusing on the first three because they’re low hanging fruit but it’s software efficiency that’s often overlooked. And that’s a big miss because it’s where some significant gains can be made.
Equipment efficiency
Energy efficiency
Resource efficiency
Data efficiency
Software efficiency
What is Software Efficiency?
Software efficiency refers to running efficient code on optimized hardware platforms and using intelligent software to automate environments, drive efficiencies, and improve management practices. I speak to a lot of large enterprise customers, technologists, academics and investors in the course of my work, and many are surprised to learn that beyond designing more energy efficient hardware, we can also significantly reduce how much energy it takes to run an application by implementing some key software efficiency processes such as changing how we write software programs, choosing more efficient programming languages, and optimizing where we host programs.
The Challenge
Although the IT industry is racing to reduce energy use, developers commonly prioritize time efficiency over energy efficiency. A common timesaving practice is to simply build additional lines of code on top of existing lines of code when developing a new program or instruction. And while this can get the job done quickly, the new program might take more energy to run. Application developers should focus on practices such as writing lines of code to run faster, or tailoring lines of code to be optimized for a particular piece of hardware.
Choice of programming language can also improve energy efficiency. Experts have started to flag that computer programming languages, like RUST or C are inherently more efficient than more popular languages like Python because they take less time to run, and thus use less electricity.
Of course, there is no singular answer to software efficiency and requires ongoing review and optimization, such as checking whether existing applications could be retired, optimizing software to a specific hardware infrastructure, and considering which combination of pubic, private, or hybrid cloud environment best optimizes application and infrastructure efficiency.
What Should Enterprises Do?
The good news is that energy efficiency considerations fit neatly into established best-practice frameworks already being used in application modernization and cloud migration. For example, Gartner's well-known 7Rs approach for cloud migration includes a series of steps which call for developers to rearchitect applications to take full advantage of cloud-native features, rewrite applications selectively to optimize for efficiency, transfer to a cloud environment while minimizing the need to change hardware, and selectively maintain applications in their current location and form while removing those that are unused or underutilized. Regardless of chosen framework, there are four points of advice that I offer enterprise customers:
1. Be intentional. Be more deliberate about the applications you develop or purchase because these choices have a major impact on the cost, resources, and power the solution needs, as well as the performance.
2. Measure. An emerging measurement of application efficiency is known as Software Carbon Intensity (SCI). When purchasing applications, ask your prospective vendors for the SCI of your SaaS or purchased business applications.
3. Educate. Developers are typically not formally trained on software efficiency or software engineering practices, but organizations should invest in building these skills, whether within their team or by engaging external experts. Thankfully options for specialized education are starting to emerge, such as the Green Software Foundation’s free Green Software Practitioner training offering.
4. Build a broad sustainable IT strategy. Adopting more efficient software development practices can help improve IT efficiency, but organizations must keep in mind that it remains one element of a broader suite of strategies that organizations can implement to improve the sustainability of their technology solutions. Organizations should take care to include the five key areas of Sustainable IT in their strategy: equipment efficiency, energy efficiency, resource efficiency, software efficiency and data efficiency.
A major efficiency opportunity for technology teams lies within software applications. The collective challenge of global technology leaders will be to scrap outdated business-as-usual practices and embed this new knowledge into the thinking and success metrics of the next generation of tech talent.
About the Author
You May Also Like