#001 | A Visual Guide To Sustainable Software Engineering


Principles Module Philosophy Carbon Carbon Intensity Electricity

What does Sustainability Mean?

According to UNESCO, sustainable engineering is the process of using resources in a way that does not compromise the environment or deplete the materials for future generations. By definition, this requires an interdisciplinary approach across multiple engineering fields.

The United Nations also defined 17 sustainable development goals to measure socio-economic improvement by tackling challenges like poverty, hunger, equality, clean energy, climate action, and more. Delivering on their ambitious 2030 agenda requires us to take urgent action immediately.

In my role as both a parent and a Cloud Advocate at Microsoft, this subject intrigued me! So I did what any engineer would do – I went looking for resources to educate myself. This is what I learned.

What does Sustainability Mean At Microsoft?

My first stop was the Microsoft Sustainability website. In Jan 2020, Microsoft announced they would not just be carbon negative by 2030 - but that they would eliminate historical carbon emissions (starting from 1975, when Microsoft was founded) by 2050.And setup a billion-dollar climate innovation fund to support this.

Their approach was grounded in science, with invesments in carbon reduction and removal technology - coupled with a partnership approach enlisting both employees and customers to adopt, amplify, and align with, these measures. And they promised transparency on the progress. One year later, we have a 96-page report

I first learned about our efforts here over a year ago, with the announcement that Microsoft would be carbon negative by 2030, with associated pledges to remove historical carbon emissions by 2050, and setup a $1B climate innovation fund. The post set out a principled approach grounded in science, with investments in carbon reduction and removal technology, enlisting of employees and customers to engage in activities.

They also promised transparency on progress - and a year later, we got the first 2020 Environmental Sustainability Report - 96 pages long! It might be easier to read this succinct review or scan the big picture.

2020 Environmental Sustainability Progress Infographic

My key takeaway was that we would focus on 4 areas for impact:

  • CARBON - be carbon negative by 2030, remove all historical emissions by 2050.
  • WATER - be water positive by 2030, reducing water intensity in all direct operations.
  • WASTE - be zero waste by 2030, reducing as much waste as we create, in all direct operations.
  • ECOSYSTEM - aggregate, analyze, and act upon, envionmental data - protect ecosystems in decline!

What does Sustainability Mean To Me?

Living in the Hudson Valley, I perceive sustainability as a community priority, with cause for local activism. Even a small individual action can have huge collective impact when aggregated at village, district, county or state levels. And with pandemic scenarios where more of us work remotely, the sustainable engineering habits of the workplace must necessarily translate to our homes and communities.

As a cloud advocate at Microsoft, I’ve been learning more green technology from the Green Cloud Advocacy Lead, Asim Hussain, who hosts a podcast (The Climate Fix), organizes a community (ClimateAction.tech) and maintains a website (Principles.Green) on the topic. But it was his Principles of Sustainable Software Engineering course that really helped me wrap my head around the terminology and core concepts for this topic. So, I sat down last week, completed the course, and made a sketchnote to give me the “big picture”!

You can download a printable version of the image from the cloud-skills.dev site. Take a few minutes to scan it - then go check out the Principles of Sustainable Software Engineering course. You might find it much easier to complete, and get more insights in the process.

Five Things I Learned About Sustainable Software Engineering

Here’s what I learned from my completion of that course:

Sustainability is a Collective Effort. | There are two core philosophies: everyone has a part to play and sustainability as the end goal is enough to justify the effort. Basically this is about butterfly effects (the smallest action can have large collective impact) and a duty to protect (do this for its own sake and not because there might be other benefits you get from it).

Sustainability is Inter-Disciplinary. Every human contributes to climate change and global warming, with every activity they do. Sustinable software engineering is at the intersection of multiple engineering fields - from climate science and electricity markets, to data center design, sofware and hardware engineering. Whatever your background, chances are that educating yourself will open your eyes to opportunities for optimization in your own workflows.

Carbon is a Proxy Measure | Electricity & Hardware are Carbon Proxies. Carbon dioxide is the most ubiquitous greenhouse gas (GHG), making carbon dioxide equivalent (aka “carbon”) a standard measure for other entities or activities that contribute to global warming. Hardware has embodied carbon - think of this as the fixed carbon costs for creation or disposal of hardware. Electricity has carbon intensity - think of this as the variable carbon costs associated with demand for computing resources. Because our electricity is drawn from a power grid that is supplied by both good sources (renewables like wind, solar, hyrdoelectric) and bad sources (fossil fuels like coal, gas), the carbon intensity can vary by time and by region.

Hardware & Energy Efficiency Are Key. Extending hardware lifetime amortizes the effective embodied carbon costs per year. Extend life by recycling the hardware (reuse parts) or refactoring the software (to run on older hardware). Energy efficiency is about reducing carbon intensity for workloads. Do this by demand shifting (move workloads to slots with lower carbon intensity) or demand shaping (adjust current workload to maximize use of renewables, and minimize use of fossil fuels e.g., in marginal power plants that are recruited when demand outstrips supply).

Think: Observability & Optimization. Observability is about being able to measure or estimate carbon footprints meaningfully, picking the criterion (carbon, energy, cost, data) that gives us the best (or most easily understood) estimate for evaluating impact of our actions. Optimization can then take two forms – be carbon-efficient (take actions that are transparent to users, and automated for aggressive impact) or be carbon-aware (make actions visible to users, often by sharing intelligence that can shape their decisions).

Next Steps: Actions You Can Take!

  • Spend 30 minutes to understand the Principles of Sustainable Software Engineering.
  • Learn about Microsoft Sustainability and read the Microsoft 2020 Sustainability Report recap.
  • Read the UN Sustainability Goals to understand broader challenges for the ecosystem.
  • Think about 1-2 actions you can take, in your home or work environment, to be sustainable.

If you have additional resources, or insights, please leave a comment in the Discussion Forum.