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!
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!
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!
- Learned the Principles Of Sustainable Software Engineering.
- Sketchnoted my learnings to help with recall.
- Tweeted a promise to write a blog post with learnings.
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:
- Download the sketchnote and study it.
- Complete the course and reinforce concepts!
- Share your learnings and inspire someone else.
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.
- 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.
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).
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
- Start Here: Principles of Sustainable Software Engineering
- UNESCO: Sustainable Engineering
- Sustainable Software Blog
- Sustainability @Microsoft
- 2020 Sustainability Announcement
- 2020 Environmental Sustainability Report
- Cloud Adoption Framework: Sustainability Outcomes and Benefits
- Sustainable Software Engineering Principles in AKS