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?
Thanks!