Software is often seen as intangible, existing solely in the digital realm, seemingly detached from the physical world. However, in reality, it has a significant environmental footprint with the industry responsible for about 3% of global carbon emissions — comparable to that of the aviation industry. Ilya Khrustalev, with over 20 years of experience at top tech companies and startups, addresses the issue.
The Hidden Environmental Cost of Software
Software development requires substantial resources, including those for producing development tools such as software platforms and coding environments, hardware for testing and deployment, and cloud infrastructure that supports software operations. Every step in the development process — from building tools to maintaining servers — consumes energy.
Therefore, it is crucial to consider ways to minimize this embedded energy to create more sustainable software solutions.
Energy usage is a major concern, as data centers, the cornerstone of modern software, consume enormous amounts of electricity. The report indicates that in 2022, 2% of the world’s total electricity was used to power applications, store vast amounts of data, and cool the hardware. This amount could meet the entire electricity needs of a country like Spain or South Korea for a year.
The more demanding an application is, the more energy it requires, contributing to a larger carbon footprint.
E-waste results from frequent software updates that are necessary to maintain software systems but often require hardware upgrades. When old hardware is replaced, electronic waste increases. Globally, over 50 million tonnes of e-waste are produced yearly, equivalent to about 13 lb per person.
Inefficient software that demands excessive computing power can accelerate hardware wear, leading to early replacement and contributing further to e-waste.
Strategies for Mitigating Software’s Environmental Impact
Green Software Development Practices
Incorporating sustainability is a key consideration in software architecture and design from the outset including creating energy-efficient algorithms and reducing resource consumption. For instance, while I was working at Readdle on the Fluix product — designed to transition paper-based workflows to digital and reduce wood usage — the focus was on optimizing computational power. This included introducing new microservices for better load distribution and less server downtime, as well as implementing data caching at multiple levels to avoid redundant calculations.
Leveraging Renewable Energy
Promoting the use of data centers powered by renewable energy is an important strategy. For example, AWS and Google Cloud, offer options to select green data centers and regions with the least environmental impact. These data facilities often use electricity generated from renewable sources and perform comparably to traditional ones, with similar costs, making them an easy and smart choice. This is particularly beneficial for startups and new projects, as it involves minimal additional expense. For ongoing projects, a gradual transition to environmentally friendly regions can be planned, with tools like AWS Data Transfer Service available to help with the migration.
Sustainable Cloud Computing
The rise of cloud computing plays a key role in reducing global energy consumption. Serverless architectures, with their elasticity, enable the use of only the necessary resources to complete a task in minutes — something that was previously impossible and led to inefficient use of computing power and server downtime. The reduction in energy consumption also translates into lower infrastructure costs, making this approach appealing from both environmental and economic perspectives.
As noted earlier, careful and mindful management of cloud platforms is essential, as their nature can lead to uncontrolled use of excessive computing power, resulting in significant costs. Therefore, it is important to engage engineers experienced in cloud software design who understand both its advantages and potential drawbacks.
Optimizing Software for Longevity
Creating software that extends hardware lifespan and reduces the need for frequent upgrades is another key strategy. This approach emphasizes making software modular and adaptable to cut down on electronic waste. Efficiently distributing workloads can enhance software performance, with microservices playing a crucial role in this process. Additionally, it is important to regularly check hardware for inefficiencies, phase out outdated services, and plan for optimization.
Conclusion
The environmental impact of software is a hidden cost that many overlook, but it is a critical issue that must be addressed. By adopting green development practices, leveraging renewable energy, optimizing digital systems for longevity, and embracing sustainable cloud computing, the environmental footprint of software can be reduced, paving the way toward a more sustainable future.
***
This article was contributed by Ilya Khrustalev, a fractional CTO with over 20 years of experience at tech giants (Badoo) and startups in medtech, sporttech, fintech, food tech, and proptech in the US and EU. He is currently a tech adviser at biotech startup ProbablyGenetic.