Green Software: Design Principles and Guidance

Nikos Karaoulanis
Kainos Design
Published in
6 min readJul 11, 2023
https://pixabay.com/illustrations/sustainability-sustainable-7356521/

The green software movement will benefit from louder, non-technical voices; voices that are concerned with designing planet-centred solutions that are useful to users. While technology is the enabler, product management, design, research, content, and more skills are critical in defining approaches that will help the tech industry become better leaders in sustainability.

In a previous post on green software I touched on how design thinking can contribute to the creation of sustainable digital products and services. I suggested six questions to consider when starting a software development project.

After researching the subject, it became apparent that the current debate centres wholly around technology — i.e., the tech used to build software, the tech that brings software to life, and the digital solution itself. While The Green Software Foundation has done some excellent work at both raising awareness around sustainability in tech and actively working on practical approaches to building green software, it was disappointing to see how little design thinking and design approaches feature in the debate.

The focus, and for good reason, is around technology and measuring emissions. This makes sense, we need to be able to measure the environmental impact of our digital products in order to improve and make an impact. However, the conversation rarely moves to the actual experiences we build, the problems our solutions solve, and the value they add.

There is little meaningful content on how design, or any other non-tech discipline, can and should play a key role in building useful green software. Green software principles must be a part of the user experience is a welcome start but it doesn’t go far enough. The Sustainable UX Network (SUX) mentioned in the article has yet to deliver (as of July 23), and the Accenture report highlighted, while insightful, contains only a few paragraphs that list examples of good and bad green design.

It is time to look beyond technology and really consider the value of what we are building. My previous blog makes an attempt to establish a framework to ensure we ask difficult questions before we write a line of code. Here, I want to focus on:

  1. Putting together a set of green design principles for sustainable digital projects and services, and
  2. Collating an emerging set of design guidelines to ensure sustainability is baked into the software we build.

1. Green design principles

At Kainos we are currently looking for a list of statements that can both encapsulate what green software is about and inspire teams to deliver digital solutions with sustainability in mind.

Green software is planet centric

This is a principle I have been debating with colleagues here at Kainos. A few commentators online encourage us to count the planet (environment) as a stakeholder among other stakeholders like different types of users and business stakeholders.

My personal view is that this is not enough; it doesn’t take us far enough, and it is unlikely to make much of an impact. Good design has always been environmentally friendly, and yet we collectively messed things up; there is a lot of badly designed software out there.

We need to start with meeting the planet's needs first and then follow with other stakeholders including users; a bit like meeting the primary persona’s needs first. It might be controversial to place the planet over users, but building solutions that meet the planet’s needs will also enable users to achieve their goals.

Green software reduces complexity

Modern web technologies, high connectivity speeds, and a wealth of powerful digital touchpoints have made the design and tech industry careless. We tend to spend time creating solutions that ‘delight users’, offering rich — complex data and energy hungry software — experiences that can be wasteful while not fully and efficiently meeting needs or having a clear purpose.

Focusing on the task at hand will help create light, simple, and yes enjoyable experiences. We know that more design is not necessarily good design.

Green software encourages sustainable behaviours

While most software carbon emissions are baked into the live product — that is both embodied and operational carbon — there is also energy consumed by users engaging at the front end. This includes the time they spend on their screens interacting with a solution, as well as all other activities required to complete a task, such as making phone calls, uploading or printing documents, consulting chatbots, etc. Browser energy also contributes to the emission costs of the solution: for example, enabling dark mode, or the number of open browser tabs (I currently have 12 open!).

We need to both empower users and make them accountable for their emission costs. Design can promote interaction styles that reduce energy consumption and therefore emissions, or visualise usage and waste. For example, exposing emissions per method of contacting a business, or the difference in energy consumption between dark and bright modes.

Green software makes users think

This is an idea inspired from Cennydd Bowles’ excellent work on Ethics. Since its beginnings, UX has been an advocate of simplicity and building seamless and frictionless experiences: the less a user has to think the better. I remember a few of us quoting ‘Don’t make me think’ and pleading with clients to remove all friction from their products so users can complete their tasks without having to think much.

While our intentions were honourable we have created plenty of experiences that users sleepwalk through. Is it time to wake everyone up and place some friction in our products?

Green software is inclusive, or rather, inclusive software is green

At Kainos we have for some time been focusing on building inclusive and accessible services that comply with the Equalities Act and Accessibility Regulations. We engage users with a range of digital literacy skills and design with accessibility in mind.

We are finding out that inclusive and accessible design is inherently green. Designing for a wide and diverse user base encourages us to simplify journeys, language and, UI elements, offering more streamlined and usable services as a result.

Green software encourages responsible data collection

It is 2004. A client is asking us to build a form to collect user data. You know, things like name, address, DOB…. DOB? Hmm, why do you need this? Well just in case.

Things haven’t changed much really, have they? Actually, they have gotten worse since and we have gotten greedier, collecting and storing lots of data…just in case we need it. Green software needs to go on a data diet. We need to really consider the data we need to collect, where to store it, for how long, and how to sunset it.

These are some initial and emerging principles, very much a work in progress. We are still considering them, debating them, and testing them to settle on a list that can guide our customers in green software development.

2. Green design guidelines

The Green Software Foundation has made a great start to building a set of guidelines for AI, Cloud, and Web. Only the latter includes guidelines closely associated with design. I want to add to those nine patterns and recommend we expand to a more complete list offering teams the opportunity to bake sustainability in earlier. While not complete, here are some patterns Kainos is considering:

Content & Typography

  • Streamline content. Develop an end-to-end content strategy, from creating to sunsetting content
  • Optimise font files. Opt for system fonts, they are the most efficient
  • Only keep the fonts and weights you will actually need and consider stripping out unused characters

Colour

  • Reduce brightness of colour
  • Opt for colours that use less energy. The greater the amount of colour variation in an image the larger the file
  • Opt for black and white or monochrome images
  • Use flat colours

Also

  • Use Javascript with care
  • Compress code to reduce file size
  • Avoid video. Use video only if absolutely necessary. Opt for interactive web animations instead
  • Reuse than create. Maintaining a library of assets will help speed up work and build consistency
  • Consider your design workflow. Do you go from paper, to Figma, to code? Do you go straight to code?
  • Consider your research ops. Are you travelling to conduct user research? What about all those video files you are storing? Let’s not forget the tens of Miro or Mural boards we’ve become so accustomed to

This is just a starting point; what other patterns do you think should be added to the list?

[some] Sources

--

--