The 5 pillars of Green Software Design.

If you want to reduce the carbon footprint of software, you don’t start with a single line of program code. It is important to first understand where the major levers lie. This article presents an overview of the five key areas for action.

In summary, software with an optimized carbon footprint is characterized by the following features: It is tailored, avoids waste, uses energy intelligently, is programmed efficiently and contributes effectively to climate protection. Depending on the use case, one or the other factor is more important. The order therefore does not represent a ranking.

Slim

Are you familiar with reports that used to be important but that no one reads anymore? Perhaps they are generated from a data warehouse at great expense. Regularly, and probably at fixed times of the day. This example shows that savings potentials can be used or given away already when defining the functions of software. Report generation could be turned on and off, as needed or automated. The time of creation could be more flexible to use energy intelligently.

It is not a matter of omitting relevant functions or sacrificing convenience. A systematic check will certainly identify savings that are not limitations. These must be exploited.

Avoid waste

The server in our test environment consumes about 120 watts at high load. On the other hand, when it is bored because no one is accessing the software, it is still 80 watts. You can see how important it is to actually use existing hardware. Appropriate system architectures contribute to this, as does the design of systems, and joint optimization by software engineers and operations within the framework of DevOps. This is not trivial. For example, over-utilizing servers can also increase power consumption because tasks are then queued, which increases overall compute overhead.

Overall, the optimization of hardware utilization currently probably offers the greatest potential for saving hardware and power. After all, server utilization is only one example. There are other influencing factors, such as the decision between virtualization or containerization.

Intelligent

The fact that software consumes electricity is one thing. How many emissions this consumption causes is another. Because depending on the time of day, different amounts of renewable energy are involved in generating electricity. Solar energy supplies the most electricity at midday, and none at night. Wind, on the other hand, usually blows more strongly at night than during the day. This results in significant fluctuations in emissions per kilowatt-hour. Before green software became relevant, no one thought about this connection. But demand shifting (also called time shifting) can be used to target times with low emissions. This approach is called Intelligent Use in the Green Software scene. How big a role it can play also depends on which functions of the software are designed to be time-independent.

Efficient

When talking about Green Software, most people first think of efficient or performant programming. In other words, Green Coding. And it’s true, of course: The efficiency of software has usually been given too little attention in recent years. Additional hardware has become steadily cheaper, but good programmers have not. The potential for improvement through Green Coding therefore depends on the one hand on how well optimization has already been done in the past. In the case of medium-sized or smaller software projects, this has often been done without. That is why there is a lot to be gained here.

On the other hand, it depends on the use case. Where complex algorithms are used, special starting points arise. Extreme examples are blockchain technologies or machine learning, i.e. AI. But even with seemingly simple software such as a word processor, coding can lead to a 75% reduction in power consumption (this is the result of a study commissioned by the German Federal Environment Agency).

Effective

By no means should we forget that software can also have positive climate effects. In fact, digitization is credited with an enormously high contribution to climate protection. Such positive effects are included in the carbon footprint because this is always based on consideration of the product life cycle. It is therefore important to use the methods of innovation management and digitization to identify potentials with which a software can actively contribute to climate protection. For example, online banking software can offer the option of making CO2 offsets with just one click. After all, payments to gas stations, railroad and airline companies are directly identifiable in the account transactions.

Not in all cases can such features be identified. However, it is worth seriously examining the possibilities and not giving up prematurely.

Conclusion

It can be seen that there is a wide range of possibilities for improving the carbon footprint of software. The five fields of action mentioned above define the framework. Within this framework, there is a long list of different individual measures. And insights are constantly being added, as are tools for measuring and improving. Let’s tackle it together!

Back To Top