Digital is booming ! We consume more and more services and information in digital formats, whenever and wherever we feel like it. These services and contents keep getting bigger in number and in size. This omnipresence leads to a sharp increase of resources consumption in datacenters; however, the effects are even more significant in all deployed products such as laptops, tablets, smartphones, internet boxes, connected objects, … Dresde University estimated that, by 2030, the Internet as a whole would consume as much energy as the whole humanity in 2008!
The most striking digital evolutions are both the amount of data we produce then store every single minute, and also the hardware miniaturization allowing an easy access to information and services. To be able to do that, we are constantly in need of an increasing intelligence embedded in hardware that keeps getting smaller. Such changes are doable only if we have recourse to new optimizations : components, batteries, datacenter cooling… and now software! Because natural entropy of the software is an actual thing and we even have a name for it: « BLOATWARE » !
The « bloatware» phenomenon
Nowadays, developers are not taught to watch used resources anymore ; not in school, nor in companies. As a main goal, developer teams aim at delivering expected functionalities in a predefined timing (which is good enough!). In order to be productive, we put together, integrate and then reuse existing libraries. When dealing with slow software, we always end up increasing the material strength to counterbalance the lack of software efficiency… Unfortunately nothing is measured throughout the whole development cycle, which would, at least, allow to react early enough and prevent correcting costs from being too high, hence be prohibitive. This tangible addition is possible at the expense of autonomy, ecology and common sense after all.
Some might even say this is a form of relocation for the digital world; when investing locally in software efficiency leads to cost reductions of hardware produced on the other side of the world, in social, sanitary and environmental conditions that are not always decent.
The Code Vert project was born !
As a company dedicated to a more respectful and virtuous digital environment, we had an intuition : by applying eco-design principles to the software “manufacturing” process, it should be possible to lower energy and resource consumption when the software is being used. However, this intuition had to be verified, and that’s what we did in the context of « Code Vert ».
This project, launched in 2012, lasted 30 months. Thanks to this, we validated gains resulting from a better use of coding instructions in an IT program (good «green» patterns or « Green Patterns»). In addition to that, we also were able to have a better overview of what our solution, GREENSPECTOR would look like, the goal being to accompany developers in their practical software eco-design implementation. Since then, we enriched the tool with power consumption measurement functionalities, which allows developers to see real gains (nothing like monitoring progresses to measure results!), thus going further than just the « theoretical » application of a good pattern; but it also allows detecting overconsumption, which would be impossible to see by simply analyzing the source code
Companies commitment to software eco-design
What is the point for a company to engage in this software sobriety path? Examples are multiplying lately and, soon enough, digital eco-design will be fully integrated in good work habits of all development teams. Would Facebook have figured out its viable business model a couple years ago, if it hadn’t divided its servers’ power consumption by two, thanks to the implementation of a software optimization strategy, preventing them from having to build a new datacenter?
More recently, Facebook launched its mobile application Facebook Light, intended for emerging markets thanks to reduction of both exchanged data volume and consumed energy (hence battery life). Now around us, we are starting to see digital eco-responsibility criteria in digital calls for tender issued by major French companies, or even good patterns reference document.
Software eco-design stakes and gains
In a world where moderating wisely mobile use is not an option (it might change one day, who knows?), this process answers a pressing demand from the end consumer we all are : the battery life of our mobile hardware, embedded, connected etc that follow us everywhere ! Indeed, autonomy is one of the main criteria when it comes to choosing a smartphone model. In early 2017, most mobile manufacturers were claiming that their focus was to develop the best battery life on the market for their latest smartphone. The user’s interest here doesn’t lie in making money, but in mobility, productivity, usability… overall to get a better user experience. Software optimization then becomes an essential part of the cog in the manufacturer’s autonomy quest, at least for the ones who want to grow their market shares.
Other gains can be even more interesting, particularly in the field of connected objects. Software eco-design allows a reduction in maintenance frequency, but also an increase in life cycle of deployed products (sometimes greedy for rare resources), even with a higher level of service. The first service we can offer in this IoT domain is to provide the object’s power consumption profile, based on actual use (not manufacturer’s data, when they’re even available…) to integrate it very practically in the solution’s economic model. This process has to include resources measurement (energy, data, memory…) while it’s actually functioning. In the end, no matter what the motives are, we are aiming at making it at least as performing for the user, for a lower exploitation cost, while controlling the stress from energy and resources needs – too often not renewable enough.
For those who don’t have visible or substantial gains in spite of the potential costs of implementing this eco-design, you can try and comply with an online good Green pattern reference so you can, at least for now, communicate on exemplarity and encourage this « eco-system ». Nantes Métropole was the first collectivity to get its website dedicated to energy transition labeled so it could publicly communicate on its interests in this eco-responsibility process applied to the websites.
Good patterns in terms of software eco-design !
How did we manage to set the good pattern bases in design and development efficiency? As part of Web Energy Archive, the Green Code Lab organization measured the power consumption of over 700 websites. What came out is a correlation between the resources consumption and the website’ complexity (scripts, number of requests in a page…). Other points were noted, which allowed to demonstrate that, on average, the consumption of a page in a minimized tab (non-displayed on the screen, hence no interaction), represents about 1 Watt of power on a workstation that doesn’t even display the page (so it doesn’t include consumption of requests sent to servers and supplying the network with traffic!). Avoiding such useless consumption is pretty easy to realize, you can just ask the developer to plan a data processing termination whenever the user isn’t looking at the browser tab.
In 2017, over 50% of web info and services are accessed on a mobile phone, under constraints of service, smartphones’ battery, limited data depending on phone plan… All reasons for a web content editor to be interested in this subject and watch its pages otherwise there is a threat of losing audience and consumers that are looking for instantaneousness.
Companies are slowly starting to integrate this process in their software factory, with interesting gains they forgot the past years. In « digital factory » or « mobile factory », the main stake is not to miss the digital transformation of organization, by providing a flawless user experience, (understand here mobility performance and productivity) key aspects in a project success.
Let’s fantasize a bit. Wouldn’t it be possible to take this logic further, and try to « save the planet » from the danger the digital evolution has generated ? This would give developers a new meaning and purpose to their job, they could finally find a way to intervene practically at their own level to limit their production’s ecological impact, thanks to their daily tasks. A way to avoid “throwing up” code with no responsibilities nor morals, and add value to the job?
It is true that revising an organization’s aplication portfolio in order to realize a retro eco-design doesn’t necessarily makes sense from an economicla point of view in the short-term. But digitalization is just starting, chapters that remain to be written are far more numerous than the ones already published. Let’s bet companies won’t have the choice but integrate this new frugal dimension in order to be competitive in a world with scarce resources. Like Pierre Rabhi describes furthermore in his book, we are heading towards a « Happy » Sobriety in the Digital world!