7 reasons to make your website or application more efficient (In one word : Eco-design)

Originally publish in linkedin

This post aims to respond to a recurrent question of developers, customers and students that I met during last years about eco-design of software: why eco-design my software or website?

The software is not virtual, it stimulates the material. Thus, any line of code will act directly on hardware resources: CPU, memory, network interfaces, disk … we imagine very easily that some programming practices will consume more resources than others. For the answer to the same need, then we will have an unnecessary resource consumption which will have several negative impacts: energy consumption, loss of independence for mobile devices, a computer obsolescence phenomenon … all the more important that the software will consist of several layers and bookstores. We call this phenomenon the bloatware.

Eco-design software is the application of good practices to reduce hardware resource consumption while meeting the needs of the user and maintaining performance. The areas of action will be many: optimization features, working on architecture, benchmark libraries, code efficiency, efficiency measurement.
A question is often asked: the efficiency of software or eco-design is such that performance? No, the performance will often go the way of eco-design but not prompted systematically. First, we must clarify the term performance: display’s performance, processing’s performance? For a performance such website display, we implement mechanisms to ensure that the user sees the page as quickly as possible. These mechanisms will potentially consume resources.

So why you need to apply eco-design and to make your software green ?

1 — Free lunch is over !

For 20 years, when we need CPU, memory… We can have it. Needs an additional server to increase the performance? No problem, you have just to click. Why to optimize software if i know that i will have more power next year ? And moreover, there is a law for this : Moore’s Law ! Something in the performance of CPU (MHz, power…) will double every 18 months!

The problem is that Moore’s Law is not a scientific law. It was an observation and it is more a goal for the industry. It can be seen as a self-fulfilling prophecy.

Moreover, IT has a real environmental impact : obsolescence, energy consumption, rare earth metals… This last item is for example a big problem.Rare earth metals are used to manufacture our computers, smartphones and other gadgets are… rare, have an environmental and social cost. We need to take care about the stock of such metals.

So manufacturers have begun the eco-design of IT, software actors need now to make their work !

2 — Mobility means autonomy

One big reason to go to eco-design is the new usage of IT and especially the mobility. Smartphones and tablets are the most used platforms nowadays for website consultations for example. The energy was not a problem with computer platform, but it is not the case today. So mobile platforms are more and more stimulated and so it drain more and mode energy.

The increase of the battery capacity of these platforms is not a solution. What if for our cars to increase autonomy, car manufacturers will just increase the capacity of the petrol tank. Not a solution, better efficiency is needed.

This is a need for the users because they don’t want to reload their smartphone every day. The problem is not simple because the energy drain by every application and websites is generally small but there is a lot of applications used !

3 — Users need performance

Users need battery autonomy, but moreover, need performance for their applications. More than 2 seconds to load a website is too long! 5 seconds to open an application, I will not use one more time this application. An interface to complex, lot of users will not like and use the application.

So applications and websites need to be efficient. Eco-design aim is to reduce the resource consumption, so automatically applications will be more efficient. We need to take care of hardware if we are in the software world.

4 — Not everybody has a fiber access

Not everybody is a geek, a hipster and have a fiber access. A lot of country, for example in Africa have not a good network. In the same way, a lot of people have a quota in the usage of data.

A website or an application need to be developed for everybody, no matter the location or the capacity. Facebook, for example, have worked in this way to provide an optimal application.

The more an application will be optimized, the more users it will have. To understand this, take your old smartphone and use website of today, it is very probable that you will not be able to see the website.

We need to think and to develop softwares that run with few data and not to design it to run with the future 5G or 6G!

5 — IoT or IT everywhere

Buzzword or not, Internet of Thing will be everywhere… And is today everywhere: smartphone, webcam… And tomorrow, it will be more. So even if we think that IoT are little object and so little software, it is not the case. IoT in general are little smartphone : Generic hardware with Android or Linux OS, more and more memory… As smarphone are the computer of yesterday, IoT of tomorrow will be the computer of today.

So, optimization and important care on the resource consumption (CPU, mémory, data…) are crucial. Otherwise, IoT will be just big computer and will be everywhere. The impact of such a phenomenon can be bigger that the actual impact of data center. The devil is in the detail… and for the moment IoT is a detail in term of size comparable to data center and computer. Without talking of the data generated by IoT.

6 — Developers need to change the world… For a better world

Thinking of Software and impact on software without talking about developers make no sense. Developers have an import impact on the world today because they bring new solutions to people (Think to Uber, to AirbnB…) but I think generally it is a mirage.

As explained by Evgeny Morozov, the people of the Sillon Valley have no time to change the world. Indeed, we need to focus more on the real impact of IT on the world : does this functionality will bring us more happiness, what is the price of the application in term of resources… A lot of questions that developers have not in mind. But if we give us the time, they will be also happy.

I have discussed a lot with developers with the work associated on eco-design andGreenspector, and when we take time to talk about impact on the environment and optimization, they have great solutions. Developers need to integrate Eco-design, and not only security of code, maintenability…

7 — Frameworks and tools are more and more complex

As we ask developers, to go faster on writing code and adding functionality, frameworks and tools are becoming more and more flexible and efficient. The problem is that it brings a lot of layers and external code. Dozen of external servers for a website (Google analytics, ad servers…), several libraries in mobile applications, abstraction software for database management…

Developers have lost the view on the hardware, they don’t know what their codes do on hardware. It is the price for flexibility and fast developing. We integrate library but we don’t care of their efficiency and who has developed it.

And after ?

I can provide you several arguments to begin eco-design, you will provide me also more arguments to continue to not take into account the resources. “Hardware will be more and more efficient”, “ Middleware are conceived to optimize the software and are improving every day”, “It’s not our job, it is the job of Microsoft, Apple and Google…”. I prefer to believe that software development is craftsmanship and is important. So if we don’t take care of the impact on the material resources and on the environments, we are wrong. Moreover, eco-design is just good sense.

--

--

Olivier Philippot
Eco-design of software by Greenspector

CTO of @green_spector efficiency and eco-design of software #greenit #ecodesign