L'écoconception, qu'est-ce que c'est ?

le 14 septembre 2017, par Bruno Thomas

Il y a un an environ, j’ai débuté un projet d’entreprise avec deux amis associés. Ils voulaient intégrer une démarche éco-responsable dans la construction d’un service en ligne pour classer automatiquement leurs mails dans des dossiers dématérialisés. Comme je n’étais pas réfractaire au principe de l’écologie, et à dire vrai que je n’en avais presque pas entendu parler pour l’IT, j’ai essayé de me renseigner sur l’écoconception logicielle et de l’appliquer pour l’architecture du site.

Pour faire court, dans mes recherches sur ce domaine je n’ai pas trouvé grand-chose. Je me suis alors demandé :

L’écoconception est-elle un sujet pour le développement logiciel ?

Afin d’apporter des éléments de réponse à cette question, j’ai proposé un sujet à l’Agile Open France et présenté une session au Lean IT Summit. Je fais à travers cet article un petit pas de côté afin de partager et diffuser mon expérience en matière d’écoconception logicielle. N’hésitez pas à participer et à me faire part de votre propre expérience en la matière.

Eco-truc, greenIT wot ?

Les termes d’informatique dans les nuages, de serverless architecture, plateformes dématérialisées, serveurs viruels, évoquent pour nous, utilisateurs des services IT/web, une forme d’évanescence, d’immatérialité des infrastructures informatiques. Cela évoque en tout cas quelque chose sans lien avec l’écologie. Et a fortiori avec l’écologie appliquée au monde du numérique.

GreenIT, éco-reponsabilité des services informatiques, écoconception, “conception responsable des services numériques”, derrière ces expressions se cachent en réalité deux enjeux majeurs relativement ignorés pour l’instant des acteurs du numérique :

  1. prendre conscience que les services numériques ont un impact sur l’environnement. Par ailleurs, les enjeux environnementaux sont globaux, comme internet. Il y a une certaine congruence entre les deux ;
  2. adopter une approche de rationalisation de l’usage des infrastructures informatiques, en intégrant une réflexion dès la conception des logiciels et du matériel

La prise en compte de ces deux enjeux est complexe car elle n’est pas uniquement liée à l’exploitation des machines (par exemple la consommation électrique des centres d’hébergement), mais elle doit aussi englober tout le cycle de vie des produits :

Cycle de vie produit

En regardant l’ensemble du cycle pour les produits manufacturés impliqués dans la mise en oeuvre et l’utilisation d’un service en ligne, nous réalisons l’étendue de l’impacts des technologies de l’information : production, acheminement, utilisation, recyclage des mobiles, serveurs, routeurs, ordinateurs portables, ordinateurs fixes, tablettes, switches, répéteurs, antennes, câbles, fibre optique, climatiseurs, onduleurs, etc.

“OK, ça représente 2% des émissions de CO2, occupons-nous des 98%” entendra-t-on

Oui mais ces 2% ne représentent que l’exploitation des infrastructures du web et cette statistique est statique.

La production des produits électroniques nécessite l’utilisation de matières premières non renouvelables et pour certaines en voie d’épuisement. L’OCDE donne encore 30 ans d’exploitation pour le cuivre, plomb, nickel, argent, étain, zinc. Cette production dégage également des déchets environnementaux et des gaz à effet de serre.

De plus, le recyclage est une gageure car de plus en plus de matières sont employées pour la miniaturisation, et beaucoup sont toxiques : mercure, cadnium, chrome, diphényls polybromés, PVC, baryum, beryllium, phosphore, etc. Pour certaines de ces matières, ce ne sont pas des quantités négligeables qui sont en jeu : en 2000 les équipements électroniques et informatiques utilisaient 22% de la consommation annuelle de mercure [1]. Par ailleurs, ces matières se retrouvent souvent traitées dans des pays en voie de développement dans des conditions plus que précaires.

Enfin, nous émettons des gaz à effet de serre par le biais de ces produits tout au long de leur cycle de vie. L’empreinte carbone des infrastructures du web était de 0,91 Giga tonnes d’équivalent CO2 (1,9% de l’empreinte mondiale) en 2011. Le Boston Consulting Group prévoit qu’elle sera de 1,27 Giga tonnes en 2020 (2,3% du global) soit une augmentation de près de 40% en 9 ans. Dans le rapport ci-dessus, il est expliqué (p22) que ces projections ne prennent pas en compte les impacts incertains du recyclage. Je n’y ai pas trouvé non plus de références à l’explosion des objets connectés qui vont passer de 6 milliards en 2016 à 20 milliards en 2020 [2].

Alors que les constructeurs d’infrastructures (centre serveurs, réseaux mobiles, réseau mondial) ont déjà pris des mesures pour améliorer leur efficacité écologique (en général pour des raisons économiques), le monde du logiciel ne semble pas beaucoup concerné.

Pourtant à la lumière de ces cycles de vie, en tant que développeur je m’aperçois que mes décisions techniques ne sont pas neutres : quelles sont les conséquences pour les internautes si je choisis d’utiliser une présentation “flexbox” ? Quelle va être la différence de consommation du serveur si je fais du polling toutes les secondes sur une valeur ? Que se passe-t-il si le navigateur de l’internaute n’exécute pas le javascript ? Quelle est la différence en performance et en consommation si je fais un service multithreadé ou asynchrone ? Quelle va être la part de charge et consommation si mon service est gratuit, et que je fais du big data/intelligence artificielle pour vendre de la publicité de manière profitable ? Quelle différence si je fais du payant sans exploitation de données ? Quelle part du framework lambda j’utilise ? Puis-je m’en passer ?

Bref, si je souhaite participer à l’efficacité écologique, cela implique :

  • une réflexion sur mon service et son modèle économique
  • une sobriété du nombre de fonctions implémentées
  • une simplicité de développement du code informatique
  • des choix technologiques adaptés
  • la lutte contre l’obsolescence programmée des versions logicielles

et concerne bien plus que le périmètre des équipes de développement. Cependant, ces dernières peuvent apporter leurs éclairages techniques sur la manière dont les machines vont exécuter leur code.

Nous continuerons cet article avec un éclairage sur le dévelopement logiciel et le software craftmanship.

  1. la face cachée du numérique - Fabrice Flipo, Michelle Dobré et Marion Michot
  2. Gartner : http://www.gartner.com/newsroom/id/3165317

L'événementiel c'est écologique

le 30 décembre 2016, par Bruno Thomas

Pour faire suite à une mini série sur l’écoconception, je voulais partager un remaniement récent de transformation d’un polling web en push serveur (avec une websocket), et les conséquences en terme d’utilisation de bande passante.

La facilitation graphique dans la revue et le planning du sprint

le 13 décembre 2016, par David Boissier

L’équipe dans laquelle je suis a adopté le cadre SCRUM pour son mode de fonctionnement. Les rituels classiques tels que la réunion du matin et l’indéboulonnable trio revue/rétrospective/planning est appliqué scrupuleusement.

Une migration vers ES6 et un pas de plus en écoconception

le 6 décembre 2016, par Bruno Thomas

Actuellement je travaille sur un site web en mode SaaS pour travailleurs indépendants et professions libérales. Comme le javascript n’était pas ma tasse de thé, j’avais négligé cet aspect, en accumulant le minimum de code (backbone/semantic-ui) dans de petits fichiers qui commençaient à grossir. Conscient de cette dette technique qui s’y accumulait, il y a une dixaine de jours je suis allé aux Javascript Les 10 Doigts Dedans (ou JSLDD pour les intimes) afin de rencontrer des férus du JS qui pourraient me faire aimer un peu mieux le JS et prendre soin de cet aspect incontournable du site.

Utiliser docker-compose avec le réseau docker

le 1 octobre 2016, par Bruno Thomas

Depuis la version 1.6 de docker-compose et la version 1.10 de docker, une gestion nouvelle du réseau dans les conteneurs docker a été implémentée. Quand vous avez des dépendances entre plusieurs conteneurs, plus besoin de faire des liens (links) entre eux. Pour les environnements de dévelopement c’est très pratique, notamment pour le problème des liens bidirectionnels.

Installer une chaîne SSL avec dovecot

le 22 juillet 2016, par Bruno Thomas

Nous avons entamé avec quelques amis développeurs notre cure de dégooglelisation il y a quelques années. Pour le mail, nous avons choisi, aussi pour notre apprentissage, de monter notre serveur postfix/dovecot. Pour ceux que ça intéresse, mais qui ne veulent pas mettre les mains dans le cambouis, il y a des infos chez Framasoft.

Une équipe agile, c'est comme l'équipe du Dr House

le 18 avril 2016, par Jean-Philippe Caruana

L’autre soir, je regardais un épisode de Dr House (oui, ça arrive) et j’ai été frappé par la similitude entre le fonctionnement de son équipe et celui d’une équipe agile.

Le A3 comme outil de communication avec le management

le 12 avril 2016, par Bruno Thomas

Il y a peu encore, je travaillais pour un groupe de télécom qui commercialise une messagerie instantanée d’entreprise permettant aux internautes de communiquer avec le service client depuis un site web. Il comprend une distribution des chats dans des files d’attentes, des outils d’aide pour les conseillers et des outils de supervision/administration.