OU blog

Personal Blogs

Christopher Douce

Green software: tools and resources

Visible to anyone in the world
Edited by Christopher Douce, Friday 30 October 2026 at 11:42

In my role as school teaching sustainability lead, I’ve collected a set of links to tools and resources that relate to computing, coding and energy consumption. This short blog shares some of those resources, shared in no particular order. In some respects, this post is an update to a previous post.

Organisations

Green software foundation

The Green software foundation is described as ‘a nonprofit building the standards, tools, and community the tech industry needs to make software part of the climate solution’. Its mission is to ‘Build a trusted ecosystem of people, standards, tooling and best practices for creating and building green software’, and its vision is to ‘change the culture of building software so sustainability becomes a core priority — just as important as performance, security, cost and accessibility’ (Green Software Foundation website, 2026).

A quick look into this site takes me to the Software Carbon Intensity (SCI) Specification pages https://sci.greensoftware.foundation/. In turn, there is a link to a SCI GitHub project page.

The Software Carbon Intensity (SCI) Specification has also become a standard, ISO/IEC 21031:2024 Information technology - Software Carbon Intensity (SCI) specification. Standards are important; they help to define things and can be used to encapsulate knowledge and practises.

Government Digital Sustainability Alliance (GDSA)

Looking at everything from a slightly different angle, I have long bookmarked something called the Government Digital Sustainability Alliance (GDSA). There is a more friendly and earlier to read UK Government Sustainable ICT blog. This is potentially useful, since government is a huge user of IT.

SPEC

SPEC, the Standard Performance Evaluation Corporation (SPEC), is described as 'a non-profit corporation, establishes and maintains standardized, vendor-agnostic benchmarks and tools to evaluate performance and energy efficiency for the newest generations of computing systems' (SPEC website, accessed October 26).

W3C Sustainable Web interest group

The World Wide Web Consortium (W3C) defines everything that relates to the World Wide Web. Within this umbrella organisation, there is the Sustainable Web Interest Group.

The W3C has also produced something called the Web Sustainability Guidelines (WSG). An accompanying document is something called the Web Sustainability Guidelines (WSG) Impact Ratings.

It is worth paying attention to the what the W3C is getting up to.

Projects

I’ve also become aware of a number of projects:

Green Coding

Green Coding appears to be a business that offers consultancy and advice services. It also has developed something called a Green Metrics Tool which is available to download as open source software. Some questions that immediately come to mind are: what does this software do? How does it work? And, what does it measure?

Code Carbon

Code Carbon ‘is a French non-profit building free, open-source tools for developers and researchers’. Their website gives details of a number of projects, including something called EcoLogits described as ‘a suite of open source tools for estimating the environmental footprint of generative AI models at inference. empowering developers and organizations to build more sustainable AI-powered applications’ (EcoLogits project summary page, 2026).

Cloud Carbon Footprint

Cloud Carbon Footprint is a tool that ‘provides a way for organizations to measure, monitor, and reduce their carbon emissions from the cloud. It supports connecting to multiple cloud providers, allowing you to get a full picture of your cloud emissions’ (Cloud Carbon Footprinr docs 2026).

Carbon Literacy Project

TheCarbon Literacy Project isn’t about technology, IT or code; it is an education project that aims to foster societal change. Here is a summary: ‘the Project empowers individuals, organisations and communities with the knowledge, skills and motivation to take real, measurable action on climate change’. The project also ‘certifies individuals as Carbon Literate, and accredits courses, trainers, organisations … providing the frameworks to enable others to do so, at scale and with impact’. A key impact is to develop personal individual awareness of decisions that we make.

EnergiBridge

Turning away from the bigger picture, from the cloud and AI engines, and towards the machine itself, there is a project called EnergiBridge which is simply described as ‘A cross-platform tool to measure software energy consumption (CPU, GPU, RAM)’.

Resources

Videos

Writing Greener Software by Charles Humble

This talk mentions a number of resources mentioned in this blog, such as the Green Software Foundation (in the context of a maturity model), and the Currie et al. book (in the context of zombie servers) – which makes me think I might have listened to this video before. Charles makes really interesting points about the importance of testing, server choices, and benchmarks. A really helpful point is that it is hard to carry out measurements, which means we must make use of ‘proxies’.

The Price of Pixels: Unmasking the Environmental Impact of Our Digital Lives by Ian Mudway

Although not as technical as Charles’ talk, Ian’s talk is engaging and persuasive. Early on in his talk, he shares a thought provoking opinion: ‘If you update your laptop every two years… you are committing an ecological crime’, referring to the embodied carbon that it contains (the energy that has gone into its manufacture).

Books

Here are two technical books, both are available through the OU library (if you’re a student or a member of staff). The first one is mentioned by Humble:

Currie, A., Hsu, S. and Bergman, S. (2024) Building green software : a sustainable approach to software development and operations. O’Reilly Media, Inc.

Turning to an earlier book, and one that is referenced within TM354 Software Engineering:

Bass, L, Clements, P.  and Kazman, R.  (2021) Software Architecture in Practice, 4th Edition. Addison-Wesley Professional.

Although Bass’s book is not specifically about environmental computing or green code, the Energy Efficiency section, which can be found in part II of his textbook is particularly interesting.

Turning to a different type of book, I do recommend:

Pitron, G. (2023) The Dark Cloud: How the digital world is costing the earth. Scribe.

This one is a bit of an eye opener, but it directly relates to the themes presented within the videos.

Finally, I have two on my To Be Read (TBR) pile:

Siddharth, K. (2023) Cobalt Red: How the Blood of the Congo Powers Our Lives. St. Martin’s Press.

This book is mentioned by Mudway. This speaks to wider and very significant issues, including power, capitalism and colonialism.

Richards, H. (2024) Not the End of the World. Vintage.

This is mentioned in the Charles Humble video, but I first learnt about it by browsing through a bookshop.

Podcasts

There are not many podcasts available on this topic. The Climatestack podcast mentioned in Charles Humble’s lecture appears to have disappeared.

A good podcast for software developers and engineers is the IEEE Software Engineering Radio series. It is notable that sustainability and green software development is conspicuous by its absence. There is, however, one notable podcast: SE Radio 597: Coral Calero Muñoz and Félix García on Green Software. Notably, the point of how software is built, is highlighted, not only that the impact of a built product might be.

Articles

Here are a list of articles that I’ve found particularly interesting:

Lago, P. et al. (2021) ‘Designing for Sustainability: Lessons Learned from Four Industrial Projects’. In: Kamilaris, A., Wohlgemuth, V., Karatzas, K., Athanasiadis, I.N. (eds) Advances and New Trends in Environmental Informatics. Progress in IS. Springer, Cham. Available at: https://doi.org/10.1007/978-3-030-61969-5_1

Manotas, I. et al. (2016) 'An Empirical Study of Practitioners' Perspectives on Green Software Engineering. IEEE/ACM 38th International Conference on Software Engineering (ICSE). 14-22 May 2016. Available at: https://doi.org/10.1145/2884781.2884810

Moreira, A. et al. (2025) ‘A Roadmap for Integrating Sustainability into Software Engineering Education’. ACM Transactions on Software Engineering and Methodology, Vol. 34 (5). Available at: https://doi.org/10.1145/3708526

Pereira, R. et al. (2021) ‘Ranking programming languages by energy efficiency’, Science of Computer Programming. Available at: https://doi.org/10.1016/j.scico.2021.102609

Verdecchia, R. et al. (2021) 'Green IT and Green Software', IEEE software, Vol. 38 (6), pp.7-15. Available at: https://doi.org/10.1109/MS.2021.3102254

Wolfram, N. et al. (2018) 'Sustainability in software engineering'. Sustainable Internet and ICT for Sustainability (SustainIT). 06-07 December 2017. Available at: https://doi.org/10.23919/SustainIT.2017.8379798

Reflections

When you begin to study this topic, you soon realise there are so many other subjects that demand attention. Looking immediately within software engineering and software development, we can see the importance and significance of ethics. Look a little further, we found ourselves studying rich domains of sociology and politics.

Whilst writing this post, I did have a quick look at the current version of the Software Engineering Body of Knowledge. I was struck that it contained very little about environmental computing. It mentioned sustainability, but in terms of the longevity and flexibility of engineered systems, rather than environmental sustainability.

One key theme is clearly evident: the importance of measurement. It is perhaps no surprise that a number of measurement or modelling tools have been built. Knowing about the diversity of these tools immediately provokes a number of research questions, such as ‘how are they different from each other?’, ‘what exactly do they measure?’ and ‘to what extent are they appropriate or useful for certain types of software system?’

The more I look into this subject, the more I find there is to read.

Acknowledgements

Thanks are given to Michael Snowden, Andrea Davanzo and Ian Kennedy for making me aware of some of the resources that are featured in this post.

Permalink Add your comment
Share post
Christopher Douce

Writing greener software

Visible to anyone in the world
Edited by Christopher Douce, Friday 2 May 2025 at 14:37

I spent a bit of the morning of 2 April 25 listening to a presentation by Charles Humble on the topic of Writing Greener Software (YouTube).

It is a good listen watch, especially if you’re interested in software. To pique your interest, the following topics are mentioned:

  • Some science behind the study of climate change (along with some terrifying predictions).
  • Different ‘scopes’ of carbon responsibility: scope 1 (what we are responsible for), scope 2 (carbon from some of the services we consume), and scope 3 (carbon emitted from organisations we use). I paraphrase this badly.
  • The notion of embedded carbon and how it relates to your devices.
  • Related to this, keep your end user devices for as long as you can, since the embedded carbon is likely to be higher than any running costs.
  • The relative efficiency of programming languages. With this in mind, always try to use the latest runtime of any language you’re using (a point was made that new version of the Java virtual machine is likely to be more energy efficient than older version).
  • The efficiency of servers (and what server load you should aim for). Also, when it comes to energy efficiency, servers are different to end user devices.
  • The need to manage our ‘zombie’ servers; servers which we’re afraid to turn off. On this point, we need to be able to reliably turn servers off and on without causing any disruption to services.
  • The CPU choice of your data centre servers.
  • If you’re using a public cloud provider, to look at any carbon tools they have, and know how to use them.
  • There’s a concept called demand shifting. Consider where your users are, and consider where the energy is greener. You could also carry out your data processing at different times, and at different locations. Try to predict demand.
  • On the topic of AI, ‘information on the environmental cost of AI is scant’. Energy consumption may have increased between 30 and 50% since 2020. Generative AI is computationally expensive, both with respect to training and using large language models.
  • There are likely to be more regulations and governance.
  • Conclusion: share your knowledge about all this; talk with each other.

Accompanying references

I recognised a couple of websites and resources, and learnt about a few that I hadn’t heard of.

In terms of websites, tools and organisations, there were:

Some useful books:

There are also a couple of podcasts (but I can only access one of them): Climate Stack.

Reflections

I was expecting something different from this talk. I was expecting to learn some practical tips that perhaps related to design and coding. In retrospect, I’m really glad it didn’t touch on these lower level issues, since that wouldn’t express the complexities that the talk touches on. Green software goes beyond bits of code. Software relates to requirements, architectural choices, data centre locations, data centre design, and decisions about when and where you carry out tasks. There’s also the importance of personal and professional responsibility, and the need to lobby within the organisations in which we work.

Permalink Add your comment
Share post
Christopher Douce

SEAD/LERO Research Conference ‘23

Visible to anyone in the world
Edited by Christopher Douce, Thursday 20 July 2023 at 09:56

I attended my first joint OU SEAD/LERO research conference, which took place between 4 July and 6 July 23. SEAD is an abbreviation for Software Engineering and Design Research Group a research group hosted within the OU’s School of Computing and Communications. The conference was joined by members of LERO, the Science Foundation Ireland Research Centre for Software, which based in Limerick.

What follows is a summary of the two days I attended. There was a third day that I didn’t attend, which was all about further developing some of the research ideas that were identified during the conference, and researcher professional development

The summary is intended for the delegates of the conference, and for anyone else who might be interested in what happens within the SEAD research group. All the impressions (and any accompanying mistakes in my note taking) are completely my own. What is summarised here isn’t an official summary. Think of it as a rough set of notes intended to capture some of the themes that were highlighted. It is also used to share some potential research directions and areas that intend to be further developed and explored.

Day 1: Introductions and research discussions

Bashar Nuseibeh kicked off the day by highlighting the broad focus of the conference: to consider the role of software in society. Although I missed the first minutes of his opening address due to traffic, there was a clear emphasis on considering important related themes, such as social justice.

The first session was an ice breaker session. This was welcome, since I was an incomer to the group, and there were many delegates who I had not met before. We were asked to prepare the answers for three questions: (1) Who you are, including where you are based and your role? (2) What is your main research area/interest?, and (3) Something you love about your research and something you dislike. (Not bureaucracy!)

Having a go to answer these myself, I work as a staff tutor. My research interests have moved and changed, depending on what role I’ve been doing. Most recently, it has been about the pedagogy of online teaching and learning. When I was a researcher on an EU funded project, I was looking at the accessibility of online learning environments and supporting students who have additional requirements. Historically, my research has been situated firmly in the area of software engineering; specifically, the psychology of computer programming, maintenance of object-oriented software, and software metrics (informed by research about human memory). I have, however, returned to the domain of software engineering, moving from the individual to communities of developers by starting to consider the role of storytelling in software engineering, working with colleagues Tamara Lopez and Georgia Losasso.

What I like about the research is that it is really interesting to discover how different disciplines can be applied to create new insights. What can be difficult is that different disciplines can sometimes use different languages.

Invited talk: navigating the divided city

Next up was an invited talk by Prof. John Dixon from the OU’s Social Psychology research group. John’s presentation was about “intergroup contact, conflict, desegregation, and re-segregation in historically divided societies”. John described how technology was used to explore human mobility preferences. Drawing on research carried out as a part of the Belfast Mobility Project. The project studies, broadly speaking, where people go when they navigate their way through spaces, and can be said to sit within an intersection between social science and geography. Technology was used by researchers to study activity space segregation and patterns of informal segregation, which can shed light on social processes. 

John also highlighted tensions that a researcher must navigate, such as the tension between open science (where data ca be made available to other researchers) and the extent to which it is ethical to share detailed information about the movement of people across a city.

There was a clear link between the talk and the theme: the connection between software and society. This talk also resonated with me personally: as a regular user of an activity tracker called Strava, I was already familiar with some of the ethical concerns that were shared. After becoming a user of Strava, I changed a couple of settings to ensure that my identity is disguised. Also, a year ago I noticed that the activity tracker has started to hide the start point and the end point of any activity that I was publicly sharing. A final point from the part of the day is that both technology and software can lead to the development of new methods and approaches.

Fishbowl: Discussing society and software

Talking of new methods and approaches, John’s talk (and a lunch break) was followed by an event that was known as the ‘fishbowl session’, which introduce a ‘conference method’ that I had never heard of before.

In some respect, the ‘fishbowl’ session was a discussion with rules. Delegates sat on one of ten chairs in the middle of the room, and have a conversation with each other, whilst trying to connect together either the main theme of the discussion (software and society) or some of the topics that emerge from the discussions.  We were encouraged to discuss “anything where software has a role to play”.

The fishbowl discussed consequences of technology, collective education, critical thinking (of users), power of automation, concentration of power (in corporations), the use of AI (such as large language models), trade-offs, and complex systems. On the subject of AI, one view I noted down was that perhaps the use of AI ought to be limited to low risk domains, and leave people to the critical thinking (but this presupposes that we understand all the risks). There was also a call to ensure that AI tools to explain their “reasoning”, but this also implicitly links back to points about skills and knowledge of users. This is linked to the question: how do we empower people to make decisions about the systems that they use?

Choices were also discussed. Choices by consumers, and by developers, especially in terms of what is developed, and what is good to develop. Also, when uncovering and specifying requirements, it is important to consider what the negatives might be (an observation which reminds me of the concept of ‘negative use cases’ which is highlighted in the OU’s interaction design module).

I noted down some questions that were highlighted: how do we present our discipline? Do we research how to “do software” and leave it up to industry? Should we focus on the evaluation of the impact of software on communities and society? An interesting quote was shared by Bashar, which was: “working in software research is working for society”.

A final reflection I noted was that societal problems (such as climate change) can be thought as wicked problems, where there is no right answer. Instead, there might be solutions that are not very right or wrong, or solutions that are better or worse than others.

It was difficult to distil everything down to a group of neat topics, but here are some headings that captured some of points that were discussed during the fishbowl session: resilience, care, sustainability, education, safety and security, and responsibility.

At the end of the session, all delegates were encouraged to join a group that reflected their research interests. I joined the sustainability group.

Group Work 1 - Expansion of themes from the fishbowl

After a coffee break it was time to do some work. The guidance from the agenda was to “to develop some proposals for future research (problem; research objectives; research questions; methods; impact)”. 

The sustainability group comprised of four members: three from SEAD, one from LERO.

After broadly discussing the link between sustainability and software engineering, we produced a sketch of a poster that shared the following points:

  • How can we make connections and causal links between different (sub)systems explicit.
  • How can we engineer software to be holistically ‘resource aware’?
  • What is the meta-language for sustainable software systems?
  • What are the heuristics for sustainable software systems?

On the surface of it, all these points are pretty difficult to understand. 

The first point relates to the link between software, economics, and society. Put another way, what needs to be done to make sure that software systems can make a positive contribution to the various dimensions of our lives. By way of further context, the notion of Doughnut Economics was shared and discussed.

The second point relates to the practice of developing software. Engineers don’t only need to consider how to develop software systems that use resources in an efficient way, they also need to consider how software teams use and consume resources.

The third point sounds confusing, but it isn’t. Put another way: how do we talk about, or describe, or even rate the efficiency, or sustainability of software systems. Going even further, could it be possible to define an ISO standard that describes what elements a sustainable software system could or should contain?

The final point also sounds arcane, but when unpacked, begins to make a bit of sense. In other words: are there rules that software engineers could or should apply when evaluating the energy use, or overall sustainability of software systems? There are, of course, some links from this topic to the topic of algorithms and data structures (which is explored in modules such as M269 Algorithms, data structures and computability) which considers efficiency in terms of time and memory. A simple practical rule might be, for example: “rather than continually polling for a check in status of something, use signals between software elements”. There is also a link to the notion of software patterns and architecture (with patterns being taught on TM354 Software Engineering).

Day 2: Ideate and prototype

The second day kicked off with summaries from the various groups. The responsibility team spoke about the role of individuals, values, and organisations. The care group highlighted motivation, engagement, older users and how to help people to develop their technical skills. The education had been discussing computing at schools, education for informed choices, critical thinking, and making sure that the right problem is addressed. The resilience group discussed support through communities, and the safety and security group asked whether safety related to people, or to process.

A paraphrased point from Bashar: “look to the literature to make sure that the questions that are being considered haven’t been answered before” also, reflecting on the earlier keynote, “consider radical methods or approaches, and consider the context when trying to understand socio-economic systems”.

Group Work 2 - ideate and prototype

Back in our groups, our task was to try to operationalise (or to translate) some of our earlier points into clearer research questions with a view to coming up with a research agenda.

Discussing each of the points, we returned to the meaning of the term sustainability, along with what is meant by resource utilisation by code, also drawing upon the UN sustainable development goals https://sdgs.un.org/goals .

We eventually arrived at a rough agenda, which I have taken the liberty of describing in a bit more detail. The first point begins from a high level. Each subsequent points moves down into deeper levels of analysis, and concludes with a point about how to proactively influence change:

  1. What types of software systems or products consume the most energy?
  2. After identifying a high energy consuming product or system, use a case study approach to holistically understand how energy used, also taking into account software development practices and processes.
  3. What are the current software engineering practices of developers who design, implement and build low energy computing devices, and to what extent can sharing knowledge about practice inform sustainable computing?
  4. What are the current attitudes, perceptions and motivations about the current generation of software engineers and developers, and how might these be systematically assessed?
  5. After uncovering practices and assessing attitudes, how might the university sector go about influencing organisations to enact change?

Relating to the earlier call to “draw on the literature”, a member of our team knew of some references that could be added to the reference section of our emerging research poster:

Lago, P. et al. (2015) Framing sustainability as a property of software quality. Communications of the ACM, Volume 58, Issue 10, pp.70–78. https://doi.org/10.1145/2714560

Lago, P. (2019) Architecture Design Decision Maps for Software Sustainability. 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Society (ICSE-SEIS), 25-31 May 2019, IEEE. https://doi.org/10.1109/ICSE-SEIS.2019.00015

Lago, P. et al. (2021). Designing for Sustainability: Lessons Learned from Four Industrial Projects. In: Kamilaris, A., Wohlgemuth, V., Karatzas, K., Athanasiadis, I.N. (eds) Advances and New Trends in Environmental Informatics. Progress in IS. Springer, Cham. https://doi.org/10.1007/978-3-030-61969-5_1 

Manotas, I. et al. (2018) An Empirical Study of Practitioners' Perspectives on Green Software Engineering. 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE). 14-22 May 2016. https://doi.org/10.1145/2884781.2884810

Wolfram, N. et al. (2018) Sustainability in software engineering. 2017 Sustainable Internet and ICT for Sustainability (SustainIT). 06-07 December 2017. https://doi.org/10.23919/SustainIT.2017.8379798

(A confession: I added the Manotas reference when I was writing up this blog, since it looked like a pretty interesting recommendation, especially have previously been interested in the empirical studies of programmers).

Conference visit: Bletchley Park

The second day concluded with a visit to Bletchley Park, which isn’t too far from the campus. It seemed appropriate to visit a place where socio-technical systems played such an important role. I had visited Bletchley Park a few times before (I also recommend the computing museum, which is situated on the same site), so I sloped off early to try to avoid the rush hour to London.

Day 3: Consolidate and plan next steps

This final day contained a workshop that had the title “consolidate and plan next steps” and also had a session about professional development. Unfortunately, due to my schedule, I wasn't able to attend these sessions.

Reflections

I really liked the overarching theme of the event: the connection between software and society. Whilst listening to the opening comments it struck me that there were some clear points of crossover between research carried out within the SEAD group, and the research aims of the OU Critical Information Studies research group.

It was great working with others in the sustainability group to try to develop a very rough and ready research agenda. It was also interesting to begin to discover how fellow researchers in other institutions had been thinking along similar lines and have already taken some of our ideas further. 

One of my next steps is to continue with reading and exploring with an aim of developing a more thorough understanding of the research domain.

It was interesting that I was the only staff tutor at the event. It is hard for us to do research, since our time split in three different ways: academic leadership and management (of part time associate lecturers), teaching, and whatever time remains can be dedicated to research. For the next few years, my teaching ‘bit’ of time will be put towards doing my best to support TM354 Software Engineering.

Looking forward, what I’m going to try to do is to integrate different aspects of my work together: integrate the teaching bit with the research bit, with the tutor management bit. I’m also hoping (if everything goes to plan) to tutor software engineering for the first time.

As well as integrating everything together, another action is to begin to work with SEAD colleagues to attempt to put together a PhD project that relates to sustainable computing.

Update 20 July 23: After doing a couple of internet searches to find more about DevOps, I discovered a new book entitled Building Green Software (O'Reilly), which is due to be published in July 24. I also found an interview with the lead author (YouTube), and learnt about something called the Green Software Foundation. I feel really encouraged by these discoveries.

Permalink
Share post

This blog might contain posts that are only visible to logged-in users, or where only logged-in users can comment. If you have an account on the system, please log in for full access.

Total visits to this blog: 4513367