[New BP] Fixer un budget carbone pour chaque scénario utilisateur #159
-
Cette bonne pratique s'inspire d'une pratique de Web Performance, le budget de performance (détail de la pratique sur MDN). L'idée est de fixer dès la conception un volume d'émissions de CO2 permis pour une fonctionnalité donnée, de la mesurer en continu (dans les outils d'intégration continue), et de refuser un changement de code qui dépasse ce budget. L'usage d'un outil de Robotic Process Automation (comme Cypress.io ou Playwright) permet de simuler un scénario utilisateur sur un navigateur web. Seule une "assurance carbone" automatisée comme celle-là évitera des dérives au cours du temps. Elle s'apparente à ce que les développeurs cont déjà sur la sécurité, la performance, la non-régression, la qualité du code. La performance a ses indicateurs (Core Web Vitals) et ses champions (Google). L'empreinte carbone, pour l'instance, n'a pas encore cela. Il faudra, immanquablement, lister des outils de mesure de ces émissions. Le guide vivra plusieurs années en ne pourra lister les outils sortis après lui, mais il ne peut pas, à mon sens, laisser au lecteur le travail de faire le tri dans les outils existants. Je suis évidemment biaisé pour proposer des éléments dans cette liste (ma société en édite un, greenframe), ma contribution ici est donc surtout une invitation à discuter. Voici les outils que je suggère de faire figurer - et ne pas figurer - dans cette BP:
Et je parle de budget carbone, mais il faudrait aussi une BP pour les budgets eau, mais là il n'existe tout simplement aucun outil. |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 8 replies
-
Je suis d'accord sur le fait d'indiquer qu'il faut monitorer néanmoins, il est nécessaire de rappeler aux utilisateurs du guide qu'un outil ce choisi en fonction : de son objectif, de son périmètre et de son UF mais surtout, le risque que j'y vois ici, des méthodes de caractérisations et des données de premiers et surtout de second plan. Cela nécessiterait de rappeler une deuxième fois la nécessité de ne pas communiquer sur ses résultats d'acv simplifiée ce qui va, de fait, être une nouvelle tentation. |
Beta Was this translation helpful? Give feedback.
-
Je rejoins plutôt la remarque de @Trankilloman, nous sommes plus sur de la méthodologie finalement. Je l'intégrerais donc bien à la page de l'issue #138 |
Beta Was this translation helpful? Give feedback.
-
Si besoin d'aide, je suis là pour également travailler dessus |
Beta Was this translation helpful? Give feedback.
-
@Trankilloman @fzaninotto J'ai eu un point rapide ce soir et je confirme qu'on fera tout pour embarquer cette section dans le livre ;-) |
Beta Was this translation helpful? Give feedback.
-
Je ne sais pas exactement de quoi cette section doit traiter. Pour éviter de parler dans le vide, j'ai fait un premier jet. Dites-moi ce que vous en pensez. Réduire l’empreinte écologique d’un service numériqueL’essentiel de l’empreinte écologique d’un service numérique se décide lors de la conception. Néanmoins, une fois le service mis en production, il est encore possible de réduire son impact environnemental. Quelle démarche adopter pour cela ? Les bonnes pratiques listées dans cet ouvrage sont issues d’un travail collaboratif entre des experts de ce domaine. Vont-elles réduire significativement les émissions de votre propre site ? Cela dépend de nombreux facteurs, et il n’y a pas de réponse simple. C’est pourquoi la démarche à suivre pour réduire son impact n’est pas d’appliquer les bonnes pratiques une à une, mais d’abord de faire un premier bilan sur cet impact, de prioriser les bonnes pratiques, de mesurer leur efficacité, et d’itérer. C’est une démarche classique d’amélioration continue. Faire un premier bilanIl faut commencer par mesurer l’impact de votre site. Et malheureusement, c’est plus facile à dire qu’à faire. Il existe des méthodes et des outils pour mesurer une partie de cet impact, mais aucune ne permet de le quantifier totalement en continu. Car l’impact, rappelons-le, est multiple :
L’approche la plus globale consiste à effectuer une Analyse du Cycle de Vie (ACV), audit normalisé de l’impact environnemental d’un produit (ISO 14 044). Ce genre d’audit, effectué habituellement par un cabinet spécialisé, prend plusieurs semaines et coûte cher – d’autant plus cher que votre site a de nombreuses ramifications et une architecture complexe. Il est néanmoins le seul apte à donner un résultat « officiel », que l’on peut inclure par exemple dans un rapport RSE. Mais son caractère ponctuel rend un tel audit peu pratique dans une démarche de réduction de son impact. En effet, comment valider ou invalider une bonne pratique si l’impact n’est mesuré qu’une fois par an ? Voici une liste d’outils qui permettent de mesurer plus rapidement une partie de l’impact environnemental, et qui peuvent êtres utiles dans une démarche d’amélioration continue.
Deux services supplémentaires proposent des services similaires mais sont déconseillés, leur méthodologie ou leur modèle étant très sujets à caution :
D’autres services ne mesurent pas directement l’empreinte environnementale, mais la performance perçue par le client. Cet indicateur reflète indirectement l’influence d’un service sur le renouvellement des terminaux, puisqu’un utilisateur aura d’autant plus envie de changer de terminal que le service qu’il utilise est peu performant. Ces outils sont légion, et ce guide ne peut en citer qu’une poignée :
Tous ces outils ne mesurent que l’impact de l’utilisation des services, et pas de leur fabrication ni l’impact de la fabrication des terminaux qui sont nécessaires pour les utiliser. Or une part prépondérante de l’impact environnemental d’un service est lié à la fabrication des équipements nécessaires à leur utilisation. Pour estimer cet impact, testez la compatibilité de votre service avec des appareils et des systèmes anciens. Le score de votre service peut alors s’exprimer en années de rétro-compatibilité, par exemple : « mon service tourne sur 90% des appareils de plus de 7 ans ». Il existe peu d’outils permettant d’automatiser ce genre de test.
Au moment de la lecture de ces lignes, il existera sans doute d’autres services venant compléter la liste ci-dessus. N’hésitez pas à les tester, en vérifiant systématiquement les bases scientifiques de leur modèle. Prioriser les bonnes pratiquesEn général, l’impact environnemental est décroissant dans l’ordre suivant :
L’ordre de cette liste varie selon chaque site, son profil d’utilisation (B2B/B2C, pour mobile / pour desktop, trafic important / trafic épisodique), et son niveau de maturité. Un premier bilan permet de détecter quelles composantes de votre site contribuent le plus à l’impact carbone. Selon l’ordre que vous aurez déterminé pour votre site, vous pourrez prioriser les bonnes pratiques à mettre en œuvre. Ainsi, si l’on prend en compte l’ordre de base listé ci-dessus, les bonnes pratiques visant à réduire le temps d’utilisation des terminaux (comme les pratiques d’optimisation des JavaScript) sont à mettre en œuvre avant celles d’optimisation des traitements serveur. Il résultera de cette phase une liste ordonnée pour votre contexte de bonnes pratiques à tester. Mesurer l’efficacitéLa méthode scientifique permet d’apporter une réponse claire à la question « Est-ce que telle ou telle bonne pratique fonctionne pour moi ? ». La démarche est la suivante :
Les outils et services énumérés précédemment sont donc indispensables pour piloter une démarche de réduction de l’empreinte environnementale. ItérerL’optimisation de la performance environnementale d’un service numérique est un processus long et progressif. Certaines Bonnes Pratiques amèneront des résultats spectaculaires, d’autres n’auront pas d’effet perceptible. Certaines Bonnes Pratiques fonctionneront sur une page mais pas d’autres. Certaines bonnes pratiques pourront même avoir un effet négatif. Un chantier de réduction de l’empreinte environnementale se déroule donc en général sur une durée longue, de plusieurs semaines à plusieurs mois. Ce chantier est divisé en petite tâches visant à tester une Bonne Pratique, ou à la généraliser. Enfin, certains Bonnes Pratiques peuvent ne pas avoir d’effet mesurable en début de chantier (parce qu’une grosse partie de l’empreinte est générée ailleurs) et devenir pertinente une fois les optimisations majeures déjà mises en place. Il est donc important de revisiter les bonnes pratiques régulièrement. De l’audit à l’assurance environnementaleLa plupart des services numériques évoluent constamment. Des équipes de développement s’attachent en permanence à ajouter de nouvelles fonctionnalités, ou à corriger des bugs. Dans ce contexte, l’effet d’un chantier ponctuel de réduction de l’empreinte environnementale s’estompe rapidement avec le temps. En effet malgré une optimisation faite en début d’année, le code d’un développeur en fin d’année peut annuler l’optimisation. Pour adresser ce risque inhérent au mode de développement en continu des services numériques, une solution existe : l’Intégration Continue. En effectuant une mesure de l’empreinte environnementale du service à chaque changement d’un développeur, et en définissant une limite haute pour cette empreinte, on peut garantir que l’empreinte n’augmentera pas après le chantier d’optimisation. Cela revient à passer d’une démarche d’audit environnementale à une démarche d’assurance environnementale, comme cela se fait couramment pour la sécurité, la performance, la maintenabilité, etc. Le principe est le suivant :
|
Beta Was this translation helpful? Give feedback.
Je suis d'accord sur le fait d'indiquer qu'il faut monitorer néanmoins, il est nécessaire de rappeler aux utilisateurs du guide qu'un outil ce choisi en fonction : de son objectif, de son périmètre et de son UF mais surtout, le risque que j'y vois ici, des méthodes de caractérisations et des données de premiers et surtout de second plan. Cela nécessiterait de rappeler une deuxième fois la nécessité de ne pas communiquer sur ses résultats d'acv simplifiée ce qui va, de fait, être une nouvelle tentation.
Concernant le fait de donner des quotas sur des fonctionnalités spécifique, pourquoi pas mais il faudrait un échantillon d'exemple suffisamment grand pour donner quelques chose de significa…