Você conhece a Engenharia de Software Sustentável?
Atualmente estamos enfrentando recordes de temperaturas mundial, em alguns países da Europa as temperaturas chegaram a quase 50°C. O aquecimento global é um tema e extrema importância e os efeitos das mudanças do clima já estão nos afetando. Mas o que nós Desenvolvedores podemos fazer em relação a isso?
Encontrei um treinamento no Microsoft Learn que aborda esse tema em profundidade.
Mas segue um breve resumo:
Primeiro temos os 6 princípios da engenharia de software sustentável que podemos usar para tomar decisões que tenham um impacto significativo na poluição por carbono:
Eficiência de carbono: criar aplicativos que sejam eficientes em termos de carbono
Eficiência de energia: criar aplicativos que sejam eficientes em termos de energia
Conscientização sobre carbono: criar aplicativos que tenham conscientização sobre carbono
Eficiência de hardware: criar aplicativos que sejam eficientes em termos de hardware
Medida: saber como medir as emissões de carbono.
Compromissos com o clima: definir o mecanismo exato de redução de carbono.
E temos as 2 filosofias da Engenharia de Software Sustentável:
Todos têm que fazer sua parte na solução do clima.
A sustentabilidade, por si só, é o bastante para justificar nosso trabalho.
Mas como implementar?
Imagine criar um software com "Modo ecológico de energia"
Geralmente esses modos são usados em alguns equipamentos do nosso dia-a-dia. Quando ativado, o desempenho muda à medida que eles consomem menos recursos (gás/eletricidade/carbono) para executar a mesma tarefa.
Podemos monitorar em tempo real a relação de eletricidade/carbono por região, alguns serviços fazem isso:
Carbon Intensity API: recurso gratuito para dados de intensidade de carbono no Reino Unido.
ElectricityMap: gratuito para uso não comercial por país/região, soluções Premium para acesso comercial e de vários países/regiões.
WattTime: gratuito para uma região da rede, soluções Premium para emissões marginais de várias redes e em tempo real.
A partir desse monitoramento seu software ou aplicativo, poderia tomar a decisão por modos ecológicos que, quando ativados, mudam o comportamento do aplicativo potencialmente de duas maneiras:
Inteligência: fornece informações aos usuários para a tomada de decisões informadas.
Automático: o aplicativo automaticamente toma decisões mais agressivas para reduzir as emissões de carbono.
Um exemplo disso seria um software de videoconferência. Dependendo da consumo de energia em relação a emissão de carbono, ele em vez de fazer a transmissão na qualidade mais alta possível, a demanda é moldada, reduzindo a qualidade do vídeo para priorizar o áudio.
OBS1: Fiz um breve resumo sobre o tema, recomendo o treinamento para ter um melhor entendimento sobre o assunto.
OBS2: Você já conhecia esse tema? Me conta o que achou.