DEV Community

loading...
Cover image for A Visual Guide To: Sustainable Software Engineering
Microsoft Azure

A Visual Guide To: Sustainable Software Engineering

Nitya Narasimhan
PhD & Polyglot / Senior Cloud Advocate @Microsoft / I love mobile, web and visual storytelling / Be fearless, learn continuously!
・5 min read

This is a condensed form of the article originally published on the Visual Azure site. It's part of an effort to explain technology concepts using visual vocabularies, including sketchnotes!


Inception

Bonus: here's the process behind the visual for those interested in the visual storytelling side of things. Check out the #VisualizeIT series if you want to explore those creative skills!


Background

Have you ever wondered what the term sustainability means? Or specifically, what sustainable engineering means, and how it impacts the way you work, or behave, in our current ecosystem?

Me too! So I did something about it - well, 3 things actually!

You can read the longer version of that post, but in this article, I wanted to share key learnings from my journey. I hope this inspires you to do three things in return:


What is Sustainable Engineering?

According to UNESCO, sustainable engineering is the process of using resources in a way that does not compromise the environment or deplete materials for future generations.

Everything man-made relies on resources extracted from nature. There is an "us" in "sustainability" - we are all accountable to taking steps to protect and preserve our ecosystem. And, by definition, sustainable engineering is an interdisciplinary approach that touches on all fields of engineering in some context.


What does Sustainability Involve?

The Microsoft Sustainability Site was a good resource for me to understand how companies approach this challenge. In January 2020, Microsoft announced three sustainability targets for 2030:

  • Become Carbon Negative | remove more C02 than we add.
  • Become Water Positive | replenish more water than we consume.
  • Become Zero Waste | reduce as much waste as we create

You can learn more about the "how" for these goals here, with the last one focusing on a zero to landfill vision where resources like hardware are recycled or repurposed onsite.

A separate goal focuses on biodiversity - protecting and preserving ecosystems that are in decline or under threat, using technology. The Azure-powered Planetary Computer initiative will help researchers collect, aggregate, analyze - and construct machine learning models from - environmental data at scale.

The first 2020 Environmental Sustainability Report was just released in 2021, providing insights into the progress and challenges of delivering on this vision. The 96-page report is reviewed here with key results in the infographic below.

2020 Environmental Sustainability Progress Infographic


Principles of Sustainable Engineering

Now that you know what sustainable engineering is, and you get a sense of the high-level goals pursued by industry, it's time to look at how you can contribute.

This is where the Principles Of Sustainable Software Engineering helps. It gives you core terminology and concepts that provide a foundation on which you can build strategies and tactics.

Want to see the "big picture"? Here it is! Click to expand (or download the original from the Sketchnotes Repository.

Here are 5 things I learned from that course. You can find more detailed notes here!

1 | Sustainability is a Collective Effort

We all have a part to play (in engineering) and a duty to protect (the ecosystem). Sustainability as a goal justifies all efforts - execute tasks for their own sake, and not for secondary benefits whatever those might be.

2 | Sustainability is Inter-Disciplinary.

All human activities have inherent carbon footprints. Solving these challenges will require inter-disciplinary engineering solutions - from data center design, hardware and software engineering - to climate science and more. Educating ourselves is the first step to helping.

3 | Electricity & Hardware are Proxies for Carbon.

Carbon dioxide is the most ubiquitous greenhouse gas. "Carbon" is the carbon dioxide equivalent measure of the global warming potential of an element or activity.

Hardware has embodied carbon. Think of this as the "fixed carbon cost" paid for the creation and disposal of hardware. The cost is typically amortized over its life.

Electricity has carbon intensity. Think of this as the variable carbon costs associated with fluctuating demand for computing. Because electricity is drawn from a power grid supplied by renewable sources (wind, solar, hyrdoelectric) and fossil fuels (coal, gas), its carbon intensity can vary by time and by region.

4 | Energy & Hardware Efficiency are key!

Extend hardware lifetime by recycling parts, or refactoring software (to run on older hardware). And be energy-efficient by demand shifting (moving workloads to times or regions with lower carbon intensity) or demand shaping (changing current workload to maximize usage of renewable supply and minimize need for marginal power to meet demand).

5 | Think Observability & Optimization.

Observability is about 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).


Summary

I hope you found this a useful visual guide to this new discipline of sustainable software engineering! If you want to see more visual guides, or have feedback on this topic, please do post a comment

And don't forget to bookmark the series or follow the Azure publication to be notified of new content in this vein!


Resources To Explore!

Discussion (2)

Collapse
michaeltharrington profile image
Michael Tharrington (he/him)

Such an awesome post here!

Collapse
nitya profile image
Nitya Narasimhan Author

Thank you so much. More sketch notes coming so definitely bookmark the series or follow the tag. And if there are specific cloud concepts you'd love to see visualized. Lemme know 😁