Dichotomy or Opportunity: Can the booming software industry be sustainable?

Article

Nowadays, more and more computing devices are used for an increasing number of purposes. Although technology has brought us many social and even environmental benefits and discoveries, it is estimated that the IT sector will make up 14% of global climate emissions by 2040 if it continues at this rate. Already, the IT industry seems to be overtaking the aviation industry in terms of emissions levels. Especially due to the booming nature of the IT industry, is bears a greater social responsibility to reduce its energy consumption and carbon footprint. It is therefore unsurprising that sustainability discussions have also taken off in the IT industry. Yet, thus far, the focus has mostly been on hardware, rather than software. Greener software usage and development have been overlooked as perhaps a decisive factor in the sustainability discussion.

Software vs. Hardware in Sustainability

Although hardware components indeed have the greatest energy consumption and carbon emissions, these components are operated and managed by software. This implies that the way in which software is developed and used may indirectly have a large positive effect on the environment. More efficient software will reduce energy consumption and thereby adverse impacts on the environment. This, in turn, will also reduce the carbon footprint of the end-user.

What is Green Software?

Green and sustainable software is defined as software that ensures that “direct and indirect negative impacts on economy, society, human beings, and environment that result from development, deployment, and usage of the software … have a positive effect on sustainable development.” As such, sustainability is integrated into every phase of the software engineering process.

Traditionally, software engineering was done in accordance with the existing Software Development Life Cycle process framework. Yet, this framework does not take into account energy consumption or carbon footprint. New frameworks have since been suggested, which aim to guide developers and engineers through a greener software development process. These new frameworks are very important as they serve as a platform where a common definition of and approach to green software are accepted.
(We will not discuss each framework in depth here, but for more information you can check them out here: GREENSOFT, Mahmoud and Ahmad’s 2-Level Green Model for Sustainable Software Engineering, and the BUA Methodology.

A key, yet relatively new method to consider when committing to more sustainable software development, if the Software Carbon Intensity (SCI) Specification, released by the Green Software Foundation. The SCI is a method for scoring a software system based on its carbon emissions, whereby the score is calculated as follows: 

SCI = ((E * I) + M) per R

  E = Energy consumed by software in kWh
I = Carbon emitted per kWh of energy, gCO2/kWh
M = Carbon emitted through the hardware that the software is running on
R = Functional Unit; this is how the software scales, for example per user or per device.

5 Recommended Steps Towards Green Software

We propose the following 10 options which address green software from an operational as well as development perspective. Some of these directly address the SCI calculation as proposed by the Green Software Foundation, and others will contribute more indirectly.

  1. Hardware Inclusivity. One of the greatest opportunities presented by green software is the potential reduction in e-waste. Many well-known tech companies nowadays have what can be described as a mini-monopoly over how their software and hardware interact. Every consumer will have experienced a situation where you were forced to buy a new phone or laptop because your previous one became incredibly slow, or because new versions of software/applications no longer worked on your older device. Tech companies being able to guide our hardware buying behaviour through their implementation of software is inherently unsustainable, as they are only looking at financial gain. New software versions should not require more computing power or storage space unless new functions really require so. Moreover, green software should be developed in a way that its core functions can remain functional on older hardware models.
  2. Software Efficiency. The more efficient the software is, the less energy it will require. Among the easiest ways to increase software efficiency is to cut out unwanted or unused features. This will not only help with energy efficiency, but it also reduces time spent on maintenance and makes the software easier to use. Moreover, there may be features unnecessarily running in the background. Depending on their purpose, features should be adapted to only be used and activated when explicitly requested so by end-users. Finally, software can guide users towards more environmentally friendly behaviours through the introduction of energy-saving modes or by being easy to be shut down.
  3. Data Usage. Data usage and storage is another area where you can reduce the energy consumption of your software, while simultaneously making it easier to be used on older hardware models. Software can be subjected to a cash policy whereby data is stored and deleted in an efficiency-based lifecycle. On top of that, data can be compressed or stored as a smaller file or size.
  4. Maintenance. Carrying out maintenance should increasingly also include making functional parts more efficient. As the developers’ skills grow, they should return to previously written code to see where they may reduce the amount of coding – ultimately making the software more efficient, faster, and thereby more environmentally friendly.
  5. Knowledge Management and Responsibility. Operational steps that you can take towards developing greener software include knowledge management. Ensure that your workers, contractors, and employees are constantly trained and kept up to date on the latest industry standards regarding green software and that they are aware of your internal standards and commitments. Moreover, larger companies that have a Chief Information Officer or similar function, can look at introducing green targets or KPI’s for performance reviews.