What is Green Software?

Digitalization is one of the megatrends of our time: through recent advances in data capturing (e.g., smart sensors), transmission (5G networks), and computation (cloud computing, machine learning & AI), industrial processes can be analyzed and optimized with respect to targets such as operating expenditure, creation of waste, or emission of climate-wrecking gases. 

It is often overlooked, however, that digitalization itself creates additional costs and emissions. Besides the required hardware for sensors, networking devices, and servers, there is also a significant amount of (electrical) energy consumed in the software development life cycle (SDLC) of the digital solution, which spans development, maintenance, and operations of software. 

Software Development Life Cycle

In each phase of the SDLC, emissions are created. There are many possibilities how these emissions can be reduced:

  • Does the software itself help to save emissions? (e.g. traffic optimization)
  • Is energy consumption a non-functional requirement (quality attribute)?
  • Is the software architecture and design optimized (e.g., network traffic, DB schemas)?
  • How much is reused, how much is generated (e.g. through models)
  • Are the right programming languages/libraries used?
  • Can loading/computing times be reduced?
  • Can parts of the code be optimized for reuse?
  • How much (air) travel is there between development locations?
  • What compile-time optimizations have been done?
  • Are redundant tests eliminated? (i.e., same test run on same version twice)
  • Are unused services shut down?
  • Are physical resources optimally used? (e.g., with VMs)

Our research focuses on identifying sources emissions during the SDLC, quantifying their contributions, and suggesting solutions for reducing them. Get in touch with us if you would like to discuss this topic!

Leave a Reply

Your email address will not be published. Required fields are marked *