Software sustainability includes computing for environmental purposes and using resources appropriately. According to Coral Calero, software engineers need a holistic way of looking at software and should be aware of the environmental impact of software. Several tools and frameworks are available for software engineers to do sustainable software development.
Coral Calero gave a keynote about software sustainability at XP 2023.
Green computing is about defining the relationship between ICT and the environment, Calero said. It includes "Green BY", in which computing is used for environmental purposes (an automatic temperature regulator, for example), and "Green IN", in which the aim is to make computing itself green, i.e. to use resources appropriately (e.g. to use a programming language that produces efficient applications).
When we are developing a system with environmental objectives, our solution will be efficient with the resources it uses. Working on the efficient use of resources in IT (Green IN) should be a priority, Calero argued. Studies estimate that by 2030, information and communications technologies will require 20% of global energy consumption, she added.
Calero mentioned that software is now in a revolution due to artificial intelligence, being extensively incorporated into new software systems which is expected to grow:
Artificial intelligence algorithms, depending on how they are made and used, are big energy consumers. In some cases, an increase of 0,02% in accuracy means twice the consumption.
We are in the "smart era" and it is necessary to go a step further and demand "smart software," which includes quality characteristics, should be thinking and intelligent software, and should be sustainable, Calero said.
Software engineers need a holistic way of looking at software, and must be aware of the future impact of the solutions they are developing, Calero argued. This is an ambitious perspective, considering not just time and budget, but also durability, energy efficiency, and using resources in the best way. They must be trained, and provided with mechanisms that enable them to take these aspects into account, she explained:
For example, GAISSALabel, a tool for energy labeling of ML models. Or Blue Angel, an initiative developed in Germany about defining an environmental label for resource and energy-efficient software products that focuses on the environmental impacts resulting from the operation of a software product.
In our team we provide guidelines for software developers on programming languages, software design patterns, or relational database schema design. All these guidelines are made public through our publications on Green Team Alarcos.
The Green Software Foundation is building an ecosystem of people, standards, tooling, and best practices for building green software. They also provide guidelines on how to measure the carbon footprint of software, Calero mentioned.
InfoQ interviewed Coral Calero about software sustainability.
InfoQ: What role does software play when it comes to Green IN computing?
Coral Calero: When focusing on Green IN computing, one aspect to consider is whether the effort is made in the hardware component (Green IN hardware) or in the software (Green IN software).
There is a perception that it is the hardware that is the polluter; after all, it is the hardware that consumes energy. And yet, we have to think that the hardware is made to run software on it, therefore, the energy consumption will depend a lot on the software running on it and how that software is implemented.
While Green IN hardware is a mature topic, Green IN software is just beginning. And it is very important that it continues to grow because, as Bjarne Stroustrup, the creator of C++ programming language, said, our civilization is as reliant on software as it is on water.
InfoQ: What can companies do to support their software engineers in decreasing the impact that their software is having on the environment?
Calero: Providing them with well-defined business processes, guidelines and recommendations on how to incorporate energy consumption in the developments, is essential for engineers to be able to carry out their work considering the impact of the systems to be developed.
If this is part of their knowledge and they incorporate it into their work, they will gradually increase and strengthen the body of knowledge necessary to incorporate sustainability and green software aspects as another element in their work.
It is the new digital transformation, but now it is a green and sustainable digital transformation. And as a digital transformation it must be applied and affect the products, services developed and the business models, but also the relationship with the customer. And all this can only be achieved if it is assumed that it entails a cultural change in companies.