Soutenable par conception

En français dans le texte

Ce document est le compte-rendu de mes notes prises durant la présentation de Yv Corbeil au BDX.IO édition 2022

Avant-propos

La présentation se construit autour d’une rapide introduction des principes de base, avant de s’axer sur deux études de cas, réalisées par l’entreprise employant le conférencier. Mes notes transcrivent les éléments d’accroche majeurs utilisés par le conférencier pour exposer son sujet ainsi que mes remarques et critiques des éléments présentés.

Idée générale

Concrètement, il s’agit de remettre en perspective nos besoins avec nos pratiques et nos usages. On l’oublie souvent mais le numérique a une réalité physique bien concrète qui prend la forme de centrales de production d’électricité, de réseaux d’acheminement, de filière industrielle produisant des micro-contrôleurs etc… Il est donc important de s’assurer que les bienfaits des services proposés par l’infrastructure ne soient pas éclipsés par l’ensemble de ces coûts “invisibles”.

Pour ce faire, il faut partir de l’activité en elle-même, pour être en mesure d’identifier les possibilités et les éléments incontournables que devra continuer de proposer le système. Par exemple, le serveur hébergeant le site local d’une mairie peut parfaitement être éteint la nuit entre 2h et 6h, ou du moins proposer une expérience fortement dégradée pouvant se limiter à une page statique de quelques octets indiquant les heures d’ouvertures. De nombreuses images d’illustration sont souvent présentes pour habiller une page internet sans nécessairement avoir une importance majeure dans le message transmis. Il est donc envisageable dans ce cas de faire en sorte que les caractéristiques de l’image la rende moins gourmande en énergie: réduire son espace de couleur et utiliser un format adapté (bitmap indexé), passer l’image en mode “dithered” etc…

Animal Crossing GCN

Autre exemple, un site vitrine, avec un contenu uniquement modifiés quelques fois par semaine ne nécessite pas d’opérer sur un mode dynamique en permanence, et de régénérer entièrement les pages à chaque nouvelle visite. Il est parfaitement envisageable de ne proposer qu’un site statique généré automatiquement à chaque édition du contenu (ce qui est normalement moins fréquent qu’une visite).

Un autre aspect important de l’éco-conception réside dans la notion de complexité logicielle. Plus un système est complexe, plus il repose sur un grand nombre de couches logiciel et de services externes différents plus il devient gourmand en énergie. L’éco-conception est fortement liée à la notion de simplicité dans l’architecture même du logiciel.

KISS[1] valide ce message

KISS Approves

La gouvernance à terme du système apparaît finalement comme un enjeu majeur: il est nécessaire de s’assurer que le système est soutenable de sa création à sa disparition. Chaque modification se doit donc d’être correctement pensée et réfléchie dans cette même idée de soutenabilité. Une seule unité logiciel mal pensée dans un environnement originalement soutenable peut dégrader l’entièreté du système, de la même manière que la sécurité d’un système informatique équivaut à la sécurité de son maillon le plus faible.

Mesurer

Cette idée de gouvernance amène à l’idée suivante: pour penser correctement, il faut y voir clair. Il est donc important de procéder à un certain nombre de tests pour s’assurer de la validité de l’approche responsable choisie.

Measure

  • Il est possible d’utiliser des indices comme l’écoindex pour avoir une première idée de l’impact écologique d’une partie de l’ensemble logiciel (la partie rendue à l’utilisateur uniquement)

  • Utiliser des mesures plus classiques comme le taux de rebond pour adapter une page. En plus de son aspect marketing, un fort taux de rebond associé à une page lourde correspond dans les faits à du gaspillage. Il sera donc d’autant plus nécessaire de retravailler la page qu’elle serait relativement peu utile dans son état courant.

  • Coté serveur la consommation des outils et la quantité de matériel mobilisé doivent aussi être pris en compte. Des outils simples comme le PUE peuvent être utilisés pour que le vent tourne. Il est également possible d’utiliser des approches innovantes (mais pas plus complexe techniquement) pour réduire l’impact énergétique des serveurs, comme par exemple les baigner dans des bains d’huile.

Convaincre

L’expérience de marque est posée de but en blanc comme étant un principe sur lequel il n’est pas possible de transiger. L’apparence “verte” et l’écoconception peuvent devenir des éléments à part entière de l’expérience de marque. L’éco-conception est donc exposée comme une possibilité pour les entreprises de se démarquer sur le marché, avant d’être présentée par ses caractéristiques intrinsèques. L’angle de l’expérience de marque semble être un levier évident pour séduire des décisionnaires qui pourraient se limiter à un simple calcul des coûts économiques (ce qui est un biais courant dans une approche basée sur l’idée de développement durable).

Primairement, l’exercice de l’éco-conception coûte en effet cher: il s’agit d’une approche radicale, nécessitant une refondation totale du système. Greffer un élément logiciel écoconçu sur un système pré-existant risque de ne pas présenter de résultats probant, voir pire, risque d’augmenter la complexité du système et donc de réduire sa maintenabilité.

Cette idée amène à un autre point, une fois les décideurs convaincus de l’intérêt commercial / économique d’une telle approche, il va être nécessaire de construire le système en milieu hostile: la majorité des parties prenantes, développeurs, designers, producteur de contenus etc… ont l’habitude d’évoluer et de travailler avec des système classiques rarement écoconçus, ce qui aura tendance à exacerber les problématiques de résistance au changement déjà compliquées à gérer en temps normal.

L’éco-conception se réalise donc aujourd’hui nécessairement en milieu hostile, et l’évangélisation fait partie intégrante de la démarche en elle-même. Il s’agit autant de faire évoluer un système vers une plus grande soutenabilité que de permettre aux parties prenantes de faire évoluer leur vision de leur pratique et leurs habitudes.

Exemples

Une grande partie de la conférence présente le résultat de l’approche proposée durant la conférence:

  • Avec d’une part le site de l’employeur de Yv, Niji → leur démarche est présentée ici.

  • Et d’autre part une de leurs réalisations pour l’un de leurs clients Dalkia.

Conclusion et critique

L’emploi du terme soutenable ici s’inscrit dans le cadre de l’idée de développement durable , et à ce titre ne remet pas en cause la croissance économique comme principe de base de la marche des choses. Il s’agit plutôt de trouver un nouveau moyen de performer sur le marché en développant un avantage comparatif vis à vis des autres entreprises, dans le sens où une conception moins prompt au gaspillage (parce c’est ce dont il s’agit) présente le double avantage de réduire les coûts d’exploitation d’une activité numérique, et de correspondre aux attentes grandissantes des populations des pays occidentaux vis à vis des questions relatives au climat.

Autre élément marquant, lorsqu’il a été demandé si Niji pouvait open-sourcer sa méthode ou ses outils, la question a rapidement été botté en touche avec la justification suivante: L’ouverture de la méthode la rendrait moins efficace en la transformant en une simple liste de tâches à réaliser pour rendre son site plus économe. Je ne suis pas certain de voir en quoi cette idée serait nécessairement opposée à une réflexion totale ou à une amélioration de la situation. C’est notamment ce point qui me fait penser qu’il s’agit ici plus d’une histoire de positionnement sur le marché que d’une réelle volonté de faire changer l’industrie numérique.

Néanmoins, une fois ces éléments pouvant paraître cyniques posés, il reste que placer ces questions au centre de la construction d’un ensemble technologique ne peut être que bénéfique. Cette approche a le mérite d’exister, tout en permettant de séduire une industrie pas toujours très soucieuse de son impact environnemental.

[1] Keep It Simple Stupid → Garde le simple et primaire