Sustainability and Green Software Engineering
I was recently joined by my colleague Paola Annis where we presented ‘Green Software Engineering’ at a community event. A couple of days later the IPCC (Intergovernmental Panel on Climate Change) released a study that highlighted climate change is widespread, rapid, and intensifying, and some trends are now irreversible. The United Nations called it a “code red for humanity” and a catastrophe can only be avoided if the world acts fast.
Sustainability
Sustainability is about meeting the needs of the present – without compromising the ability of future generations to meet their needs. It’s often broken into three pillars: social, economic, and environmental.
- Social sustainability is about the betterment of society.
- Economic sustainability is about creating value out of whatever you are undertaking.
- Environment sustainability is about looking after the planet.
The three categories are intertwined, and weakness in any one pillar will have a negative impact on the other pillars. Experts say that sustainability can only be truly achieved if all three pillars are looked after.
Microsoft supports all of the UN goals around sustainability, but today it’s primarily focused on environmental sustainability in the four key areas of carbon, water, waste, and ecosystems. Back in January 2020 we announced a bold commitment and a detailed plan to operate with 100% renewable energy by 2025, and be carbon negative by 2030. We built on that pledge with a series of industry-leading commitments to be a water positive, zero waste company by 2030, and provide support for a number of biodiversity projects and conservation ecosystems to ensure we protect more land than we use. Things don’t happen overnight, and this is journey, but we are now well on the road to deliver on these commitments.
Climate change is one of the greatest challenges for mankind and in our lifetime, and as Software Engineers and Application Developers we can play our part here. We all need to be onboard to encourage and help everyone to build and deploy sustainable software applications.
There are three things we can do:
- Move to the cloud,
- think smarter,
- adopt the philosophies and competencies of green software engineering.
Move to the Cloud
Any hyper-scale cloud vendor will have substantial R&D budgets to ensure they reduce carbon emissions and be more energy efficient than what any enterprise organisation could achieve with their own on-premise datacenters for the same workload.
We found that transitioning workloads to Microsoft cloud services could be up to 98% more carbon efficient and up to 93% more energy efficient than on-premise options, depending on a number of factors. These are documented in an independent study by WSP.
When businesses choose Azure, they are taking positive action to reduce carbon emissions. It’s a compelling way to contribute to the climate goals of any company.
Think Smarter
Technology can contribute to addressing environmental issues. As organisations use technology to drive business value, they also need think about enabling smarter growth and to transform sustainably – this can even create new business models.
Innovation in data acquisition and analytics, coupled with artificial intelligence and advanced robotics, as well as cloud computing, satellite and mapping imagery, have opened the door to many solutions. This is enabling optimal decision making and driving efficiencies, ultimately saving carbon and energy. An example of this is smart infrastructure like smart cities, smart transport and smart buildings using technology to measure and minimise carbon emissions, water consumption, and waste.
Digital Twins is a technology where you can create rich models of anything physical or logical, then build applications that can use them. Such applications could help with the detection of water leaks, which is obviously key in helping protect water. Or you could combine Digital Twins with data sensors and predictive analytics to reduce energy use.
Robotic process automation (RPA) can improve process accuracy, reducing defective products and rework and cutting down on wasted materials or the need for extra energy and inputs to rework a process or re-make a product.
Green Software Engineering
Green Software Engineering is an emerging discipline with principles, philosophies, and competencies to define, develop, and run sustainable software applications.
You need to be making code changes, architectural changes and choices that actually reduce the carbon emissions consumed by the application.
Green applications are normally cheaper to run, more performant, more resilient and more optimised – but that’s just a welcome addition. The key thing is that developing applications in such a manner will have a positive impact on the planet.
For the full story – please view the video below:
Useful Links
- The Principles of Sustainable Software Engineering
- Sustainable Software devblogs
- AI for Earth
- A Planetary Computer for a Sustainable Future
- Principles of Green Software Engineering
- Visit the ClimateAction.Tech website for more information
Mark Harrison is an experienced Microsoft sales specialist with a wide and diverse range of technical skills, expertise and a wealth of customer facing experience. He has accomplished twenty-one years in Microsoft as a solution sales/technical specialist, and prior to that worked for seventeen years for systems integrators in all areas of the software lifecycle. You can find him on LinkedIn, GitHub and YouTube.