We’re on the brink of several tipping points in relation to climate change; if urgent action isn’t taken to reduce greenhouse gas emissions, there will be large and potentially irreversible changes to the climate system that will have severe impacts on society as we know it. As such, a sustainable approach to business has become critical as we all try to reduce the negative impact we have on the planet. This runs across all industries, although it wasn’t until recently that software development came under the spotlight.
While most businesses support the idea of reversing the conditions that have led to climate change, finding ways to reduce carbon footprints and sustainably run operations can be incredibly challenging. Moreover, many businesses don’t consider software to be part of the problem. However, minimising environmental damage through engineering, a term known as sustainable software development, has the potential to make a meaningful long-term contribution to the fight against climate change.
How Does Software Development Impact the Environment?
Growing digitalisation and the shift to cloud computing might seem like harmless activities; after all, they’re digital in nature rather than tangible things. However, as the rise of cloud computing and the internet of things (IoT) has seen internet traffic go through the roof, so has energy consumption for data generation and processing. Not only does this require a huge amount of compute power, it needs physical servers. So, the sector has increased energy consumption, carbon emissions and the volume of electronic waste. The fact is that the more we use digital devices, the more energy we consume and the more related CO2 use will rise.
While big tech companies have been considering the issue for quite a while, it’s time for everyone to have sustainability on their agenda. This means building and using sustainable software tools and developing ecological standards for the industry.
What is Sustainable Software Development?
Sustainable software development, also known as sustainable software engineering, is an approach aimed at designing software that will increase application efficiency and reduce energy and space requirements. The idea is to create software that minimises the long-term impact of IT infrastructure on the environment. The additional benefit is that sustainable software builds more efficient products that are better for business too. The idea of sustainable software development applies to the whole product lifecycle, including its design, use and impact. When done right, it should limit energy consumption and environmental impact, reduce greenhouse gas emissions and include sustainable software development practices.
As sustainable software development gains traction, the demand for carbon-free, low-energy tools is growing. There’s a growing trend for modernising existing software products and making existing services less energy-hungry. As energy efficiency and energy consumption become metrics we all look to when choosing products, this will become even more important.
The Principles of Sustainable Software Development
Sustainable software development used to focus on cost, speed and agility instead of environmental impact. However, with the climate crises reaching a crescendo, that has changed. There’s been a coordinated effort to agree on a global set of principles and standards for sustainable software development. The key idea being that software should be developed and used efficiently and effectively with as little impact to the environment as possible. The principles of sustainable software development include a set of eight competencies:
- Carbon – as the most dangerous greenhouse gas, to be carbon-efficient, software development should minimise the amount of carbon emitted per unit of work.
- Electricity – most electricity is still made through the burning of fossil fuels; so, to reduce consumption, software development should ensure applications are as energy efficient as possible.
- Carbon intensity – power grids balance out available electricity depending on supply, demand, cost and time. Software developers should use real-time data for carbon intensity to enable activities to use cleaner electricity.
- Embodied Carbon – embodied carbon emitted during the creation and disposal of any piece of hardware must be considered as part of the carbon impact of any piece of software.
- Energy proportionality – the more you use a computer, the more efficient it becomes at converting electricity to useful operations; developers should use as few servers as possible with the highest utilisation rate to maximise energy
- Network efficiency – every component on a network, routers, servers, switches, firewalls and more, all consume, emit and have embodied carbon; developers should work to reduce the distance data must travel from source to destination.
- Demand shaping – shaping demand to match existing supply means doing more with software when the supply to clean energy is high; developers should help consumers understand the carbon footprint of software at the time they’re using it.
- Optimisation – developers should understand the complete value stream of application software, make optimisations at every step of the way and choose measurement criteria to direct optimisation efforts.
Will You Play Your Part in the Climate Solution?
Everyone has a part to play when it comes to solving the global climate crisis. Those who want to make a difference are taking action in every discipline and that includes development, engineering and design. Even the fact that you’re reading this and considering sustainability can spark a change. Perhaps you’ll embed sustainability in your next development project or simply bring sustainability to the table in technical meetings and empower others to speak. Whatever sector or industry you’re in, whatever role you have or technology you use, you have the power to make an impact.
All the main cloud providers offer tools and dashboards so you can understand the impact of the services you consume. At the very least, we can all:
- Think Green – green thinking is all about increasing mindfulness in software development. It includes everything from the code and the software to the team itself and how you travel and work.
- Measure Impact – measuring the sustainability of any product as it progresses through the application lifecycle can ensure it achieves its sustainability goals.
- Automate Processes – being able to automatically shut down environments and clean up and minimise code repositories can be a great place to start the sustainability journey.
Sustainable software development may be an emerging practice, but it’s one that can have a significant impact on society. By creating sustainable applications, we can reduce costs, improve performance and increase resilience. However, these are just additional extras; the main goal is putting sustainability first and protecting the future of our planet.