Green Coding and IT Energy Consumption: Why Every Developer Should Care

Green coding series Part 1

In our ever-evolving digital world, software has become an integral part of our daily lives, enhancing the efficiency of our operations and enabling countless technological advancements. However, there’s a hidden cost to this digital revolution that’s rarely discussed but is of utmost importance: the energy consumption associated with the creation and operation of software. 

In this first instalment of our Green Coding series, we’ll explore why it’s crucial to consider the environmental impact of code and why every developer should care about making their code more energy-efficient.

The Energy Cost of Our Digital World

As the world increasingly turns to digital solutions, the energy consumption of the Information Technology (IT) industry has skyrocketed. We’ve seen remarkable advancements in hardware speed, which have led to more powerful devices and the ability to harness vast computing power from the cloud with a few clicks. Unfortunately, this has resulted in software being developed without significant concern for efficiency.

The energy used for processing, presenting, and transferring information is substantial, and currently, there isn’t enough clean energy available globally to offset this demand. Even though many data centres operate on renewable or carbon-neutral energy, this doesn’t address the root issue. The overall energy consumption remains high, and much of it is still derived from fossil fuels.

Handprint and Footprint: Understanding the Impact

When assessing the environmental impact of software and technology, we often hear about the “carbon footprint.” This term quantifies the emissions produced by a product or service throughout its lifecycle. It’s measured in carbon dioxide equivalent, considering all greenhouse gases. The carbon footprint of a software is based on the footprint of the needed hardware and the energy consumed by the software execution.

While renewable energy sources like wind and solar power have lower carbon footprints than fossil fuels, they’re not entirely carbon-neutral. The production, installation, and maintenance of renewable energy infrastructure still generate emissions. Therefore, focusing solely on shifting to clean energy sources isn’t enough; we must also reduce overall energy consumption.

On the flip side, software can contribute positively to the environment through what’s known as the “carbon handprint.” This involves streamlining or optimising operations, reducing the need for resources, and cutting down on wasteful processes. The IT industry has made strides in eliminating unnecessary steps in various processes by promoting more efficient software-powered practices.

However, the existence of a carbon handprint should not be used as an excuse for inefficient software development. There are efficient and inefficient ways to achieve a carbon handprint.

Trends Leading Us Astray

Unfortunately, there are several trends within the IT industry that are contributing to the problem rather than solving it:

1

Growth of data: There’s an exponential increase in data production, storage, and processing. Old data often lingers, causing unnecessary energy consumption.

2

Measuring software development: Efficiency in software development is often measured solely by the number of features delivered within a specific timeframe, disregarding code quality and efficiency.

3

Lust for new devices: The industry constantly churns out more powerful devices, rendering older ones obsolete. This encourages frequent upgrades and results in increased emissions from manufacturing and logistics.

4

Transition to mobile networks: While convenient, mobile networks are less energy-efficient than wired connections. Compared to laptops, mobile phones are more efficient for using digital services, but they contribute to the energy demand for wireless connectivity.

5

Advertisement-based funding: Many apps rely on ads for funding, which can be energy-intensive due to automated ad auctions, consuming a significant portion of the internet’s electricity.

6

Growth of artificial Intelligence: AI and machine learning solutions, driven by vast amounts of data and computational power, may consume more energy than they save.

The Expanding World of Software

As software and data continue to grow, we’re stuck in a cycle where faster devices and networks are demanded to keep up. This leads to less efficient code and larger data volumes, perpetuating the need for even faster hardware. We must break this cycle by prioritising efficient code and reduced data usage.

For instance, websites have ballooned in size over the years. In 2022, a survey of popular Finnish websites found significant variations in optimisation. The size of websites has tripled in the past decade, with mobile websites now matching desktop sites in size due to the shift away from separate mobile versions.

Notably, over 40% of the data on web pages comes from third-party resources, including images, JavaScript, media files, fonts, and more. This bloat affects user experience and energy consumption.

The Deception of Efficient Devices

Software developers often use powerful, relatively new laptops, which can mislead them into thinking that all devices possess similar capabilities. Consequently, they may not optimise their applications for older, less capable devices. This leads to slow performance and application incompatibility for users with older hardware.

Creating backward-compatible software is more costly than abandoning older devices, resulting in increased emissions from device replacements. While technology has advanced, devices and networks have become more energy-intensive.

The Developer’s Responsibility

Efficiency in software implementation largely depends on software architects and developers. Business requirements, often driven by the need for speed and features, dictate whether software is efficient or not. However, developers have a significant role to play in improving energy efficiency.

Energy efficiency is not yet a standard requirement in software procurement, but this is slowly changing. Organisations are beginning to recognise its importance, and we’re likely to see more demands for energy-efficient solutions in the future.

In conclusion, it’s essential for developers to take responsibility for the environmental impact of their code. Just as we make choices in our personal lives to reduce our carbon footprint, developers can make choices to reduce the energy footprint of their software. As Spider-Man’s Uncle Ben famously said, “With great power comes great responsibility.”

In our upcoming post of the Green Coding series, we will explore actionable strategies for achieving energy-efficient software development. Building on the insights from this post, we will take a closer look at the three primary areas of energy consumption in modern software development: data centres and cloud services, data transmission paths, and end-user devices. By proactively addressing energy consumption in these areas, developers can play a vital role in reducing the environmental impact of the IT industry while maintaining optimal software performance.

Interested in hearing more about Green ICT? Let’s connect ??

Thoughts by

Janne Kalliola

Chief Growth Officer

15.09.2023

Share on social media:

Latest blogs