This article is written by Sara Gustafsson, previously a Management Trainee, now Analytics & Automation Initiatives Manager at Visma Enterprise.
At Visma we work with sustainability in many areas and from multiple perspectives. Our software solutions greatly impact sustainability – through the technology powering them, their design, and their usage.
This summer, as a management trainee, I worked on a project to improve our product sustainability. The project’s objectives were to get an overview of sustainability in the software domain and to explore ways to communicate best practices of working with sustainability to product teams across Visma. In this article, you’ll learn what sustainability in the software industry is about and get some key findings from the project.
The impact of software
Digitalisation and software are considered key to sustainability and achieving the UN Sustainable Development Goals. Software can help us optimise resource usage, substitute resources and understand our world and impact through data. It can contribute to increased inclusion, better access to healthcare services and more efficient education, to mention a few of many examples. At the same time, software contributes to climate change, and it can potentially have negative effects on social sustainability both throughout the supply chain and through its usage.
Studies estimate that the ICT sector generates around 1.8–2.8% of global greenhouse gas emissions. This is similar to the aviation industry, which represented 1.9% of global emissions in 2016.
The electricity consumption of data centres is a topic gaining more and more attention. Some studies predict that the ICT sector will consume from 8 to 21% of the electricity in the world by 2030, where a significant part would be consumed by data centres. The exact numbers are disputed though; some studies predict that increased energy efficiency might dampen these emission increases in spite of the increased demand for digital services and data centres.
The software industry’s responsibility
Independent of the exact figures, it’s clear that the software industry needs to use resources responsibly and as efficiently as possible – not least since other sectors like transportation and heating need to be electrified to reduce global carbon emissions, and thus further increase global electricity demand.
Software can contribute to social sustainability. However, if not developed carefully, digital services can also be misused or unintentionally harm people and communities. Accessibility, privacy, and human rights in the supply chains of IT equipment are some of the risk areas.
Our software impacts sustainability both directly, through the technology and design of our products, and indirectly, through the usage of our products.
- Sustainable software (direct): Refers to the direct impact of the technology, for example how the software is designed and developed.
- Software for Sustainability (indirect): Refers to the indirect impact of the technology, in particular the usage of the software and how this helps achieve sustainability goals.
What is Sustainable Software?
Sustainable software can be divided into technological, individual, social, environmental and economic sustainability. Technological sustainability is about how the system can adapt to and persist in changing surroundings. It relates to the scalability of the service, knowledge transfer in organisations, and reducing technical debt among other things. Individual sustainability is about the well-being of the people working with the software, the work environment and how we interact with each other. Social sustainability relates to the software’s impact on democracy, human rights, privacy and security. Environmental sustainability includes the impact of the software on the planet through its entire lifecycle. The objective here is to build services that are carbon, energy and hardware efficient. Finally, the economic sustainability of software relates to aspects like the value added, profitability and meeting contract requirements.
In the project, we identified four priority areas to facilitate sustainable software development.
- Awareness about the sustainability impact of software
- Incentives to motivate investments in sustainability
- Data to understand the current impact and validate gains of improvements
- Easy-to-use tools and best practices to follow.
To target the first area, awareness, and the last one, tools and best practices, we developed and pilot-tested a sustainability assessment during the project.
Sustainability Assessment – a great way to identify improvements
The sustainability assessment was tested with four product teams at Visma and focused mainly on identifying the direct impact of our products on environmental sustainability and ways to reduce it. Regarding the social perspective, we could refer the teams to already existing Visma material such as security, privacy, and accessibility information, and complement this with additional inclusion topics in the assessment.
Feedback from the pilot teams indicated that the assessment was a good way to get an overview of all the different impact areas of their software. It also provided the teams with a few specific potential improvement areas to look further into. Some of the topics discussed with the teams were (1) public cloud and geographical location, (2) culture of resource efficiency, and (3) carbon-aware software.
Public Cloud and Geographical Location
There are many benefits of cloud technology. One way to improve the energy and hardware efficiency of software products is to use the public cloud to host the services. Large public cloud providers invest heavily in increasing the energy efficiency of their facilities and IT equipment. Resources can be shared among multiple users, and also scaled dynamically to match actual demand. This results in a lower environmental impact compared to traditional enterprise data centres or on-prem solutions.
Another important aspect is to consider where the service is hosted geographically. First, it’s best to choose regions close to our users to minimise the distance data has to travel for both latency and energy reasons. Second, the energy mix powering the data centres in different regions varies. This means that the carbon emissions generated by the consumed electricity can vary a lot between different data centres.
Resource Efficiency
Writing efficient code and using the best-suited technology for each task are important for several reasons. It improves performance and the user experience, reduces cost, and also increases energy and hardware efficiency. With usage-based pricing models, the incentives to use resources more efficiently increase. But also when there is a fixed price, or when the cost is very low, we should still always consider the environmental cost and use resources as efficiently as possible. By proactively working with code efficiency, optimising our infrastructure, and building the right things to create the most value for our users, we build more sustainable software products.
By proactively working with code efficiency, optimising our infrastructure, and building the right things to create the most value for our users, we build more sustainable software products.
Carbon Aware Software
A third topic discussed with the pilot teams was the opportunity to time-shift workloads so that they run at times when there is more renewable energy available. This concept is referred to as carbon-aware software. It is applicable for heavy batch jobs which run in the background or are less time sensitive. Traditionally these jobs run when requested or outside of office hours. But what if it’s sunny and windy during the day? Maybe we should reconsider our scheduling and do these jobs during the day instead.
Environmentally sustainable software is not only about energy efficiency and renewable energy. In some cases, the environmental impact of the production of IT equipment can be bigger than the impact of using the equipment. Especially in the Nordic countries where we have low-carbon energy, the manufacturing of equipment may represent a larger share of the total impact. As such, the assessment also included the important aspect of hardware consumption and how we ensure that we, our providers, and our users are able to use IT equipment for as long as possible.
Our work continues…
Ultimately, we want to ensure that we have a positive net impact and strive to maximise this. That is, developing software that creates value and contributes to sustainability, while also being conscious about our resource consumption and minimising the negative impact.
So, what has the best net impact if we compare streaming a movie and reading a printed book? Well, if I watch a two-hour-long movie on my TV here in Sweden this would generate about 5 grams of CO2 equivalent. Reading a book for 2 hours would generate approximately 120 grams (assuming it takes me ~12 hours to read the entire book). If we only compare the carbon emissions, watching a movie appears to be the better option. However, to determine the net impact, we need to investigate other potential negative impacts and then determine the total added value. Perhaps the book is borrowed from a library and can be read by 30 people during its lifetime? Then my two hours of reading would represent only 4 grams of carbon emissions, potentially making it a better option than the movie.
With this trainee project and the assessment developed during it, we boost our efforts related to the environmental sustainability of our software. However, as described earlier, sustainability in software is a broad topic that includes different perspectives and levels of impact. We work to create more sustainable software in order to help our users become more sustainable.