Green Software: How Design Thinking can help develop sustainable software

Nikos Karaoulanis
Kainos Design
Published in
5 min readApr 24, 2023

More than green software development

The current green software debate focuses on sustainable practices, such as energy-efficient coding techniques, optimising software performance to reduce energy consumption, minimising resource usage, reducing waste and emissions, and using renewable energy sources.

It is primarily inward looking, engaged in the process of development. There is however, a need to focus on how the software will be consumed and the energy users will expend in using or attempting to use the solution. Energy used to develop and maintain a solution is different and distinct from the energy consumed when using the service.

Here is a non-digital example: A green and sustainable hospital built in a location only accessible by car will encourage energy consumption. While the building itself may be ‘green’, it indirectly encourages emissions reducing its green credentials.

The same could be the case with software. There is potential risk that a digital solution developed in a sustainable way could still encourage energy (over)consumption if it has not been designed with users’ needs in mind. For example, a solution could demand more effort from users, or invite longer interactions, or ask for more data than necessary to achieve a goal, or be confusing and create further interactions across channels.

The EU Science Hub estimates that over 80% of all product-related environmental impacts are determined during the design phase of a product. While this refers to physical products like kitchen appliances, we need to make an effort to identify all possible direct and indirect environmental impact when designing software.

This is where design thinking comes in.

How Design Thinking can help build more sustainable services

When applied to software development, design thinking can help create green software by taking into account the environmental impact of the software throughout its lifecycle; from ideation to disposal. Design thinking encourages teams to consider the wider impact of the solution at every stage of its lifecycle, including use, and end-of-life disposal.

It can help teams focus on key questions like:

  • Is this digital product needed? Are you adding yet another product with little value to users?
  • How much of it is really needed?
  • What problem does it solve? Are there not existing solutions that already meets this need?
  • What value does it unlock for clients and business? What is the value exchange?
  • Will it create a greener alternative to existing solutions? If not, why are you building it?
  • How much of other existing solutions can be reused, extended, or adapted, to accelerate development and reduce its environmental impact?

Design thinking also emphasises empathy and ethics, encouraging teams to consider the broader social and environmental impacts of their work.

  • Who is the solution for? really, who will it benefit the most?
  • Have all user groups been considered?
  • Will the solution exclude certain users? What will the unintended consequences be?
  • How much effort will it demand from users? Is it encouraging energy consumption?
  • What is its potential for harm?

Design artefacts such as end-to-end service blueprints, user profiles, and service/product definitions can help visualise the potential environmental and social impact the solution might have, helping project leadership make meaningful and informed decisions. For example, extending the business model canvas to include a ‘green’ section can help raise awareness of the solution’s green credentials. The section can include:

  • End of life planning: What happens at the end of the product lifecycle and whether the product can be profitably reused or sunset. You may want to consider replacing or enhancing physical products with digital solutions that are easier to scale and sunset.
  • Positive Impact: The positive effects, and how these can be maximised
  • Negative impact: The negative effects, and how these can be minimised

A business model canvas that outlines Environmental and Social impact can also be the starting point when considering non-functional requirements for the technology solution; it creates a single thread between user needs, business ambitions, and technical implementation. For example establishing a need for re-use or extensibility of existing solutions contributes to a technical debate on ensuring backward compatibility with older hardware/software so as not to encourage an ‘upgrade cycle’.

Actively introducing responsibility and sustainability to the desirability, feasibility, and viability framework will help raise the importance of sustainability, making it everyone’s priority.

Six Design Thinking steps to building green software

Our experience building software for millions of citizens has led us to consider six key areas before development:

  1. Reduce complexity:
    • Reduce the need for multichannel interactions unless critical in completing the task. Interactions across channels especially face-to-face ones are likely to increase energy consumption and reduce the overall sustainability of the solution
    • Simplify journeys and remove unnecessary steps. Interrogate the need for each step in the process and each data point required

2. Be aware of unintended negative consequences: Look for any potential environmental and social negative impact your solution might have. Harms workshops are a great way to identify potential for harm and plan mitigations.

3. Be inclusive: Ensure you have considered user groups across the digital inclusion scale and those with protected characteristics. Users at the edges of the experience may be forced to expend more effort and therefore energy to meet their goals.

4. Be clear: Use simple, clear and unambiguous language. Use examples where necessary and guide users through what is needed to complete a task therefore reducing the need for support.

5. Reduce Waste: Reuse existing design patterns and remain consistent; adapt or change only where necessary. Building and maintaining design pattern libraries makes for more efficient workflows while consistent design promotes familiarity which enables quicker and frictionless journeys, and

6.Opt for energy efficient design elements. For example reducing the need for images or making them integral to the content (exactly what I did not do with the image in the post!) is a good start, as is removing autoplay for videos.

But most importantly, build and maintain a holistic, 360 view of the solution you are developing and its position in the relevant (eco)system.

P.S. what is Green software?
Green or sustainable / eco-friendly software is software that is developed to minimise its environmental impact, primary focusing on reducing carbon emissions associated with building, running, and maintaining it.

--

--