How software kills the climate and what software engineers can do about it

Software can kill the climate and thus produce invisible waste

Modern cloud computing adds a price-tag to it

Services from the large cloud computing providers like AWS, Microsoft Azure or Google Cloud Platform are very elastic. Especially the “serverless compute” offerings such as AWS Lambda, Azure Functions or Google Cloud Functions. They are billed in seconds or milliseconds, adding a dollar sign to the actual cost of the execution and thus to the actual resource consumption.

Software inefficiency kills our planet

While it’s agreeable that no software or program is perfect and every piece of software has certain inefficiencies, there are computer programs out there that are insanely inefficient and thus wasteful. Software were development cost was spared at the expense of operating cost, meaning the cost of compute, storage or networking resources.

  1. Does my code really need to execute this way or is there a more efficient way to perform the same task in a shorter timeframe with less energy consumption? (e.g. CPU utilization)
  2. Does my code really need to perform specific tasks in that frequency or can things like event-driven designs and architectures reduce the frequency?
  3. Does my code or program only execute when it is really needed or does it run as resource-consuming background services even when not needed?
  4. Does my code or program only allocate the memory really required or does it allocate more resources than it actually needs to perform its tasks? (Maybe because you might be afraid of memory constraints)
  5. Are there resources in idle that consume energy even when my code or program does not execute or do anything? (e.g. webservers or database capacity in idle)

When software forces you to waste energy

A totally different angle is software that prevents people from fighting climate change and saving emissions. These can range from public transport applications that are entirely unusable to smartphone apps or websites performing unwanted tasks in the background.

  1. Does my program offer the user the easiest, most intuitive and fastest way to complete the task at hand?
  2. Is my user interface designed in a way that the user can immediately navigate through my program?
  3. Have I removed all obstacles that might confuse the user, cost the user time to complete a task and thus waste energy and natural resources?
  4. Do I have any unnecessary animations that block the user flow through my application and consume more energy by using the user’s GPU and draining the user’s battery faster than necessary?
  5. Is my software or program automated as much as possible so that my program can execute tasks autonomously without the user and thus ensure the maximum efficiency when executing tasks?

Final thoughts on software and climate change

It is without a doubt that software can help fight climate change. A computer software is always more cost, time and energy efficient than a human being can ever be. A human formatting 5,000 address records with Excel in 30 minutes is way less cost, time and energy efficient than a small program performing the same task in 700 milliseconds.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Jan Kammerath

Jan Kammerath

116 Followers

I love technology, programming, computers, mobile devices and the world of tomorrow.