Software eco-design: what is the life cycle of a software?

Reading Time: 4 minutes

The goal of this article is to present the software life cycle. For each issue raised by life cycle assessment we identify in this article, we will indicate the approach we believe is the most appropriate, particularly for environmental impact evaluation.

Find the complete Methodological Guide to software LCA as well as a use case on assessment of an application’s environmental impacts.

Most manufactured goods’ life cycles, analyzed with a LCA (Life Cycle Assessment), can be considered made of the following six stages:

  • Product development
  • Raw material extraction
  • Production and packaging process
  • Logistics and distribution process
  • Product use
  • End of life (disassembling, transportation, sorting, recycling, wastes).

Nonetheless, if this life cycle makes sense for a basic tangible product, it isn’t really suited for software. Indeed, as an « intangible good », software doesn’t require any raw material extraction directly. The production phase doesn’t work like a manufacturing process you repeat N times to produce N copies of a product: you should consider it more like a unique stage creating a version of a software theoretically reproducible and reusable endlessly.

Upstream transportation and distribution

Regarding upstream transportation (logistics), if the software is made of different modules developped in other sites, you should take into account, as much as possible, the “sending part” from others sites to the modules’ aggregation site. In a first approach, these impacts could be negligible, as they are more likely to represent less than 5% of total impact.

If distribution to end-user is conducted through a download on internet, this download’s environmental impact should be taken into account. If distribution is done via a tangible support (DVD, USB key…), production and transportation of these supports should be taken into calculation as well.

Software installation can be linked to the use phase. Maintenance can be considered as production overcosts. A software’s end of life seems non-existing, or at least without any impact. We will see later how wrong that statement is. We will have to integrate the program removal process and the data destruction or retrieval associated with the uninstallation process.
Just like it is stated in Green Patterns, the reference guide when it comes to software eco-design written by Green Code Lab, we can simplify a software life cycle by keeping only 4 stages: production, distribution to end-user, actual use and end of life/reutilization/recycling.


Design and development process is considered as a unique stage allowing to produce the software. This phase includes the whole software design process:

  • need analysis,
  • design,
  • programming,
  • test,
  • stabilization,
  • deployment.

Resources associated with correctional maintenance acts (bug fix) and functional enrichments are to be included in this stage.
Software is often composed of elements such as frameworks, libraries, etc. In that case, we can consider the production of these components has a negligible impact if we look at the amount of copies (reutilizations) that are made.

Distribution to end-user

Several scenarios are possible, we’ll present briefly three of them.

  • Downloading: software and documentation are distributed electronically. The program issuer (download server) perimeter has to be taken into account, just like the recipient’s (end user’s computer), as well as the infrastructure used to send electronic files (networks, routeur etc ), by taking a portion of the hardware manufacturing and energy needed to download the sotfware depending on used resources.
  • Software and documentation are packaged and sent in the mail, hence the support have to be taken into account (CD-ROM, DVD, USB key, documentation), so as for packaging and mailing services associated.
  • User can get the license and the user manual in a local shop or via mail and download the software. The packaging step (manufacturing & transportation) has to be taken into account, the software download too. In that particular case, impacts due to users movements can be rather high and become greater than the other impacts. Previous LCAs, conducted by the Orange Group on terminals, mobiles, modem, CD-ROM, showed the clients’ moves can vary a lot from each other and be very impactful, particularly if it is done by car (several kilogramms of CO2).

The software utilization by the end-user is initiated by the installation on its hardware (initial operation) following the download (distribution) for instance and covers the whole software use stage on the user’s suited hardware.

Perimeter includes:

  • Hardware needed or required to use the software. In this case, we consider the portion of:
    • hardware manufacturing (user’s equipment, network access, server access),
    • the energy used when the hardware is on (user’s equipment and potentially network access and server access), which could automatically integrate the consumption of required software;
    • required software integrating its own resource consumption (OS, virtual machines…). We can isolate the resource consumption of thoses mandatory software by establishing a standard value called “Idle” which is the resource consumption of hardware and its requirements, before any execution of the analyzed software; this value can be split in as many values as we want if we wish to isolate OS from browser for instance;
  • The software being assessed and integrating its power consumption:
    • data needed to use the software or ones created by it and stored on the application’s different resources;
    • power consumption associated with this data is integrated by default in the equipment.

For example, if we take a Web page, the hardware and software requirements to display the page are: a computer/tablet/smartphone, an OS (Android, Windows, iOS…), a browser (Firefox, Chrome, Edge, Safari…) and potential plugins.

End of life / Reutilization / Recycling

We assume that, at the end of life, a software is erased or uninstalled on the user-side and the editor-side. There are several things to take into account for this step: the end of life of support hardware and software-generated data.

  • Support hardware end of life: here, we are facing a classic end of life issue of an electronical hardware support, considered complex and polluting, thus classified “WEEE” (Waste Electronic and Electrical Equipment).
  • Data end of life: we can uninstall the software properly folllowing a procedure deleting all setting files on the client’s terminal. In this phase, you should also take into consideration the software-generated data created willingly, or not, by the user. In that case, we may face different situations:
    • the user does not wish to retrieve the data he created;
    • the user wants to get its data back in order to use them with a similar tool and a conversion process exists, this process was included in the new tool during the design and development phase;
    • the tool doesn’t allow the retrieval and data conversion process for a new use, in that case we will have to estimate the conversion impact for the user in that end of life stage

To finish off this serie on software LCA, the next blog article will be about planned obsolescence of software. Indeed, as we saw, anticipating a software end of life is not an easy task and that’s why we are dedicating a whole article to this topic.

Discover the whole Methodological Guide to software LCA, downloadable for free, as well as a use case on environmental impacts of an application.