{"id":21118,"date":"2022-10-17T09:11:58","date_gmt":"2022-10-17T16:11:58","guid":{"rendered":"https:\/\/coderpad.io\/?p=21118"},"modified":"2023-06-05T14:01:31","modified_gmt":"2023-06-05T21:01:31","slug":"the-environmental-impact-of-digital-technology-and-how-software-eco-design-can-help","status":"publish","type":"post","link":"https:\/\/coderpad.io\/blog\/engineering-management\/the-environmental-impact-of-digital-technology-and-how-software-eco-design-can-help\/","title":{"rendered":"The Environmental Impact of Digital Technology and How Software Eco-Design Can Help"},"content":{"rendered":"\n<p>We often have the impression that digital technology does not pollute.&nbsp;<\/p>\n\n\n\n<p>This is usually because software pollution is mainly invisible to the general public thanks to <a href=\"https:\/\/www.sciencedirect.com\/topics\/engineering\/dematerialization#:~:text=Dematerialization%20is%20defined%20as%20the,et%20al.%2C%202002\" target=\"_blank\" rel=\"noopener\">dematerialization<\/a> (the use of the cloud or online word processing services, for example), which is ultimately only the decentralized materialization of digital services.<\/p>\n\n\n\n<p>However, when we use these digital services, we utilize the 3-tier hardware architecture composed of:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Devices or terminals<\/strong>: computers, screens, smartphones, smartwatches, etc.<\/li><li><strong>Networks<\/strong>: all the cables that allow the circulation of data, routers, relay antennas, etc.<\/li><li><strong>Servers<\/strong>: including data centers.<\/li><\/ul>\n\n\n\n<p>Of all the sectors \u2013 transportation, textile industry, agriculture, etc.&#8211; the environmental footprint of the digital industry is the one that is growing the fastest on a global scale, notably linked to :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>4% of greenhouse gases (GHG) in 2020&nbsp;<a target=\"_blank\" href=\"https:\/\/www.greenit.fr\/2020\/10\/06\/4-des-emissions-de-ges\/\" rel=\"noreferrer noopener\">[1]<\/a>.<\/li><li>10% of the world&#8217;s electricity usage&nbsp;<a target=\"_blank\" href=\"https:\/\/theshiftproject.org\/wp-content\/uploads\/2019\/03\/Lean-ICT-Report_The-Shift-Project_2019.pdf\" rel=\"noreferrer noopener\">[2]<\/a><\/li><li>A 9% annual increase in electricity consumption&nbsp;<a target=\"_blank\" href=\"https:\/\/theshiftproject.org\/wp-content\/uploads\/2019\/03\/Lean-ICT-Report_The-Shift-Project_2019.pdf\" rel=\"noreferrer noopener\">[2]<\/a>.<\/li><li>The increasing flow of electronic waste \u2013 growing at 4% per year and per person&nbsp;<a target=\"_blank\" href=\"https:\/\/weee-forum.org\/ws_news\/international-e-waste-day-2021\/\" rel=\"noreferrer noopener\">[3]<\/a><\/li><li>Increasing data traffic (25% growth per year), leading to growing development of network and server infrastructures&nbsp;<a target=\"_blank\" href=\"https:\/\/librairie.ademe.fr\/cadic\/4932\/guide-pratique-face-cachee-numerique.pdf?modal=false\" rel=\"noreferrer noopener\">[5]<\/a><\/li><li>An economic sector that is expected to double its GHG emissions by 2025 compared to 2020&nbsp;<a target=\"_blank\" href=\"https:\/\/theshiftproject.org\/wp-content\/uploads\/2019\/03\/Lean-ICT-Report_The-Shift-Project_2019.pdf\" rel=\"noreferrer noopener\">[2]<\/a>.<\/li><\/ul>\n\n\n\n<p>To further show the environmental impact of technology, it&#8217;s been shown that a 2G electronic chip found in your phone, printer, laptop, tablet, etc., requires 32kg of natural resources to produce. More and more of these chips (and others) are needed to power our electronic devices each year&nbsp;<a href=\"https:\/\/alliancegreenit.org\/media\/position-paper-ecoconception-vf-v5-2.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">[4]<\/a>.<\/p>\n\n\n\n<p>According to a study conducted by ARCEP and ADEME in January 2022&nbsp;<a target=\"_blank\" href=\"https:\/\/en.arcep.fr\/news\/press-releases\/view\/n\/the-environment-190122.html\" rel=\"noreferrer noopener\">[6]<\/a>, the carbon footprint of the digital sector in France would be 17 Mt CO2eq (mega tonne CO2 equivalent), i.e., 2.5% of the national footprint, distributed as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>79% for terminals<\/li><li>16% for data centers<\/li><li>5% for networks<\/li><\/ul>\n\n\n\n<p>Understanding the magnitude of the problem is essential to realizing the necessity of levers to reduce the environmental impact of digital technology.&nbsp;<\/p>\n\n\n\n<p>Apart from environmental issues, digital technology poses other problems, particularly social ones. The disparity in access to digital tools is known as the &#8220;<strong>digital divide.<\/strong>&#8221;&nbsp;<\/p>\n\n\n\n<p>To put numbers on the digital divide: 3.7 billion people do not have access to a broadband network, and 87% of people in developed countries have access to the Internet (compared to 19% in developing countries)&nbsp;<a target=\"_blank\" href=\"https:\/\/www.itu.int\/dms_pub\/itu-s\/opb\/pol\/S-POL-BROADBAND.23-2021-PDF-E.pdf\" rel=\"noreferrer noopener\">[7]<\/a>.&nbsp;<\/p>\n\n\n\n<p>This is generally due to lacking infrastructure, which implies a lack of access to information, education, communication, etc.<\/p>\n\n\n\n<p>These social problems are also exacerbated by the mineral resource requirements that feed our digital economy.<\/p>\n\n\n\n<p>The mining for these minerals tends to be in countries where geopolitical tensions exploit local populations in disastrous conditions.&nbsp;<\/p>\n\n\n\n<p>For example, 60% of cobalt mining is carried out by children in the Democratic Republic of the Congo&nbsp;<a target=\"_blank\" href=\"https:\/\/www.washingtonpost.com\/graphics\/business\/batteries\/congo-cobalt-mining-for-lithium-ion-battery\/\" rel=\"noreferrer noopener\">[8]<\/a>. It also pollutes the clean surrounding water, rendering it undrinkable for anyone living near the mine&nbsp;<a target=\"_blank\" href=\"https:\/\/unctad.org\/system\/files\/official-document\/ditccom2019d5_en.pdf\" rel=\"noreferrer noopener\">[9]<\/a>.<\/p>\n\n\n\n<p><strong>The need to reduce digital technologies&#8217; impact on the environment and humanity cannot be understated. This article will explore ways we can do just that through intelligent eco-design. We&#8217;ll also explore the benefits that it can bring to a business and its customers.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fundamentals of software eco-design<\/h2>\n\n\n\n<p>Before we discuss implementing measures to reduce the impact of digital technology, we first need to go over some basic eco-design concepts.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Digital services<\/h3>\n\n\n\n<p>A digital service meets a specific need, has one or more functionalities, and a set of users. It is considered a combination of the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Equipment that enables data to be stored, manipulated, and displayed: servers, terminals, boxes, etc.<\/li><li>Infrastructures that host and connect the equipment: networks, data centers, etc.<\/li><li>Several software packages stacked on top of each other that run on the different devices.<\/li><li>Other possible third-party digital services.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Eco-design<\/h3>\n\n\n\n<p>The principle of eco-design is to consider the system&#8217;s environmental impact from the design phase, with the aim of reducing this impact throughout the product&#8217;s lifecycle.<\/p>\n\n\n\n<p>The eco-design of a digital service necessarily takes into account the following points:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>The definition of the functional scope: which features add value, avoid useless widgets, which data and processing are beneficial, etc.<\/li><li>All stages of the lifecycle and associated equipment: manufacturing, installation, distribution, use, and end-of-life (recycling, reuse, dismantling, etc.)<\/li><li>Several environmental indicators: resource depletion, pollutant emissions, water consumption, waste production, emission of substances contributing to climate change, etc.<\/li><li>The three tiers of the architecture: terminals, networks, and data centers<\/li><li>The implementation of a dialogue with stakeholders<\/li><li>Progressive and continuous environmental improvement without transferring pollution or impact<\/li><\/ul>\n\n\n\n<p>In the digital domain, as we have seen previously, the primary source of impact is located at the terminal level \u2013 essentially in the manufacturing phase\u2013representing about 80% of the impact.<\/p>\n\n\n\n<p>It is therefore essential to optimize and size digital services as much as possible to increase the longevity of terminals. This is to avoid their renewal and to make infrastructures more profitable in terms of space, power, and consumption of resources in general (the weight of software has been multiplied by 171 in 20 years, according to the Green IT collective&nbsp;<a href=\"https:\/\/www.greenit.fr\/2020\/08\/18\/x171-la-croissance-du-poids-de-nos-logiciels\/\" target=\"_blank\" rel=\"noreferrer noopener\">[10]<\/a>).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Levers of optimization<\/h3>\n\n\n\n<p>Optimization levers are those aspects of a digital service that we can change to reduce or contain the service&#8217;s environmental footprint. They include:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>The definition of the functional scope: which features add value, avoid useless widgets, which data and processing are beneficial, etc.<\/li><li>The usage, sizing, and solicitation of the associated physical equipment.<\/li><li>The necessary equipment and infrastructure and their sizing.<\/li><li>The software layer and its optimization.<\/li><li>The use of software best practices and the use of measurement tools (which we will explore later).<\/li><li>Communication with stakeholders to better define functionalities and needs via the UX approach (for example).<\/li><\/ul>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>\u2139\ufe0f No product is completely &#8220;green&#8221; or &#8220;clean.&#8221; We can reduce the impact of our products and activities, but that doesn&#8217;t make them suitable for the planet. It is mainly a question of making our tools more efficient (less consumption for the same use) and questioning our services to keep only the essential and remove the nonessential. The notion of eliminating the unnecessary is not a substitute for efficiency and vice versa.<\/p><\/blockquote>\n\n\n\n<p>Of course, the objective is not necessarily to deprive ourselves or to cut back on certain uses, which is up to each individual. The aim is to adapt our consumption to our actual needs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Impact transfer<\/h3>\n\n\n\n<p>Impact transfer is when impact improvements are made at one stage of the life cycle, implying adverse effects at another phase of the life cycle.<\/p>\n\n\n\n<p>For example, 5G has a lower carbon footprint (between 7 and 35 kWh\/user\/year) on paper than 4G (50 kWh\/user\/year)&nbsp;<a target=\"_blank\" href=\"http:\/\/www.objectifcarbone.org\/wp-content\/uploads\/2020\/12\/Objectif_Carbone_Note_num%C3%A9rique_V2.pdf\" rel=\"noreferrer noopener\">[11]<\/a>, but requires the installation of more antennas than 4G and allows more devices to be connected, thus leading to a rebound effect (<a target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Jevons_paradox\" rel=\"noreferrer noopener\">Jevons paradox<\/a>) by indirectly increasing the number of connected devices.<\/p>\n\n\n\n<p>As humans, we have a cognitive bias that pushes us to use the resources offered by a system to the maximum. In this case, that puts additional pressure on data networks by increasing the data flows, which in turn requires more infrastructure to manage these flows, and so on, in a vicious cycle.<\/p>\n\n\n\n<p>In an eco-design approach, it is necessary to conduct a life cycle analysis to consider the notions of impact transfer and rebound effect to make the best possible design choices.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reasons to choose eco-design<\/h3>\n\n\n\n<p>There are many different reasons to start an eco-design approach:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>It eliminates nonessential elements, making services more efficient<\/li><li>Simplifies the UX and makes it more fluid, improving&nbsp;<a target=\"_blank\" href=\"https:\/\/coderpad.io\/blog\/development\/introduction-to-web-accessibility-a11y\/\" rel=\"noreferrer noopener\">accessibility<\/a><\/li><li>Saves time and money by reducing costs (energy, consumables, cost to society, etc.)<\/li><li>Encourages companies to develop a CSR (Corporate Social Responsibility) strategy<\/li><li>Improves brand image<\/li><li>Brings more meaning to an employee&#8217;s work, therefore reducing burn-out and improving well-being at work<\/li><li>Develops a longer-term vision for the products<\/li><li>Attracts new clientele, thus increasing sales<\/li><li>Creates a network of partners with the same desire to reduce their environmental impact and thus influence others to adopt a CSR strategy<\/li><li>Attracts potential investors (especially related to the establishment of a CSR strategy)&nbsp;<\/li><\/ul>\n\n\n\n<p>These reasons aren&#8217;t just musings of a philosopher \u2013 real numbers back them. According to the 2014 study presented by France&#8217;s Agence de la Transition \u00c9cologique (ADEME)&nbsp;<a target=\"_blank\" href=\"https:\/\/expertises.ademe.fr\/production-durable\/lecoconception\/enjeux-lecoconception-benefices-lentreprise-leconomie-lenvironnement\" rel=\"noreferrer noopener\">[12]<\/a>, an eco-design approach:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Increased margins of eco-designed products by an average of 12%<\/li><li>Improved at least two functional aspects of the studied products (ease of use, cheaper, more sustainable, etc.)<\/li><li>May improve profitability. Some indicators of the intensity of the eco-design approach are associated with higher profits. Thus, the more the company takes into account a large number of stages of the product life cycle in its eco-design approach, the more monetary gain it may see<\/li><li>Increased employee motivation (58% in the EU)<\/li><li>Easier to recruit employees<\/li><li>Improved innovation capacity<\/li><\/ul>\n\n\n\n<p>According to the 2020 GreenConcept study&nbsp;<a target=\"_blank\" href=\"http:\/\/www.greenconcept-innovation.fr\/wp-content\/uploads\/2020\/02\/greenconcept_21022020.pdf\" rel=\"noreferrer noopener\">[13]<\/a>, it would be possible to drastically reduce the environmental impact of digital services: 85% less energy consumption, 63% less water needed, 40% fewer material resources, and 58% less greenhouse gas emissions.&nbsp;<\/p>\n\n\n\n<p><strong>Case-in-point:<\/strong>&nbsp;LinkedIn and IBM have managed to reduce server processing time by a factor of 100 by eco-designing their digital services&nbsp;<a target=\"_blank\" href=\"https:\/\/www.greenit.fr\/2014\/05\/21\/dossier-ecoconception-logicielle-benefices-potentiels\/\" rel=\"noreferrer noopener\">[14]<\/a>.<\/p>\n\n\n\n<p>Finally, eco-design allows you to identify new axes of value creation for your products and offers a triple benefit to your company:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Increased assets<\/strong>&nbsp;by increasing the value of the company through improved brand image and product design&nbsp;<\/li><li><strong>Enhanced customer relations<\/strong>&nbsp;by responding better to their expectations and offering more innovative products<\/li><li><strong>Improved ethical standing<\/strong>&nbsp;by adding social responsibility as a company value (i.e., CSR)<\/li><\/ul>\n\n\n\n<p><strong>Reminder:&nbsp;<\/strong>CSR is not based on &#8220;good deeds&#8221; or &#8220;philanthropy&#8221; but aims to transform companies&#8217; core business models and processes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Putting software eco-design into practice<\/h2>\n\n\n\n<p>You will see that from a technical point of view, eco-design only requires the common sense of the developer. The advantage is that we already have all the tools.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hosting<\/h3>\n\n\n\n<p>The choice of your web host can be important in reducing your environmental footprint. Indeed, behind each hosting option, many servers need to be powered 24\/7\/365.&nbsp;<\/p>\n\n\n\n<p>According to Science magazine&nbsp;<a target=\"_blank\" href=\"https:\/\/www.science.org\/doi\/10.1126\/science.aba3758\" rel=\"noreferrer noopener\">[15]<\/a>, web hosting servers alone represent 1% of the world&#8217;s electricity consumption. This may not seem like much, but also consider the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>10% of the world&#8217;s electricity is used for ICT (Information and Communication Technologies)&nbsp;<a target=\"_blank\" href=\"https:\/\/theshiftproject.org\/wp-content\/uploads\/2019\/03\/Lean-ICT-Report_The-Shift-Project_2019.pdf\" rel=\"noreferrer noopener\">[2]<\/a>.<\/li><li>Electricity usage for digital technology is increasing by 9% every year&nbsp;<a target=\"_blank\" href=\"https:\/\/theshiftproject.org\/wp-content\/uploads\/2019\/03\/Lean-ICT-Report_The-Shift-Project_2019.pdf\" rel=\"noreferrer noopener\">[2]<\/a>.<\/li><li>The digital services industry is expected to double its greenhouse gas emissions between 2020 and 2025!&nbsp;<a target=\"_blank\" href=\"https:\/\/theshiftproject.org\/wp-content\/uploads\/2019\/03\/Lean-ICT-Report_The-Shift-Project_2019.pdf\" rel=\"noreferrer noopener\">[2]<\/a><\/li><\/ul>\n\n\n\n<p>A significant portion of this energy expenditure is the cooling needed to ensure that servers function optimally, protect them from failure, and thus ensure their longevity. Cooling consumes up to 40% of the total energy required to run a data center&nbsp;<a href=\"https:\/\/www.voltimum.fr\/news\/consommation-denergie-des-datacenters-les\" target=\"_blank\" rel=\"noreferrer noopener\">[16]<\/a>.<\/p>\n\n\n\n<p>Calculating the exact environmental footprint of a server is very difficult, given the variety of criteria to be taken into account, the diversity of methodologies used to calculate it, and the lack of publicly available data&nbsp;<a target=\"_blank\" href=\"https:\/\/boavizta.org\/en\/blog\/empreinte-de-la-fabrication-d-un-serveur\" rel=\"noreferrer noopener\">[17]<\/a>.<\/p>\n\n\n\n<p>We can nevertheless estimate that manufacturing a server emits about 1 t CO2eq. This doesn&#8217;t account for abiotic resources (non-living resources: air, water, minerals, etc.) and any environmental destruction that results from obtaining those resources.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What can be done about it?<\/h3>\n\n\n\n<p>There is a lot you can do to ensure your hosting service has minimal impact on the environment:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Use a &#8220;local&#8221; hosting company for your end users to limit the distance traveled by the data (15,000 km on average, according to ADEME).<\/li><li>Choose a hosting company that communicates its environmental impact and makes commitments like&nbsp;<a target=\"_blank\" href=\"https:\/\/corporate.ovhcloud.com\/en\/sustainability\/environment\/\" rel=\"noreferrer noopener\">OVH<\/a>&nbsp;(France) or&nbsp;<a target=\"_blank\" href=\"https:\/\/www.infomaniak.com\/en\" rel=\"noreferrer noopener\">Infomaniak&nbsp;<\/a>(Switzerland).<\/li><li>Check the PUE* of your host. The closer it is to 1, the better (the European average is 1.46). OVH has a PUE between 1.1 and 1.3 (variable according to the sites); Infomaniak&#8217;s is slightly lower than 1.1. These two hosts have an excellent PUE.<\/li><li>Prefer hosting providers with passive cooling systems to limit energy usage.<\/li><li>Prefer hosting companies that use low-carbon electricity, but beware of &#8220;green&#8221; energy certificates (you can buy a &#8220;green&#8221; energy certificate).&nbsp;<\/li><li>Find out about your host&#8217;s hardware renewal practices (ex: Do they use reconditioned equipment, components, etc.?).<\/li><li>Utilize shared server offerings to avoid having a dedicated server. This way, you reduce the environmental footprint of your hosting, which is divided among the different users of this shared offer.<\/li><li>Eco-design your applications. This allows you to take up less space and resources on the servers.<\/li><\/ul>\n\n\n\n<p><em>*PUE: for Power Usage Effectiveness, used to measure the energy efficiency of a data center, it is calculated by dividing the energy consumed by the data center by the energy consumed by the equipment (servers, air conditioning, network, etc.)<\/em><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Use benchmarks<\/h4>\n\n\n\n<p>An excellent way to get started in software eco-design is using best practice frameworks, which save you time in finding ways to optimize your code or the choice of hosting.<\/p>\n\n\n\n<p>In France, for example, we have many frameworks that have emerged:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>The GR491 by the Institute of Responsible Digital (also exists in English):&nbsp;<a target=\"_blank\" href=\"https:\/\/gr491.isit-europe.org\/en\/\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/gr491.isit-europe.org\/en\/\" target=\"_blank\" rel=\"noopener\">https:\/\/gr491.isit-europe.org\/en\/<\/a><\/li><li>The guide to eco-design of digital services by the Association of Ethical Designers (also in English):&nbsp;<a target=\"_blank\" href=\"https:\/\/eco-conception.designersethiques.org\/guide\/en\/\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/eco-conception.designersethiques.org\/guide\/en\/\" target=\"_blank\" rel=\"noopener\">https:\/\/eco-conception.designersethiques.org\/guide\/en\/<\/a><\/li><li>Ecometer, co-financed by ADEME (in English):&nbsp;<a target=\"_blank\" href=\"http:\/\/www.ecometer.org\/rules\/\" rel=\"noreferrer noopener\"><\/a><a href=\"http:\/\/www.ecometer.org\/rules\/\" target=\"_blank\" rel=\"noopener\">http:\/\/www.ecometer.org\/rules\/<\/a><\/li><li>The French government&#8217;s R\u00e9f\u00e9rentiel G\u00e9n\u00e9ral d&#8217;\u00c9coconception de Services Num\u00e9riques (RGESN) also has a general reference framework available (only available in French):&nbsp;<a target=\"_blank\" href=\"https:\/\/ecoresponsable.numerique.gouv.fr\/publications\/referentiel-general-ecoconception\/\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/ecoresponsable.numerique.gouv.fr\/publications\/referentiel-general-ecoconception\/\" target=\"_blank\" rel=\"noopener\">https:\/\/ecoresponsable.numerique.gouv.fr\/publications\/referentiel-general-ecoconception\/<\/a><\/li><\/ul>\n\n\n\n<p>Some of these best practice frameworks will only address the code aspect; others will also discuss hosting management and UX. Still, overall they present many of the same eco-design principles.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Measurement tools<\/h4>\n\n\n\n<p>As the saying goes: you can&#8217;t improve what you don&#8217;t measure. Indeed, how can we know the critical optimization levers when we have no metrics?<\/p>\n\n\n\n<p>Fortunately for us, many measurement tools already exist. The list I&#8217;m going to give you is not exhaustive, but are the ones I use most often:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a target=\"_blank\" href=\"https:\/\/bundlephobia.com\/\" rel=\"noreferrer noopener\">Bundlephobia&nbsp;<\/a>to check the size of the NPM dependencies you want to add to your project, and their download time<\/li><li><a target=\"_blank\" href=\"https:\/\/pagespeed.web.dev\/\" rel=\"noreferrer noopener\">PageSpeed Insight<\/a>&nbsp;for the performance of your sites. It also lists the points to correct to improve the performance of your site<\/li><li><a target=\"_blank\" href=\"https:\/\/gtmetrix.com\/\" rel=\"noreferrer noopener\">GTmetrix<\/a>, like PageSpeed Insight, uses&nbsp;<a target=\"_blank\" href=\"https:\/\/chrome.google.com\/webstore\/detail\/lighthouse\/blipmdconlkpinefehnmjammfjpmpbjk?hl=fr\" rel=\"noreferrer noopener\">Google LightHouse<\/a>&nbsp;metrics for performance indices but uses a non-emulated browser, unlike PageSpeed<\/li><li><a target=\"_blank\" href=\"https:\/\/www.websitecarbon.com\/\" rel=\"noreferrer noopener\">Website Carbon Calculator<\/a>&nbsp;to measure the carbon footprint of your site<\/li><li><a target=\"_blank\" href=\"https:\/\/chrome.google.com\/webstore\/detail\/greenit-analysis\/mofbfhffeklkbebfclfaiifefjflcpad?hl=fr\" rel=\"noreferrer noopener\">GreenIT-Analysis<\/a>&nbsp;(currently available only for Chromium browsers) works with an &#8220;EcoIndex&#8221; calculated from different parameters such as the number of HTTP requests launched, the resource compression rate, image optimization, etc. (this topic will be discussed in the next section)<\/li><\/ul>\n\n\n\n<p><strong>All these tools are free,<\/strong>&nbsp;don&#8217;t hesitate to use them!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Some technical recommendations for software eco-design<\/h2>\n\n\n\n<p>Eco-design requires taking into account physical environmental constraints. This is primarily done in the project&#8217;s design phase by considering the user experience (UX).&nbsp;<\/p>\n\n\n\n<p>UX and eco-design also require optimizing interfaces and taking into account accessibility (which also takes into account the loading time of your application on a 2G mobile phone, for example) and requesting as little data as possible. It is also necessary to eliminate superficial functionalities to avoid unnecessary processing.<\/p>\n\n\n\n<p>Technologies are also chosen during the design phase. The 2017 study&nbsp;<em>Energy Efficiency across Programming Languages<\/em>&nbsp;(R. Pereira et al.&nbsp;<a href=\"https:\/\/docente.ifsc.edu.br\/mello\/livros\/java\/paperSLE.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">[18]<\/a>) studies energy, time, and memory consumption according to the languages. Here is a summary table:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"812\" height=\"795\" src=\"https:\/\/d2h1bfu6zrdxog.cloudfront.net\/wp-content\/uploads\/2022\/10\/table.png\" alt=\"\" class=\"wp-image-21145\" srcset=\"https:\/\/coderpad.io\/wp-content\/uploads\/2022\/10\/table.png 812w, https:\/\/coderpad.io\/wp-content\/uploads\/2022\/10\/table-300x294.png 300w, https:\/\/coderpad.io\/wp-content\/uploads\/2022\/10\/table-768x752.png 768w, https:\/\/coderpad.io\/wp-content\/uploads\/2022\/10\/table-12x12.png 12w\" sizes=\"auto, (max-width: 812px) 100vw, 812px\" \/><figcaption>The 2017 study&nbsp;<em>Energy Efficiency across Programming Languages<\/em>&nbsp;(R. Pereira et al.&nbsp;<a href=\"https:\/\/docente.ifsc.edu.br\/mello\/livros\/java\/paperSLE.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">[18]<\/a>) studies energy, time, and memory consumption according to the languages.<\/figcaption><\/figure>\n\n\n\n<p>We can note that some languages are much less greedy than others in terms of resources, but this does not mean we should systematically turn to them.<\/p>\n\n\n\n<p>Indeed, the choice of a language is not only based on its raw performance but requires the study of other parameters such as :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Maintainability<\/strong>: will someone be able to take over the project after it&#8217;s complete? Does the job market have competent developers in this language? What is the technical environment in which this project will run? Etc.<\/li><li><strong>Language competencies of the project team<\/strong>: let&#8217;s say that Node.js is more adapted to an upcoming API project. If the rest of the team is only competent in PHP, it might be better to stay with PHP or opt for a PHP framework (Symfony with API Platform, for example) even though Node may be the &#8220;better&#8221; language.<\/li><li><strong>Appropriateness to the project<\/strong>: Some languages are better than others at dealing with a particular task. For example, Python is more adapted than PHP for a Machine Learning project.<\/li><\/ul>\n\n\n\n<p>More importantly, how technology is implemented can impact the environment more than how it is used in isolation.<\/p>\n\n\n\n<p>There are a lot of simple tips you can use \u2013 many of them found in the references I&#8217;ve sprinkled throughout this article \u2013 to help you minimize the impact of your digital service implementations:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Reduce the size of the images, and avoid using them when they are unnecessary.<\/li><li>Avoid videos as much as possible or reduce their quality, and do not activate automatic playback when possible.<\/li><li>Think mobile-first. This approach avoids loading content for desktop browsers when unnecessary (because we tend to put more elements on desktop than mobile).<\/li><\/ul>\n\n\n\n<p>Moreover, a smartphone (which accounts for 60% of web browsing&nbsp;<a target=\"_blank\" href=\"https:\/\/explodingtopics.com\/blog\/mobile-internet-traffic\" rel=\"noreferrer noopener\">[12]<\/a>) has a power consumption of between 2 and 15W for charging, while a laptop has a power consumption of between 20 and 75W, and a desktop is between 70 and 250W&nbsp;<a target=\"_blank\" href=\"https:\/\/assets.rte-france.com\/prod\/public\/2022-09\/Analyse%20passage%20hiver%202022-2023.pdf\" rel=\"noreferrer noopener\">[13]<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Utilize <code>for<\/code> loops (with <code>++i<\/code>) rather than <code>forEach<\/code> loops. While it ultimately depends on the context and readability constraints, it is better to opt for a <code>for each<\/code> loop if the code becomes too complicated to read or understand. Code that is difficult to understand is code that is difficult to maintain and evolve, which can contribute to technical debt, contrary to the principles of eco-design.&nbsp;<\/li><\/ul>\n\n\n\n<blockquote class=\"wp-block-quote has-text-align-left\"><p>\u2139\ufe0f You can learn more about <code>for<\/code> and <code>forEach<\/code> loops in these blog posts about the&nbsp;<a href=\"https:\/\/coderpad.io\/blog\/development\/javascript-some-method\/\" target=\"_blank\" rel=\"noreferrer noopener\">JavaScript some() method<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/coderpad.io\/blog\/development\/javascript-array-methods\/\" target=\"_blank\" rel=\"noreferrer noopener\">JavaScript array methods<\/a>.<\/p><\/blockquote>\n\n\n\n<ul class=\"wp-block-list\"><li>Reduce the size of the&nbsp;<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document_Object_Model\/Introduction\" target=\"_blank\" rel=\"noreferrer noopener\">DOM<\/a>&nbsp;as much as possible since it is cumbersome to handle. In web applications, avoid using JavaScript as much as possible, especially for animations \u2013 use CSS instead if you can.&nbsp;<\/li><\/ul>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>\u2139\ufe0f Read more about&nbsp;<a href=\"https:\/\/coderpad.io\/blog\/development\/everything-you-need-to-know-about-all-11-css-filters\/\" target=\"_blank\" rel=\"noreferrer noopener\">CSS filters<\/a>,&nbsp;<a href=\"https:\/\/coderpad.io\/blog\/development\/a-very-very-in-depth-guide-on-css-grid\/\" target=\"_blank\" rel=\"noreferrer noopener\">CSS grid<\/a>,&nbsp;<a href=\"https:\/\/coderpad.io\/blog\/development\/an-overview-of-five-css-math-functions\/\" target=\"_blank\" rel=\"noreferrer noopener\">CSS math functions<\/a>, and&nbsp;<a href=\"https:\/\/coderpad.io\/blog\/development\/css-pseudo-classes\/\" target=\"_blank\" rel=\"noreferrer noopener\">CSS pseudo-classes<\/a>.<\/p><\/blockquote>\n\n\n\n<ul class=\"wp-block-list\"><li>Limit the number of HTTP requests and optimize\/group them as much as possible&nbsp;<\/li><li>Limit the number of SQL <code>JOIN<\/code> operations and sub-queries. These are very greedy in terms of server resources and response time. Of course, this is often dependent on the architecture of your database.<\/li><\/ul>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>\u2139\ufe0f<a href=\"https:\/\/coderpad.io\/blog\/development\/optimize-query-performance-mysql\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to Optimizie Query Performance in MySQL Databases<\/a>.<\/p><\/blockquote>\n\n\n\n<ul class=\"wp-block-list\"><li>Serve static pages rather than dynamic ones.<\/li><li>Use caching as much as possible, especially for assets (images, CSS, JS), and define a long enough caching time according to usage.<\/li><li>Enable server-side file compression (Gzip, minification).<\/li><li>Use&nbsp;<a target=\"_blank\" href=\"https:\/\/coderpad.io\/blog\/development\/reduce-angular-bundle-size-with-santosh-yadav\/\" rel=\"noreferrer noopener\">tree shaking<\/a>, available, for example, with&nbsp;<a target=\"_blank\" href=\"https:\/\/gulpjs.com\/\" rel=\"noreferrer noopener\">Gulp&nbsp;<\/a>or&nbsp;<a target=\"_blank\" href=\"https:\/\/webpack.js.org\/\" rel=\"noreferrer noopener\">Webpack<\/a>.<\/li><li>Avoid using non-standard fonts, or if you must use them, try to choose the lightest fonts possible, and use readable fonts for people with reading disorders (accessibility).<\/li><li>Use&nbsp;<a target=\"_blank\" href=\"https:\/\/coderpad.io\/blog\/development\/reduce-angular-bundle-size-with-santosh-yadav\/\" rel=\"noreferrer noopener\">lazy loading<\/a>.<\/li><li>Avoid <code>SELECT *<\/code> in a database. Specify the names of the columns to return instead.<\/li><li>Ask for as little data as possible to make the program work. Not only is this an eco-design concept, but it&#8217;s a privacy\/data protection one as well. For example: do we need the user&#8217;s first AND last name?&nbsp;<\/li><li>For Content Management Systems (CMS), deactivate and uninstall useless modules.<\/li><li>Optimize your application&#8217;s algorithms as much as possible by evaluating their complexity to reduce them.<\/li><\/ul>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>\u2705 If you couldn&#8217;t tell, eco-design is also compatible with the Agile methodology! By really focusing on what brings value to the customer and evaluating useful enhancements,&nbsp;<a href=\"https:\/\/www.infoworld.com\/article\/3237508\/what-is-agile-methodology-modern-software-development-explained.html\" target=\"_blank\" rel=\"noreferrer noopener\">agile development<\/a>&nbsp;can help reduce the energy overhead associated with developing unnecessary product features.<\/p><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Eco-design is the future of software development<\/h2>\n\n\n\n<p>Eco-design is nothing more and nothing less than the global application of good programming and design practices that allow you to improve the performance of your web applications, all the while keeping in mind that our world obeys physical laws with limited resources that are not necessarily renewable on a human life scale.<\/p>\n\n\n\n<p>By applying these good practices, your company will see its image enhanced with your customers, potential investors, and \u2013 more importantly \u2013 your employees. The more your employees are trained in eco-design principles, the higher the intensity of implementing eco-design in products, the more quality will be present, the more your customers will be satisfied, and the higher your profits will be.<\/p>\n\n\n\n<p>In addition, by eco-designing digital services, we can reduce the amount of processing required and extend devices&#8217; lifespan, thus reducing our impact on the planet&#8217;s resources and the energy needed to operate them.<\/p>\n\n\n\n<p>Nevertheless, it is essential to keep in mind that despite the positive indicators that emerge from various studies on eco-design, they may be biased, especially due to the relatively small study samples. For example, the 2014 study&nbsp;<a target=\"_blank\" href=\"https:\/\/expertises.ademe.fr\/production-durable\/lecoconception\/enjeux-lecoconception-benefices-lentreprise-leconomie-lenvironnement\" rel=\"noreferrer noopener\">[14]<\/a>&nbsp;is based on a sample of about 100 companies across the EU and Canada. Moreover, the concept of eco-design is relatively recent.&nbsp;<\/p>\n\n\n\n<p>Adopting eco-design at scale cannot be done in a snap of the fingers. Even if it is not a magic formula to boost your business, it is of undeniable interest in your digital services&#8217; environmental impact, user experience, and performance.<\/p>\n\n\n\n<p>Here I&#8217;m going to risk paraphrasing Jean-Marc Jancovici&nbsp;<a target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=PEY6LmscKc4&amp;list=PLMDQXkItOZ4LPwWJkVQf_PWnYHfC5xGFO&amp;index=5\" rel=\"noreferrer noopener\">[15]<\/a>, but a world of service jobs is not a world without hardware \u2013 quite the contrary. Digital service jobs depend on the presence of machines because there are a lot of flows to manage (notably of information and people), and the more the flows increase, the more people are needed to deal with them (thus more machines, and so on).<\/p>\n\n\n\n<p>Thanks for reading!<\/p>\n\n\n\n<p><em>I&#8217;m Thomas Laure, a French junior IT engineer who loves solving problems regardless of the technology used, not only in tech, and passionate about many scientific topics and philosophy.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The rise of digital technology has brought about negative environmental impacts to the environment. Software eco-design considers the system&#8217;s environmental impact from inception till the finish.<\/p>\n<p>Learn how you can use software eco-design in reducing the environmental impact of digital technology.<\/p>\n","protected":false},"author":1,"featured_media":21154,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10,9],"tags":[],"persona":[27,29],"blog-programming-language":[],"keyword-cluster":[],"class_list":["post-21118","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering-management","category-development"],"acf":[],"_links":{"self":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts\/21118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/comments?post=21118"}],"version-history":[{"count":22,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts\/21118\/revisions"}],"predecessor-version":[{"id":21156,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts\/21118\/revisions\/21156"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/media\/21154"}],"wp:attachment":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/media?parent=21118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/categories?post=21118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/tags?post=21118"},{"taxonomy":"persona","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/persona?post=21118"},{"taxonomy":"blog-programming-language","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/blog-programming-language?post=21118"},{"taxonomy":"keyword-cluster","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/keyword-cluster?post=21118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}