How to make software more sustainable?

This standard is a framework for evaluating the product quality of the software. The problem, however, is that the framework only focuses on one property at a time and not on the consequences after the realization of such a property. “So you say, for example, that you want to make the maintenance as good as possible. But if you need a lot of machines for it with a lot of computing capacity and raw materials, then you will load another factor more heavily. So you have to look at several factors if you want to meet one quality requirement.” Therefore, the concept of ‘greenness’ has been added to the requirements, so that it is enforced that other consequences are also considered. Because sustainability is not only about reducing the CO2 footprint, but also being aware of environmental consequences or preventing a possible adverse social impact. Anyone looking to make their software sustainable can also get started by considering the broad spectrum of sustainability.

In addition, according to Christiaanse, it is important to look at the impact software has on the world. “It comes in three degrees. The first degree is the impact of actually using software. When you use your phone, you also use power. It is already affected. The second level is the use of the functionality, such as viewing images on your smartphone and chat with people. The third degree is the long-term effect of functionality. At Facebook, for example, it was seen that the data collected through Facebook was used in the long term by Cambridge Analytica to influence the Brexit vote. But was that the effect you wanted? You don’t see those kinds of effects right away, but if you think about them consciously, you might be able to spot them. And those kinds of effects actually have to be included in the definition phase.”

But, of course, new opportunities may also arise later. “It would be nice if you included sustainability in your agile process. For example, put a sustainability coach next to your people who specifically follows this,” says Christiaanse. “It’s a tool with which you can ensure that the topic is picked up faster and that you actually produce the software sustainably.”

The whole course of life plays a role

Those who really want to use their software in a sustainable way look not only at the development or use of software, but also at the entire life cycle. Christiaanse: “Software is a product, just like a pack of butter is a product. This starts with design, then construction, then testing, promotion to the next stage, installation in the production environment, commissioning, maintenance and management. And once the software is obsolete, you still have the long retention phase and eventually the destruction phase. All these stages have their influence.”

It is, for example, possible to look critically at the transfer of software to the next phase, e.g. to a production environment. “Every time you do a campaign, you have to package. Can’t you make those packages smaller? And do you have to do the promotion every time from the development phase to the testing or acceptance phase? It takes a lot of time and energy, so you should think about that.”

This also applies to software maintenance, Christaanse believes. “If you put your software together in such a way that it’s always a puzzle, it costs time and processing power, but also headaches for people.” And the management can also sometimes be better: “The functional managers do not always get a clear management environment. They are then forced to do arduous work. You can think about that so that it becomes friendlier and more efficient.”

Software and hardware work together

But what are specific things you can pay attention to if you want to make software work more sustainably? There is still a lot of low-hanging fruit, says Van Gastel. “You can program your software differently. For example, if an e-mail system checks three times a minute whether you have a new e-mail and has to connect and disconnect again and again, then it takes quite a lot of energy. It is much more efficient just to keep the line open.” The same trick can be used for databases where changes are controlled: “Keeping the line open costs next to nothing.”

However, it is not only the software itself that can be made more sustainable. All software runs on hardware and the two are therefore linked. “What you often hear is: ‘The software runs on a server in a data center with green energy, so it is sustainable.’ But that’s bullshit. You can say that you use green energy, but a data center itself is not built to be reusable. Computers and servers are not designed to be recycled. They are designed in such a way that you need all kinds of essential minerals, which are going to be scarce,’ says Christiaanse, for example.

But you can use software to ensure that the hardware is used more efficiently. “You can, for example, lower the response rate. Computers often do a lot at the same time because we often have several programs open at the same time. For it to work properly, it runs one program for a few milliseconds and then switches to the next. Programs therefore always have a maximum duration. If you increase that time, there will be fewer changes and you will reduce overhead, says Van Gastel. However, there is a limit: “At a certain point the program will stutter. So you have to find a good balance.”

Smarter handling of hardware and data

In addition, smarter use can be made of the hardware itself. For example, computers can be more economical by not using both the CPU and the GPU, but by ignoring the GPU. “If you work with both, you have to run a lot of the software through the CPU before you can run parts on the GPU. Then you have to have two separate chips on it. But the CPU often has a power-efficient mini-GPU onboard. So if you turn off the GPU and let the CPU do everything, it’s more efficient in the end.” On Van Gastel’s own computer, a separate GPU uses 3 times as much power as the CPU’s built-in GPU. “So it really makes a huge difference.”

But measures can also be taken outside the PC. “Most software runs on servers. It happens that there are several, older servers. You can of course merge them into one server. It also makes a difference.” It can also be ensured that calculations are performed differently so that computers do not heat up as much. “Then you save an enormous amount on cooling.”

Van Gastel also advises companies to look critically at their handling of data. “Storage costs energy, as does the transport of data and calculations with data. So if you have less network traffic and less permanent storage space, you also save. The less you store, the less energy you use. So a little data shame is not so bad.”

You don’t have control over everything

No matter how sustainable you try to be as a company, you will eventually run into limits, emphasizes Christiaanse. Today, almost all companies are part of a large chain, which means that you cannot influence everything. For example, it regularly happens that your own software needs to work together with the supplier’s software or even uses parts from a third party. “If you’re working in Java and Oracle doesn’t intend to make it more sustainable, you’re going to be stuck with it. So it’s really a very ugly problem we have.”

Leave a Comment