I'm a software engineer, and lately I've been thinking whether it's possible to delineate the environmental impact of a software product - say a web service, a website, an app for your phone, etc.
It takes resources to create it:
- Developers, who use the company facilities while working on the software.
- Equipment - laptops, desktops, monitors, whatever else
It takes resources to run it:
- Cloud-based software runs in a datacenter, and enjoys the economy of scale a datacenter provides
- More traditional software runs on dedicated servers you have to manage yourself.
- A more inefficient algorithm may require more CPU cycles than an equivalent, but more efficient, algorithm
- Depending on longevity, this software may be running in the datacenter, or on people's phones, for many years
It also takes resources to deprecate/decommission software. Taken together, I wonder if there's a way to apply Life-Cycle Assessment (LCA) methodology to software products akin to how it's done to more traditional "physical" products. So much of our modern life runs on software that I suspect it's not going to end up being very cheap, when taken on its global scale.
Is anyone aware of efforts (or even theoretical studies) of applying LCA to software?