Our world is increasingly running on software. As a software developer, for better or worse (it’s up to you), you’re building the fabric of our society, tomorrow’s world.
Consider the following often-discussed examples. The filters you build in a social networking platform might create digital bubbles that reinforce a group's beliefs instead of allowing it to see others' opinions. This polarizes society and spreads hatred. Car software might protect the interests of the car manufacturer you work for against the law, the environment, or the car's occupants. The dating site's algorithms you design might increase racial segregation and social-class divisions. (You get to play God with the human gene pool.) Your poorly designed user interface can cause people hardship, while your incorrect code can harm human life or damage property. The console game you create might be purposely designed to be highly addictive. How you route job ads can influence disadvantaged groups' work opportunities.
Part of being human is making moral choices in everything we do: from the detergent we buy, to the transportation we use to get to work, to the software we develop.
If our children ask us in a few years what we were doing when the lights went dark, responses such as “I didn’t know these horrors were happening” or “I was just doing my job” (“I was just following orders”) won’t cut it.
Current Awareness?
pang.etal.2016.whatprogrammersknow (pg. 6)
The programmers in our study lacked knowledge and awareness of software energy-related issues. More than 80 percent of them didn’t take energy consumption into account when developing software.
To maintain SEC awareness, our results show that organizational policy is required to support creating green software products strengthened with a knowledge bank to stimulate informed decision making on software design.
SEC = Software Energy Consumption
Does it matter? How much impact does software have?
There is a scaling effect. If you have a web application that has 10,000 active users, these 10,000 active users might generate hundreds of thousands of function calls. Those calls use energy. They need server capacity, they need storage capacity. I think we all know that there is an environmental cost.
Think about the backup systems, the monitoring systems, the logging, all these things that are going on for most applications.
Saving one CPU-second on a transaction will save 10 Joules (10 Watt-seconds). If 1.5 million people are using the software, and there are 20 transactions a day over 230 work days, that’s 19 MWh savings over the year.
Connect: write free software, collaborate with external organizations, etc.
Environmentally specific
software needs to take responsibility for the environmental impact it creates through the infrastructure it requires. A responsibility that can only exist through transparency. →hyp.is
Penzenstadler, B., Duboc, L., Venters, C. C., Betz, S., Seyff, N., Wnuk, K., Chitchyan, R., Easterbrook, S. M., & Becker, C. (2018). Software Engineering for Sustainability: Find the Leverage Points! _IEEE Software_, _35_(4), 22–33. https://doi.org/10.1109/MS.2018.110154908