Climate change is one of the greatest challenges facing humanity. The objective is to limit the temperature rise to 1.5 degrees. To do so, scientists have established different scenarios:
In view of the scale of the efforts to be made, it is necessary for the entire population to act in the direction of decarbonizing the economy. As a digital player, we have an important role to play. Julia Meyer explained why digital has a huge impact on climate change and is growing rapidly. A significant number of people have integrated the importance of the issue into their practice. Thus they have developed green computing.
Fabrication of a smartphone represents 87% of emissions.Therefore, it is absolutely necessary to design applications that can be compatible with older devices. The aim is not to force users to renew their phone. Then we need to be careful that the features use as few resources as possible (power consumption, bandwidth, etc.).
Now that we are convinced that green computing must be thought of by the whole team, it is time to understand how this aspect can be implemented in reality. To this end, we will discuss functional sobriety. This principle is simply about thinking better about core features. The idea is to lighten the software while having the best quality.
A practical example: Facebook lite
Functional sobriety is already being used by major digital players in their strategy to grow in developing countries. Indeed these people do not have access to a good network and a state-of-the-art smartphone. For example, Facebook offers a lighter version of three of its apps: Messenger, Facebook and Instagram.
Comparison between the Facebook application on iPhone:
|iOS compatibility||iOS 11.0 or later||iOS 9.0 or later|
|App size||282.6 MB||22.1 MB|
This 10-fold reduction in app size shows that it is possible to greatly improve the performance of an application. This is achieved by focusing on core features and eliminating the unnecessary.
Thinking about what is really needed to solve a given problem was the basis of software development. With limited computing power and bandwidth, developers had to optimise. And think through the important elements of the software in order to implement a reliable solution. For example, the engineers of the Apollo missions created an on-board computer for lunar travel with the current storage capacity of an email. Another example is the first websites that contained only the functionalities needed by the user. We can see that Google has kept this spirit of sobriety in the latest versions of its homepage:
The main page of Google on 1998, https://commons.wikimedia.org/wiki/File:Google_1998.jpg
Over the last twenty years, improvements in performance have removed many limitations. Therefore optimization is no longer the main concern of developers. This has resulted in an extremely high waste of available resources. In 2010, the share of greenhouse gas emissions due to digital technology was 2.1% and rose to 4% in 2019 (and it's still rising). With the urgency of climate change we are facing now, we should go back to the early development question: what is really needed?
A reflection on functional sobriety allows to reduce the environmental impact. However, there are also other advantages to developing green computing:
- Increased number of users and better referencing
The most immediate benefit is the desire to increase the number of users. It was the main reason behind the Facebook's choice. So we need to be compatible with the oldest operating systems. It should also be light to be easily downloaded. And finally be usable on low-performance devices.
Today, around 1⁄3 of French people have already bought a second hand phone. This score has been increasing in recent years. It was mainly for economic reasons, but also due to an ecological awareness. The evolution of this market is highlighted by the economic performance of Backmarket, a French refurbished marketplace, which has raised €276 million in May 2021. This is excellent news in the fight against climate change.
On the web, page loading time is one of the criteria used by search engines to rank websites. A lighter web page loads faster and therefore has a better ranking.
For mobile applications, the number of downloads increases when the size of the app is reduced. Sam Tolomei, a Google employee, explains that: "For every 6 MB increase to an APK's size, we see a decrease in the install conversion rate of 1%". Indeed, a larger app size means a longer download time, a higher cost if the user is on the mobile network, or even the need to remove another application from the smartphone to free up space.
- Greater focus on core features
Focusing on specific needs increases the value to the user by better understanding their real needs. By doing this, more time can be spent on the quality of the functionality and improving its performance.
- Reduced number of bugs
Anyone who has ever took part in the development of computer software has faced at least one bug in their program. These bugs can be critical when they affect the essential features of an application. Indeed they can cause a loss of revenue or a damage of the company's reputation. By concentrating on the main services, functional sobriety increases the quality of the code and therefore reduces bugs.
- Reduction in the cost of maintaining the application
As this method reduces the number of problems, it facilitates maintenance and therefore reduces the related cost.
- Improvement of the IT security of the product
Climate change is not the only problem facing humanity. The increasing presence of digital technology in our lives also poses security challenges. As with bugs, focusing on quality rather than quantity reduces the potential risk of a security breach. This is critical because it can lead to significant losses for the company. Indeed, a security breach, even if it is quickly corrected, can lead to a loss of trust and reputation of the company among customers.
How to integrate functional sobriety into the application design process ?
The implementation of functional sobriety requires a thorough reflection on the real user needs to distinguish the essential from the superfluous.
For example, to display a picture, we must first ask ourselves whether we need to download an ultra-high definition image to do so. Would it be possible to greatly reduce the size of our application by reducing the quality of the images?
To begin a functional sobriety approach, here is a non-exhaustive list of questions that can be asked:
- Do we really need to download a video automatically without the user having decided to do so?
- Do we need to have the GPS on all the time? For more explanation about the GPS issue, read this article.
- When I need to fetch data regularly, is it possible to increase the timing between these two API calls?
- Has any thought been given to our strategy for retrieving data effectively?
- Does the user use these features?
In order to answer this last question it is important to understand our app users. Analytics tools can be useful to obtain a better understanding of the user behavior. Once the unused features have been identified, we must not be afraid to question our choices. Removing features should not be a shame. The aim is to have a continuous improvement approach.
In the past the average size of applications on the Android Marketplace was multiplied by 5 between 2012 and 2017. So the integration of environmental impact reduction objectives into project management methodologies must be achieved. As Michael Ballé shows in this conference : Lean and green, what are we talking about?, the lean methodology, based on the search for waste and continuous improvement, can enable to reduce environmental impact. The example of Facebook shows that the most effective way to reduce the size of the app, increase performance and increase OS compatibility is functional sobriety. This approach must be thought of during the development phase AND throughout the life of the application.
To sum up the development of a green application should iterate the following steps:
- What is the user's need?
- Is it necessary to develop a new feature to solve this user need?
- How can I code this feature in the lightest and most efficient way possible, while maintaining OS compatibility?
Climate change must be tackled by everyone. Digital technology is a great tool, but that it must be thought so as not to deteriorate living conditions on the planet. As digital players we have to develop green computing. This is why we promote good eco-design practices within the company. The objective is to reduce our impact in a spirit of continuous improvement.