Green Software: A Sustainable Guide
Green Software: A Sustainable Guide
software
guide
Developed in partnership with
the University of Leicester
Introduction
2
Green software purchasing
3
Software design and
development
The design and development of software can be energy intensive. For example, researchers at Harvard
trained an AI model to classify flowers using a small, publicly available dataset. The AI model achieved an
accuracy of 96.17 percent in classifying different species with only 964 joules of energy. But to achieve
higher accuracy the system consumed significantly higher energy—to gain a 1.74 percent increase in
accuracy. The energy consumption increased significantly to 2,815 joules and a further increase in accuracy
demanded increased energy consumption.
4
Development of green software spans the entire lifecycle of software development, operation and disposal (reuse).
Green software design and development requires a mindset shift that integrates sustainability by recognising its
environmental impacts across its lifecycle. Considering where to include green software in your delivery lifecycle
can be challenging. We’ve developed the infographic below as a basic guide to green software in the delivery
life cycle.
4
5
Retrospective Testing
Deployment
Responsible
development
• Document and share
learnings
3 • Software efficiency
• Well-architected review
Development • Data efficiency
6 • Green continuous
Review development
• Sustainability dept
2 • Code review
(including efficiency)
Design
Requirements 1
5
Architecture the sustainability of a deployment model will vary
depending on the specific needs and requirements of
the software, the energy consumptions of the hardware
Architecture pattern refers to the options and the lifecycle of the software.
structure and organisation of the
The environmental impacts of deployment models
software systems. Selecting the vary. On-premises deployment, for example, requires
appropriate architectural pattern the purchasing and maintenance of physical hardware
and deployment model for which increases demand for raw materials and
has a negative environmental impact. Alternatively,
software has a significant impact cloud deployment measures are typically viewed as
on the sustainability of software more sustainable due to scalability, however, can be
in terms of structure and how energy intensive, increasing costs and environmental
resources are used. Architecture impacts. It is important to make decisions relating
to sustainability in the context of each software and
deployment involves installing external influencing factors.
architectural patterns into a
Features such as the maintainability of software are
physical environment. The impact a key factor in sustainable software development
of changes to architectural patterns and deployment. Software which is easy to maintain
can include: has better energy performance, removing the need
to re-engineer the whole software. Re-engineering
• Resource efficiency software requires significant resources, so maintainable
• Scalability deployment positively impacts resource efficiency
relating to energy consumption, time, and user
• Performance optimisation experience. Software architecture can also enable a
• Modularity and maintenance more effective user feedback system, improving the
end user’s experience and software development.
• Longevity and lifecycle management For example, bugs can be easily fixed, and new
• Energy efficiency features seamlessly added.
7
Software optimisation
8
Five principles of code optimisation
9
Software management
Automated testing
Idle compute
Monitoring
Logging
Backups
Failover/redundant resources
10
Sustainable software management: Sustainable software support:
Security: Implement robust security practices to Long-term maintenance: Plan for long-term
protect against vulnerabilities and cyber threats. This maintenance and support of the software, including
includes regular security audits, patch management, versioning, backward-compatibility, and end-of-life
and adherence to security best practices. policies. Consider establishing a maintenance team
that is trained in carbon accounting or engaging with
Scalability: Design software with scalability in mind
third-party support providers if needed.
to accommodate growth in user base and data
volume. Architectural decisions such as microservices, Knowledge sharing: Document lessons learned,
containerisation, and cloud-native technologies can best practices, and troubleshooting guides to facilitate
facilitate scalability. knowledge sharing among support staff and the user
community. This can help improve support efficiency
and empower users to resolve issues independently.
11
Principle Guidelines
To identify the impact of Establish a baseline and quantify the current sustainability of your
software on the environment, software.
you must baseline the level of
Follow the Plan, Do, Check, Adjust method.
sustainability of your software
before integrating sustainable Identify improvement opportunities. Use the baseline to identify
software principles. optimisation opportunities.
12
Principle Guidelines
2 Efficient use of hardware Analyse software requirements, to identify the most sustainable
options. For example, identify trade-offs between using on-premise
Rationale:
hardware until the end of its service life in comparison to creating
Inefficient use of hardware is
e-waste via opting for cloud hosting for your software.
unsustainable as it produces a
significant amount of hardware Avoid the development of software only compatible with new
garbage, and e-waste. Efficient hardware to avoid the creation of e-waste and increasing demand
use of hardware is more cost on natural resources for new hardware.
effective and sustainable than
Ensure hardware and server capacities are maximised before
purchasing new hardware.
purchasing new hardware.
3 Storage optimisation Replication of data occurs in many systems where the same
data is stored in different storages for different usages. Smarter,
As a result of data retention
more sustainable software should be coded to exploit parallel,
policies, 95% of an
multiprocessor architectures to develop efficient use of hardware
organisation’s data remains
resources.
unused in data landfill.
Significant data landfill is Reduce unwanted redundancy of data in data lakes and data landfill
complex to maintain and to free up storage for future applications.
increases economic capital
Utilise memory leak detection tools, memory leaks require more
required for new hardware.
storage space than required.
Additionally, the process of
purchasing new and unrequired Identify storage optimisation in software through code review tools.
hardware is unsustainable due
Use compression technologies to reduce the size of required data.
to the environmental impacts of
hardware on natural resources. Introduce stringent data retention policies and only archive
essential data.
13
Principle Guidelines
4 Carbon aware engineering Avoid feature creep – prevent the excessive use of unnecessary
features within an application which extends the length of code
Building applications that are
and simultaneously increases the monetary and carbon cost of
carbon aware consistently
software.
begins with software engineers
engaging in carbon aware Be mindful of the size and quality of images, video and audio used,
consistently and mindful these can be compressed through a compression tool.
programming.
Build software that requires fewer lines of code to achieve desired
functionality.
14
Principle Guidelines
Carbon efficient software Use renewable energy sources to power hardware, both
results in a reduced on-premises and cloud.
consumption of energy,
Optimise code, for example by avoiding unnecessary loops and
compute power and wider
lines of code to achieve user needs.
materials. Carbon efficient
software achieves maximum Use sleep modes to reduce energy consumption.
performance per unit of
Take advantage of scalability if hosted on the cloud to avoid
carbon emitted.
unnecessary resource use.
7 User carbon awareness Demand shaping – users should strategically schedule and optimise
software use to align with periods whereby the energy demand and
Carbon aware applications are
therefore energy mix are more likely to be more renewable energy.
aware of the environmental
Updates and tasks should be completed during off-peak energy
footprint of the software.
times.
This awareness is necessary
for both the software itself and Energy-efficient modes – users should use ‘eco-modes’ or energy
the user to encourage efforts to efficient modes that run on lower functionality such as reduced
reduce environmental impact. brightness to minimise the energy required and carbon emitted
This awareness is critical for from powering the software.
the user, as the carbon impact
Energy monitoring and carbon transparency – provide the user with
of software use is invisible to
real-time data regarding energy use and carbon emissions from
the user, therefore there is a
software use to bridge the gap between action and consequence.
disconnect between action
and consequence, that Sustainability based alerts – these will make users carbon aware
if visible, would encourage and encourage active energy saving.
behaviour change.
15
About CGI
Insights you can act on
Founded in 1976, CGI is among the largest IT and
business consulting services firms in the world.
We are insights-driven and outcomes-based
to help accelerate returns on your investments.
Across hundreds of locations worldwide, we
provide comprehensive, scalable and sustainable
IT and business consulting services that are
informed globally and delivered locally.
[Link]/uk
© 2025 CGI IT UK Ltd.