Blog 27.2.2025

It is time to take a leap towards sustainability in software development

Competence

Sustainability in software development means creating efficient, reliable, and environmentally friendly applications and systems. This approach balances the need for innovative technologies with the responsibility to minimise environmental impact and promote social well-being. By prioritising sustainable practices, developers can ensure that their software has a positive impact on both users and the planet.

Best practices bring the best solutions

The environmental friendliness of digital services needs more attention to be perceived as a megatrend. On a societal level, people have only just begun to discuss the use of recycled materials or carbon footprint.

Traditionally, efficiency in software development has been vital, as available resources have been measured in kilobits instead of gigabits. With the advancement of technology, there was no longer a shortage of resources, leading to massive software products where optimisation had taken a back seat.

However, with climate change already a reality, we are forced to wake up to the fact that software and websites, like everything else in the world, require energy to function. Software developers are faced with a challenge: how to make software and websites smaller and more efficient, without compromising functionality and accessibility.

An even bigger question is how to make sustainability an established part of development. In an ideal situation, it would be a central part of the indicators of desirability of coding and development, perhaps even a criterion of its own.

Another important perspective is familiar from the world of physical products: life cycle thinking. Life cycle thinking considers constantly, for example, the following questions: How long the service is available, who is responsible for it and to whom responsibility is transferred to?

In addition to these, it is important to consider what the end of the service life cycle will be like: Will there be a new service, how the termination will be handled, are there parts of the service that cannot be terminated, and what will be done with any remaining data or parts of the service? Life cycle thinking must be included from the very beginning, and identifying all the different requirements requires a good understanding of enterprise architecture.

Would standardisation be the answer?

One of the areas included in the job description of developers is the implementation of the most efficient solutions. However, there is not always enough time to thoroughly evaluate one’s own work. Limited resources often lead to optimisation being undermined. It may be implemented at a later date, possibly never.

One good way to make sure you have time for optimisation is to add it as a criterion to the “done” list (Definition of Done – things that need to be done before a feature being developed is classified as complete). In this case, energy efficiency has been committed to at the project level, and it is easier to incorporate it into the time estimate. Ideally, energy efficiency would be treated in the same way as accessibility, for which there are official, legally required standards. This may be a reality in the future, but for the moment it is still voluntary.

A code review with its criteria is one of the most effective ways to influence the energy efficiency of a code in daily work. When all changes and additions pass by several pairs of eyes, possible logic errors, inefficient solutions or other ambiguities do not reach production.

One problem that hampers the possibility of standardisation is measurability, or rather the lack thereof. If a physical meter cannot be attached to the device being used, the energy consumption can only be guessed according to the best information.

Tools for estimating carbon emissions are available that estimate website emissions based on, for example, the amount of data, traffic, and servers. Website Carbon Calculator is one such service. Large cloud providers also give their own estimates when using their services, so developers have the opportunity to get some kind of assessment of the environmental impact of the product.

Accessibility and efficiency matter

As mentioned in the previous chapter, accessibility has been identified as an important criterion for digital services. Accessibility and responsibility are often mutually supportive. For example, supporting older devices does not force the user to upgrade their devices, and ensures a larger user group.

A small number of moving elements, videos for example, reduces the amount of data and makes the page easier to use. Although the developer cannot directly influence the end user’s energy consumption, a clear structure and ease of use can speed up the time spent using the service, theoretically reducing the user’s energy consumption.


Start your journey towards a more sustainable digital future


How can developers take the first steps in their work?

For a developer in everyday work, the most important thing would be to make readable, comprehensice and maintanable code. If the code is a jumble comparable to spaghetti, you may not even want to touch it in the future, much less optimise it. A phenomenon familiar to every developer is the “to do” line, which was last dated three years ago.

Simple and easy-to-read code also has the advantage that possible bugs and errors are easier to find and fix. In this case, the repair itself also saves both time and the nerves of the developer.

Another, very common phenomenon – especially in web development – is the variety of libraries, their auxiliary libraries and plugins. If a developer simply downloads library after library from the internet, the number of add-ons and code to manage will increase tremendously. Using only the necessary libraries with verified content reduces the number of files and reduces security risk.

Finally, perhaps the most important thing that needs to be done in application development: choose tools according to the project. For example, to build your own portfolio page with mainly text and a few images, it may not be sensible or resource-efficient to use tools that excel at building large, multi-page, and complex websites.

software development

Aino Teponainen

Software Developer

Aino is a front-end developer specialised in accessibility and green coding, whose goal is to bring an environmental perspective to everyday work.

Back to top