Get in touch


We use HubSpot CRM to process and manage contact and information requests. Please accept the "Functional Cookies" and reload the page to load the contact form.

Insights / Blog / Tech

Planting more than trees: What more sustainable software development might look like

April 06, 2023
Stefan RotschStefan RotschSenior Solution Architect

The share of emissions due to digitalization is increasing. Even in 2018, in Frankfurt data centers accounted for 1.3 terawatt hours, or approximately 20% of electricity consumption in the city. At the same time, awareness of the significance – and the necessity – of sustainability is also increasing. Frequently, however, “more sustainable” in the digitalization context is understood in the sense of damage control: Eco electricity and CO2 compensation by planting trees. One example: Cloud computing provider AWS wants to have converted entirely to renewable energies by 2025 and be climate-neutral by 2040. Precisely for companies that consume a lot of energy performing their core activities, for example, by operating big server farms, such a net-zero policy makes good sense. At the same time, one must ask the question: Is being climate-neutral by 2040 really the best that we can do?

Measures such as planting trees make an important contribution to climate protection, but they’re starting very late, namely only once the negative consequence, in this case CO2 emissions, has already happened. Anyone who meets their own consumption demands with eco electricity and compensates for the emissions generated is essentially assuming that nothing can be done about the scope of energy consumption. But what would happen if we examined the situation earlier and tried to act as energy-efficiently as possible in general?

For software providers and developers, this raises the question of: How Green IT might look. Where does software development offer opportunities for greater sustainability – and what deserves special attention in the process?

Sustainability and software – how are these even related?

To assess the sustainability of software, the following factors must be incorporated, for example:

  • Energy consumption: How much energy does development, hosting, and execution of the software cost?
  • Energy generation: From which sources does the electricity used come from?
  • Life cycle: How long can the software be used? Can it be expanded and supported in the long term?

Important is to examine the process end-to-end if possible – from the server to the end customer’s end user device.

If companies use their own data centers and maintain capacities for special events there, for Black Friday or Christmas, for example, this consumes unnecessary energy throughout the year, for the basic consumption of unused servers is relatively high. Unfortunately, this is still common practice. Cloud computing with optimized utilization presents a more efficient alternative to on-premise servers: Thanks to load-independent autoscaling, resources can be allocated or released as needed, in order to save energy (and reduce costs) and reduce CO2 emissions.

Transmission also offers savings potential: In mobile communications, 4G (LTE) represented enormous energy savings as compared to 3G (UTMS); now 5G is almost as efficient as copper cable. Even for landline transmission, there are significant differences in energy consumption: Here, FFTH is clearly the most efficient access technology, especially as compared to classic ADSL.

If you consider that streaming makes up a majority of worldwide internet traffic, the question of resolution also becomes relevant: For in 4K, transmission requires approximately twice as much energy as in HD; on mobile end user devices, the difference is often not even visually perceptible. This is a simple lever for consciously saving energy (for unfortunately, providers often play back in the maximum possible resolution by default).

Stefan Rotsch

Stefan Rotsch

Solution Architect Telco / AOE
Is being climate-neutral by 2040 really the best that we can do?

Sustainable software development

Of course, software providers and developers cannot influence all these factors. Nevertheless, with the selection of tools, services, and service providers, and even during development, they can do a lot more for sustainability.

  • Select hardware, tools, and services by efficiency: Utilize hardware optimally (e.g., through virtualization), use containers (instead of completely virtualized operating systems), function-as-a-service (execution of software only when needed)
  • Automation through infrastructure-as-code & switching off of infrastructure that is not needed: Shut down systems when they are not being used (e.g., at night/on weekends)
  • Demand shaping: Orient energy-intensive processes according to availability of renewable energies
  • Sensible selection or combination of programming languages: If possible, use compiled languages (e.g., Rust) that consume less energy during execution than interpreted languages
  • Agile methodologies: Develop software iteratively and functionality only as required in order to conserve resources
  • Modularity & quality: Ensure through modular architecture and reusability of modules that software can be expanded, supported, and thus enjoy a long life cycle
  • Optimize usage duration of hardware & software: When developing and rely on long-lived products and applications
  • Green Power: Draw electricity from sustainable sources

Rebound effect: Careful, it’s a trap!

If processes and applications become more efficient, this not only saves energy, but also time. From an economic perspective, of course this induces people to invest these savings in new workloads. Development thus becomes ever more efficient; however, no energy is saved in the end – a rebound effect. So, sustainability can also mean consciously avoiding maximum growth and maximum efficiency.

Conclusion: Make IT greener on our side

Now of course sustainability should not be equated with minimizing energy consumption – many additional factors play a role here. Worthy of mention are, for example, the raw materials used, working conditions for the manufacturing of digital end user devices, and the resulting electronic scrap. Today it is impossible to check a product or service comprehensively end-to-end for its sustainability.

The fact is that digitalization brings enormous advantages and a great deal of potential with regard to sustainability, but it also has its price. Therefore, it is worthwhile as a developer or software company to examine processes, tools, and ways of working in detail and to take the small opportunities for “greener coding” where they exist. And surely planting a few trees regularly can’t hurt either.

This article by Stefan Rotsch first appeared on ComputerWeekly.de (in German). We appreciate your feedback and sharing the article.

Original article (in German)