fb-pixel
Back to Blog

Green Maintenance: How to maintain software sustainably

Sustainability in IT has recently started to gather some long-needed attention. Even though it’s a trending topic, no commonly-agreed regulations or standards exist on what it actually means. While cloud service providers are setting their own targets to reduce emissions and achieve carbon neutrality, this is only one part of the equation. As developers and maintainers of software solutions, green coding, and green maintenance are areas where we can actively contribute to sustainability.

A girl working on her laptop

What is sustainability in IT

We find ourselves in a situation where the emissions from the IT industry are comparable to, or even surpass, those from commercial flights, depending on the source. Technologies like GenAI and cryptocurrencies, which consume vast amounts of energy, exacerbate this issue. The pressing question is how can we, as an industry, contribute to combating climate change and be part of the solution?

In order to make a difference, we must understand sustainability in general. It can be divided into five dimensions:

  1. Environmental
  2. Social
  3. Economic
  4. Technical and
  5. Individual

All these dimensions have to be taken into account in order to create a sustainable software. Futurice as a whole is working towards making an impact on all dimensions. In this blog post we focus on environmental and economic dimensions, as these are primarily present in green maintenance.

Why green maintenance is needed

Various terms related to sustainable software development have surfaced in recent years. Here we will focus on two relatively new ones: GreenOps and green maintenance.

GreenOps denotes the practices and technologies dedicated to reducing the environmental footprint of cloud computing. GreenOps is a broad concept that some consider a subset of FinOps. However, we believe GreenOps stands as an independent entity, although one that is closely connected to FinOps. For example, cost-saving measures, such as operating only essential instances of software, also contribute to lessening the environmental impact. But then some other FinOps measures, such as moving computing workloads to cheaper cloud regions, might actually have the very opposite environmental effect.

Through green maintenance, our aim is to ensure that applications are operated in the most sustainable manner possible. While many decisions impacting the software's sustainability have been made before the maintenance phase, there still remain plenty of opportunities to improve the sustainability. In Futurice Managed Services (aka. FutuCare) we can best see the consequences of choices made during the design and development of the applications we manage. We’re eager to share what we’ve learned with our development teams, to ensure that we keep improving in developing maintainable and sustainable software.

Interested in ROI? Focus on maintainability

Sustainability should be measured throughout the entire lifecycle of software, from requirements engineering to shutdown. The maintenance phase, despite being one of the final stages, is crucial for long-lasting software. From a sustainability point of view it bears the cumulative impact of all previous phases. Poorly implemented software is costly to refactor, both financially and environmentally.

If you truly want good ROI on your software assets, maintenance should be a top priority throughout its lifecycle.

Steps we are already taking to facilitate green maintenance:

  • Extensive knowledge transfer when project is moved to maintenance

    Why: Understanding the link between the architecture, different scenarios and solution

     -> Better maintainability and less complexity
  • High automatisation throughout the development process

    Why: Manually executed tasks take more time and thus are more expensive

      -> Better efficiency
  • Quality assurance

    Why: Way to ensure that the software works after changes and detect bad quality code

      -> Maintainable code done according to best practices
  • Monitoring resource usage

    Why: Changes in usage suggests performance issues

      -> Ability to detect and address the issues
  • Add tools to CI/CD pipelines that measure sustainability in different ways

    Why: Detect changes between different versions of software

      -> Awareness and possibility to take actions
  • Use cloud providers’ tools for sustainability

    Why: To be able to calculate the total emissions of cloud resources used

        -> Transparency and ability to make better decisions

This is a start, and other ways will emerge when knowledge of the topic grows and industry standards are made.

A sustainable future is within our reach

One thing that still needs to change on the path to green maintenance is the attitude. Generally, it's hard to oppose sustainability, but since it requires changes in how we develop and manage software, it can seem intimidating. However, many developers who follow modern software development practices are already on the right track. Thus quality assurance and best practices are key to ensuring software sustainability. Software developed with best practices in mind won't waste resources, whether it's processor power or human time and energy. As awareness grows and methods for measuring impact improve, people are likely to be less hesitant to adopt new ways of working.

While sustainability is just beginning to trend in the industry, there are already many actions we can take to promote sustainable software development. As cloud providers become greener and provide more information about the environmental impact of our workloads, we can see a glimmer of hope for sustainable IT. However, this requires action on many fronts and a commitment to utilizing the tools available to us.

At Futurice, Care is one of our core values. Our main 4x2 decision framework encourages us to consider all our actions also from the environmental viewpoint. Thus the topics discussed here, GreenOps and green maintenance, are very much aligned with who we are as a company and how we want to contribute to this world. We are keen to share this journey with you 💚

Authors

  • Henna Mäkiluoma
    Software Developer
  • Miika Heinonen
    Service Lead