Aller au contenu
Voir la fiche dans le portail

Les bonnes pratiques de l'écoconception de service numérique

Auteurs et date

Introduction

Réserver un covoiturage, un billet de train, prendre rendez-vous chez le médecin... ces tâches du quotidien sont aujourd'hui facilement réalisées à travers des plateformes web. Pour autant, ces services numériques sont des objets complexes, composés d'un certain nombre de couches matérielles et logicielles.

C'est un produit virtuel... mais surtout matériel !

Dans le cas d'un service numérique en ligne, par exemple, cette matérialité peut-être représentée par :

  • les serveurs dans les datacenter qui hébergent le service
  • les terminaux des utilisateurs (ordinateurs, téléphones, tablettes...)
  • l'ensemble des équipements réseaux qui vont transporter les données entre les serveurs et les terminaux
  • d'autres services numériques dont il dépend

Mais pour donner vie à un service numérique il faut en réalité un peu plus que ça !

Nous allons aborder dans cette fiche quelques bonnes pratiques importantes dans l'écoconception d'un service numérique en ligne, qu'il s'agisse d'un simple site web ou d'une plateforme web plus complexe, à chaque étape de sa fabrication.

Le processus créatif

Comme dans tout projet, on peut schématiser la mise en place d'un service numérique par les trois grandes phases de son cycle de vie représenté ci-dessous.

Le cycle de vie d'un service numérique
Marie Chevallier, 2021
Avant

Au début de tout projet de service numérique, on commence par définir l'objet à créer. Quels besoins cherchons-nous à satisfaire ? Quels seront les utilisateurs ? Quels usages en feront ils? Pour résumer, on définit le "Quoi". Obtenir des réponses précises et pertinentes à ces questions est une des clefs de la réussite d'un projet, indépendamment des réalisations techniques.

Pendant

La phase de réalisation peut elle-même se découper en plusieurs parties :

  • la conception du logiciel
  • l'implémentation
  • l'intégration et les tests

La conception vise à répondre à la question du "Comment". C'est l'étape de définition :

  • des interfaces hommes-machines, à travers des maquettes : Comment l'utilisateur va-t-il interagir ?
  • des scénarii d'utilisation : Comment va-t-il pouvoir réaliser les tâches dont il a besoin ?
  • de l'architecture technique et des choix des technologies : Comment les développeurs vont-ils coder ?

L'implémentation est le moment où on code, où on met en oeuvre les technologies nécessaires. Cette phase coïncide également avec la réalisation des visuels, icônes, images mais également avec la création des contenus, la collecte et la mise en forme des données, qui devront être accessibles via le service.

Vient ensuite la phase d'intégration qui va consister à la fois à assembler les différentes briques logicielles réalisées pour qu'elles fonctionnent ensemble, et à insérer le service numérique dans un écosystème existant.

Une fois qu'un premier prototype est opérationnel, il va subir des séries de tests afin de valider sa qualité.

Après

L'après commence avec le déploiement : c'est le moment où le service numérique devient opérationnel, le plus souvent en le déployant dans un datacenter.

C'est également à partir de ce moment-là que commencent :

  • Le support, c'est-à-dire la prise en charge des utilisateurs : aide à l'utilisation, réponses aux questions, etc.
  • La maintenance, c'est-à-dire la correction des anomalies remontées par les utilisateurs, la réalisation des patchs de sécurité, les évolutions de fonctionnalités, etc.

Quand un bien de consommation classique (comme une voiture par exemple) commence à être utilisé, sa conception, sa fabrication et toutes les autres étapes qui précèdent son utilisation sont terminées. Ça n'est pas le cas pour un service numérique en ligne : le début d'une nouvelle étape ne termine pas l'étape précédente. En effet, pendant toute sa durée de vie, un service numérique en ligne va évoluer :

  • par l'amélioration ou l'ajout de nouvelles fonctionnalités
  • par une succession de mises à jour techniques, nécessaires à des fins de sécurité ou de correction d'anomalies
  • par la suppression des fonctionnalités devenues obsolètes

Un développement continu

Parce qu'un service numérique en ligne est constamment en train d'évoluer, les impacts environnementaux de sa fabrication sont en augmentation permanente pendant toute sa durée de vie. Ainsi chacune des étapes citées précédemment va se répéter pour chaque nouvelle version. La plupart des sites web ont des cycles d'évolution assez courts, de l'ordre de quelques semaines à quelques mois seulement, et la mise en ligne d'une nouvelle version est souvent transparente pour ses utilisateurs.

Pour toutes ces raisons il est important de veiller à minimiser non seulement les impacts environnementaux de l'utilisation d'un service numérique, mais également ceux de sa phase de fabrication et de sa fin de vie, considérant ainsi tout son cycle de vie. C'est ce qu'on appelle l'écoconception.

Un grand principe d'écoconception, quel que soit le domaine, est d'appliquer le principe ERC1, notamment les deux premiers points :

  • (E) Eviter : quand c'est possible, éviter de créer une nouvelle source d'impact est toujours le meilleur choix.
  • (R) Réduire : quand ils sont nécessaires, chercher à réduire au maximum les impacts en faisant preuve de sobriété.

A chaque étape du cycle de vie d'un service numérique l'écoconception est possible, en voici quelques exemples.

La définition des besoins

Eviter le service numérique de trop

Le service qui pollue le moins est celui qui n'existe pas. Avant de vous lancer dans un projet de création, assurez-vous que le besoin auquel vous souhaitez répondre n'est pas déjà couvert. D'ailleurs, ce besoin s'inscrit-il dans les Objectifs de Développement Durable2 ? Ce service aura-t-il un impact positif sur l'environnement, participant ainsi à la compensation de ses propres impacts ? Se poser la question de l'utilité est la première étape de l'écoconception.

Se concentrer sur la fonction primaire et éviter les fonctionnalités non-essentielles

La tentation est grande lors de cette phase de vouloir adresser un nombre conséquent de besoins, de vouloir toucher le public le plus large possible, et de demander des fonctionnalités pour l'unique raison qu'elles existent dans d'autres services numériques. Ce type de comportement amène à la création de véritables usines à gaz peu utilisables. Plusieurs études (Thomas 20193, Cast Software, Standish Group) révèlent qu'une grande majorité des fonctionnalités des logiciels ne sont que rarement voire jamais utilisées (entre 50% et 80%). Elles auront pourtant eu un impact environnemental lors de leur production, et leur présence latente dans les logiciels ont également un impact résiduel. Dans un processus cyclique, il est également important de questionner à cette étape la pertinence des fonctionnalités existantes, afin de supprimer celles qui sont devenues obsolètes.

La conception

Concevoir des interfaces sobres

Evitez les pages "obèses" en réduisant au maximum les fonctionnalités et le graphisme. Le service doit être utilisable sur un petit écran, et si possible réactif4. Pour aller vers une pertinence optimum, l'utilité, la fluidité et l'accessibilité doivent être les priorités du maquettage. Par exemple limitez l'utilisation d'images, et quand elles sont essentielles veillez à réduire leur taille à la source au minimum nécessaire.

Penser la compatibilité à long terme

Il vaut toujours mieux respecter les standards établis, notamment pour éviter l'installation d'une surcouche logicielle sur le terminal de l'utilisateur, qui pourrait être responsable d'une obsolescence induite sur son matériel. Il est par exemple préférable de mettre en place une application web plutôt qu'un logiciel à installer (app mobile ou desktop) pour un service en ligne. La compatibilité d'un service numérique se construit dans la durée en demeurant utilisable sur les équipements anciens ou exotiques.

Réutiliser tout ou partie de logiciels existant

Evitez de réinventer la roue. Un service numérique, surtout en ligne, est souvent un assemblage de technologies pour lesquels le monde du libre est très actif ! Il est probable qu'une bibliothèque logicielle existe déjà pour réaliser tout ou partie de chaque fonctionnalité que vous souhaitez mettre en place, profitez-en!

Privilégiez la basse technologie, ou low-tech[^lowtech]

Concevoir le service numérique de demain qui fonctionnera sur le matériel d'hier permet non seulement de réduire les changements intempestif de matériel mais sera aussi plus facile à maintenir et à faire évoluer. Un simple SMS peut servir à transmettre un message, internet n'est pas la réponse à tout.

Planifier la gestion des données

Evitez de stocker ou de manipuler des données inutiles. La tentation est grande de vouloir stocker "au cas où" des données. Toutefois c'est au mieux néfaste pour l'environnement, au pire illégal au regard du règlement européen sur la protection des données personnelles6. Le principe FAIR7 recouvre des manières de gérer des données de manière à ce qu'elle soient «Facile à trouver, Accessible, Interopérable et Réutilisable ». Suivre cette méthode permet de réduire l'impact par la mise en place d'une meilleure interopérabilité et réutilisation des données.

L'implémentation

The Ecological Impact of Language in High-performance Computing
Comparaison de l'impact environnemental en équivalent CO² du choix du langage en astrophysique, Simon P. Zwart

Choisir un langage adapté au contexte

Tous les langages et toutes les technologies ne se valent pas, certains peuvent être moins énergivores que d'autres. La courbe ci-contre illustre par exemple la comparaison de l'impact environnemental de l'utilisation de différents langages dans des calculs d'astrophysique8. Ceci dit attention, les compétences des développeurs et les choix d'architecture ont plus d'impact que le choix du langage : un très bon développeur Python optimisera mieux son code qu'un mauvais développeur C++, ce qui amènera au final à une plus grande réduction des impacts que le langage lui-même. De même, la réutilisation de code fonctionnel doit être privilégiée, quel que soit le langage. Le contexte, humain ou technique, doit ainsi être un critère déterminant dans le choix des technologies à mettre en œuvre.

Choisir des technologies pérennes

Les technologies mises en oeuvre dans les services numériques évoluent très vite : de nouvelles apparaissent, et certaines disparaissent faute d'une communauté forte pour les maintenir. S'intéresser à l'ancienneté et à l'activité de sa communauté permet d'identifier les technologies pérennes. C'est un critère important à prendre en compte pour éviter de devoir réécrire complètement le code d'un service numérique à cause d'une de ses briques technologiques devenue obsolète.

Limiter les accès réseaux

Réduisez le trafic généré par votre service numérique au strict minimum : vous diminuerez son empreinte environnementale, vous le rendrez accessible pour des connexions à faible débit. L'idéal est de le concevoir résilient aux déconnexions.

Choisir la simplicité

Evitez la complexité. Un code simple à comprendre et à mettre en œuvre sera aussi plus durable et plus facile à faire évoluer. C'est la base du principe KISS9 : Keep It Simple and Stupid.

Contribuer à la création de communs numériques

Evitez aux autres de réinventer la roue : dans la mesure du possible, choisissez une licence Open Source10 et contribuez ainsi au monde du logiciel libre. Non seulement vous permettrez à d'autres de réduire leur propre impact, mais vous pourriez être agréablement surpris par les apports de la communauté à votre création !

Mesurer pour Réduire

Utilisez des outils de mesure pour évaluer les performances de votre code. Que ce soit la quantité de données échangées, le temps de chargement des pages, le temps d'exécution, le nombre de requêtes ... tout est matière à optimisation. L'écoconception est une démarche d'amélioration continue sans fin. La mesure est indispensable à cette démarche afin de savoir quoi et comment améliorer, et d'éviter la tentation de la fonctionnalité en plus ou l'effet rebond. Néanmoins, trouver le bon compromis entre simplicité et optimisation est souvent un facteur clef. Attention aux effets rebonds : l'optimisation ne doit pas être un prétexte à l'ajout de nouvelles fonctionnalités non-essentielles.

L'intégration et les tests

La qualité au service de la durabilité

La mise en place de tests permet de détecter les anomalies et d'assurer un important niveau de qualité du service. Ceci va éviter les régressions lors de ses évolutions et améliorer la satisfaction des utilisateurs. Si votre service numérique contient trop de bugs ou d'instabilités, il risque de ne pas être utilisé et d'être difficile à maintenir dans le temps : tous les impacts environnementaux engendrés par sa production auront été générés pour rien. Néanmoins focalisez-vous sur les tests les plus essentiels et méfiez-vous de leur automatisation qui est elle même une source de gras numérique.

La mise en production

Choisir le bon hébergeur

Tous les datacenters ne se valent pas en terme de performances environnementales. Choisir un datacenter labellisé Code of Conduct11 c'est réduire son impact. D'autres éléments comme sa situation géographique ainsi que son indicateur d'efficacité énergétique12 sont également à prendre en compte.

Dimensionner au plus proche du besoin

Choisissez une infrastructure (combien de serveurs, de quel type, etc.) au plus proche du besoin réel : vouloir trop anticiper les pics de charge va conduire à un gaspillage de ressources. Privilégiez la mise en oeuvre de solutions capables d'allumer et d'éteindre à la demande les ressources nécessaires, et ne laissez pas allumés des serveurs inutilisés.

Nettoyer les données inutiles

Au cours de la vie d'un service numérique, il est commun de voir certaines des données qu'il contient devenir obsolètes. Qu'il s'agisse d'anciens contenus périmés ou de données concernant d'anciens utilisateurs, il est important de régulièrement faire le tri entre les données utiles et celles qui ne le sont plus, de manière à réduire l'impact du stockage.

La fin de vie

Les logiciels zombis

Même si un service numérique n'est plus utilisé, il va continuer à avoir des impacts résiduels sur l'environnement (à cause du stockage de données, de son hébergement et même des accès réseaux réguliers à d'autres services numériques nécessaires à son fonctionnement). Il est donc important de penser à traiter sa fin de vie. Pour ne pas perdre la connaissance produite, pensez à référencer son code dans la plateforme de sauvegarde du patrimoine numérique Software Heritage13.

La sécurisation

La sécurité comme facteur de résilience

De l'indisponibilité de votre service jusqu'au vol de données personnelles de vos utilisateurs en passant par l'installation de logiciels malveillants sur votre infrastructure, les conséquences d'une faille de sécurité peuvent être nombreuses. Les actions correctives, quand elles sont possibles, sont très coûteuses en temps et en énergie, et donc impactantes pour l'environnement. Le gaspillage est encore plus important si le service doit fermer suite à une attaque. La sécurité doit être une préoccupation présente à toutes les étapes du cycle de vie d'un service numérique, et en lister les bonnes pratiques nécessiterait une fiche concept à part entière. On peut néanmoins citer comme référence les recommandations de l'Agence Nationale de la Sécurité des Systèmes d'Information14 et cet exemple de Cloudflare sur le traitement des bots malveillants15.

Les impacts humains

Produire de manière responsable

Chacune de ces étapes va se répéter pendant toute la durée de vie du service numérique, et à chacune de ces étapes des humains collaborent. A travers leur quotidien, ces humains vont générer des impacts : ils vont par exemple utiliser du matériel informatique et se déplacer pour venir à leur bureau ou pour se réunir. Mettre en place une politique environnementale d'entreprise permettant de limiter ces impacts est crucial. Par exemple favoriser le télétravail pour les employés qui n'ont pas d'autre solution que la voiture pour venir au bureau va réduire les émissions carbones liées à leurs déplacements. Mettre en place une politique favorisant la prolongation de la durée de vie des ordinateurs et l'utilisation de matériel reconditionné va réduire l'impact de la consommation d'équipements. D'une manière générale, favorisez la mise en place d'une politique environnementale dans votre organisation : suppression des emballages jetables, plan de déplacement par le vélo, contrat d'énergie verte, mise à disposition de plats végétariens à la cantine...

Anticiper la transformation des usages

A travers son utilisation, votre service numérique peut générer de l'impact en provoquant une transformation des comportements. Par exemple, une application de réalité augmentée peut avoir été conçue dans l'objectif de donner envie d'aller randonner et de renouer avec la nature, mais aboutir à une incitation de ses utilisateurs à parcourir plus de kilomètres en voiture pour chasser des chimères virtuelles. Il est important de prendre conscience au plus tôt des comportements potentiellement induits par l'utilisation de votre futur service numérique, afin de réduire au maximum leurs impacts.

Ces quelques fondamentaux peuvent être complétés par :

  • Une liste plus exhaustive des bonnes pratiques d'écoconception web16 par GreenIt
  • Une fiche plus complète à destination des développeurs17 par EcoInfo
  • Un référentiel d'écoconception de services numériques piloté par la DINUM, le Ministère de la Transition Ecologique et l'ADEME18
  • Un guide de conception responsable de services numérique construit et mis à disposition par l'Institut du Numérique Responsable19
  • Un guide d'écoconception pour les designers20

A noter que ces bonnes pratiques d'écoconception sont à appliquer en plus de toutes les autres bonnes pratiques et méthodologies plus générales liées à la mise en place d'un service numérique, que nous ne détaillerons pas ici.


  1. Eviter-Réduire-Compenser (wikipedia) 

  2. Les Objectifs de Développement Durable. Nations Unies 

  3. Suja Thomas. Feature Adoption Report. Pendo, 2019. Disponible sur le site Pendo 

  4. Site web Réactif (Responsive Design) (wikipedia) 

  5. Low-tech 

  6. Le Règlement Général sur la Protection des Données. Cnil 

  7. Findable Accessible Interoperable Reusable (wikipedia) 

  8. Simon P. Zwart, The Ecological Impact of High-performance Computing in Astrophysics, 2020. Disponible sur ArXiv 

  9. Keep It Simple and Stupid (wikipedia) 

  10. Open source (wikipedia) 

  11. Label "Code of Conduct" 

  12. Indicateur d'efficacité énergétique (wikipedia) 

  13. Software Heritage 

  14. Sécuriser un site web, ANSSI 

  15. John Graham-Cumming. Cleaning up bad bots. Cloudflare, 23/09/2019. Disponible sur le site The Cloudflare Blog 

  16. Ecoconception web 

  17. Cyrille Bonamy, Cédric Boudinet, Laurent Bourgès, Karin Dassas, Laurent Lefèvre, et al.. Je code : les bonnes pratiques en éco-conception de service numérique à destination des développeurs de logiciels. 2020.(hal-03009741v2

  18. Le Référentiel général d'écoconception de services numériques (RGESN) 

  19. Le guide de référence de conception responsable de services numériques de l'INR 

  20. Le guide d’éco-conception de services numériques. Designers Ethiques