Green-Software-Foundation / hack

Carbon Hack 24 - The annual hackathon from the Green Software Foundation
https://grnsft.org/hack/github
15 stars 1 forks source link

Mitigating Harmful Designs at the Source #117

Open sgiori11 opened 5 months ago

sgiori11 commented 5 months ago

Prize category

Best Contribution to the Framework

Overview

We propose developing a Figma plugin (or a regular plugin, if that's not allowed) that uses Impact Framework to provide environmental impact assessments to UI/UX designers during the design phase. The goal is to inform designers of the potential carbon footprint of their designs before those designs get shipped, while also highlighting any deceptive design patterns like infinite scroll or default newsletter opt-ins.

I think we'll need to create some type of 'carbon impact multiplier' to quantify the additional environmental costs of addictive design patterns.

The reinforcement loop of addictive designs --> higher carbon outputs --> poorer mental health outcomes could also be mentioned, although we're not sure how to include this.

Questions to be answered

Have you got a project team yet?

Yes and we are now complete :)

Project team

@sgiori11 @joakim-andersson

Terms of Participation

jawache commented 5 months ago

Hi @sgiori11, let me try to answer some of your questions:

I'd start off simply with writing just a manifest file which represents some sample usage of an application, say it's a web app and a pipeline that estimates the carbon up front. Given this is the design stage you're not measuring something that exists but something that might exist, maybe that could be something like a typical basic application with 24 hours of usage at 100 users per minute or something like that. The closest manifest file we have to that is the co2js based one, it estimates emissions based of network traffic, co2js was designed to measure emissions of a website and assumes most of the emissions are from the data the browser loads, you could use that as a baseline: https://github.com/Green-Software-Foundation/if/blob/main/examples/manifests/co2js.yml

Then create a plugin like you propose which adjust the observations in such a way that represents the design patterns, like you suggest it could be something as simple as if infinite scroll add 100%, if popup, add 50%.

I think given that it's a coefficient style plugin you could argue that you take an input of carbon and just multiply it by a coefficient and output an adjusted carbon value again.

The plugin might be configured to take as input some params which it then uses to adjust the carbon value, like so:

my-ux-pattern-plugin:
  global-config:
    infinate-scroll: true
    has-popup: false
    parameter-to-adjust: carbon
    ...

Once you've got a manifest file and a plugin that adjust the numbers according to the configuration in order to integrate into figma I might suggest something in figma which then generates a manifest file with you plugin configured with the settings configured, run it locally, extract out the carbon valye from the output manifest file and then show that to the user.

Even if you just managed to create a manifest file and some learnings about how to adjust the carbon it computes based on addictive design patterns and wrote that up, it could be by itself a great case study to submit as a best content submission so you'll have options if you don't get as far as writing a plugin.

This one I'm really not sure about, you might need to dive into reading some papers on the subject if there are any, having some research to back up the coefficient choices would be important. There are two books that might help and this website https://sustainablewebdesign.org/guideline-categories/user-experience-design/ and the sustainable web design book by tom greenwood as well as the older but still relevant designing for sustainability by tom frick.

Hope the above helps and good luck!

tofols commented 5 months ago

Hello,

I find your project interesting and would like to part of the team.

I would also like to add that I am a newbie self-trained UX Writer.

Thanks for your consideration.

barronbytes commented 5 months ago

Hi all. I would like to join this project if you still need members, and contribute towards the information gathering and analysis of data helpful towards building the desired plugin. I am a high school math teacher though and my technical skills are limited to Java I have picked up on my own. However, I would like to apply myself in any other way as well to help.

sgiori11 commented 5 months ago

Hi both! Apologies, I couldn't figure out how to remove the recruiting label :( We found our final teammate yesterday, but thanks so much for lending a hand ♥️

sgiori11 commented 5 months ago

I think given that it's a coefficient style plugin you could argue that you take an input of carbon and just multiply it by a coefficient and output an adjusted carbon value again.

The plugin might be configured to take as input some params which it then uses to adjust the carbon value, like so:

my-ux-pattern-plugin:
  global-config:
    infinate-scroll: true
    has-popup: false
    parameter-to-adjust: carbon
    ...

This is extremely helpful, thank you!!

We kept getting caught up in the fact that there are no current models that measure emissions for addictive or deceptive UI/UX patterns. So I think that is Step 1: Create a formula that can modify a baseline CO2 emission output based on the presence/frequency of certain UI/UX patterns. This will involve lots of research and reading 🤓

Since Figma plugins operate in a sandbox, I don't think I can run the manifest file from within the plugin without setting up an external server. Could it make sense to run the IF CO2js plugin on my own machine, calculate baseline CO2 outputs for a "basic" application in some set of countries, and then use those pre-determined values in the Figma plugin? (assuming we have time at the end to build this)