2

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!

  • I am not seeing this a sustainability question but I don't authority to VTC. Some software must be run in house. How can you compare a data center to a phone? – paparazzo Sep 24 '18 at 21:23
  • 1
    @paparazzo The way this becomes a sustainability question is when you begin comparing different methodologies for creating software, as well as different efficiency characteristics of the created software. My guess is that software that takes less effort to create and maintain, and uses computing resources efficiently, has a smaller environmental impact than less efficient and more "bloated" alternatives. I wonder if it's possible to do that comparison, the way you can compare a diesel car to an electric car from an LCA perspective. – RuslanD Sep 24 '18 at 23:28
0

You can easily conduct an LCA for a software product. What is probably most important is your underlying database though as I suppose you do not want to get engaged in primary collection. You can use open source software like http://openlca.org/. There, are also basic tutorials available for free on the website. The basic principle of an LCA is always the same you just have to use other data input.

  • 1
    Welcome to Sustainable Living! I wonder if there are already life cycle inventories for software development processes? I think there's a good chance that you'll have to do everything from scratch, and in that case you'd better strike the word 'easily' from your answer. – THelper Nov 21 '18 at 16:05
  • Hi Jonas, are you saying that either you, or someone else, has already done an LCA for a software product? If so, could you please send me some links? As @THelper mentioned, unless there already are lifecycle inventories for software products, one would have to do everything from scratch. – RuslanD Nov 21 '18 at 19:38
0

Easy.

If the software product is used by few, the environmental impact comes from your development and testing machines. Use low-power machines, as few as them as possible. Don't over-invest into high-end build servers, although if there are many developers, a single shared powerful server may be justified. The power consumption of these computers can be simply determined by a simple power usage meter.

If the software product is used by many, the environmental impacts of their computers dominates. Make the software as efficient as possible. You should consider the amount of memory used, and the amount of disk space used, although the main environmental impact comes from the amount of power used by the processor. Don't spin-wait, use efficient sleeping techniques. Use CPU-efficient algorithms and data structures. A fully occupied CPU uses easily 10x the electricity of an idle CPU. Look at the thermal design power (TDP) ratings of processors and you'll get the idea: they range from 10 watts in low-end laptops to over 100 watts in powerful desktops.

Some software runs in clouds. In this case, you should be as CPU- and memory-efficient as possible, too, to minimize the resource use of the software. Thermal design power is again a useful tool for determining the power use of cloud software. Don't forget to multiply the power used by the datacenter power coefficient, which takes into account the amount of auxiliary electricity used for e.g. cooling.

I'm not aware of any formal studies, but this is not rocket science.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.