Negli ultimi anni, la crescente consapevolezza delle problematiche ambientali ha spinto il settore IT a ripensare l’intero ciclo di sviluppo del software, in modo da ridurne l’impatto ambientale. Per questo si parla oggi di green software engineering con cui si identifica un insieme di metodologie, strumenti e pratiche progettuali che, fin dalle fasi iniziali, mira a ottimizzare l’efficienza energetica delle applicazioni. L’obiettivo non è solo garantire performance e funzionalità elevate, ma anche di ridurre il consumo di risorse e l’emissione di CO₂ lungo tutto il ciclo di vita del software. 

Green software, mercato in crescita

Il settore Ict, dato oramai riconosciuto, è responsabile di una quota crescente delle emissioni globali. Le stime delle studio accademico Valutazione dell’Impronta Globale delle Emissioni Ict: Trend e Raccomandazioni – pubblicato dal Journal of Cleaner Production – indicano che tale quota potrebbe arrivare addirittura al 14% entro il 2040. L’analisi di mercato sul tema specifico del green software proposta da Market Statsville Group aggiunge che in questo contesto il mercato del sustainable (o green) software è previsto crescere a un tasso annuo composto dell’11,3% dal 2024 al 2033. Trend guidato dalla crescente attenzione alle pratiche sostenibili all’interno del ciclo di vita del software (Sdlc, Software Development Lifecycle Explained), che ora include strategie di green coding, ottimizzazione algoritmica per ridurre i cicli di calcolo e l’adozione di tecnologie che permettono di monitorare e gestire il carbon footprint digitale. A questi numeri si aggiunge l'”attenzione” da parte di addetti ai lavori e aziende. TrendFeedr, nel suo Green Software Report, segnala che i finanziamenti nel settore sono cresciuti del 269,58% negli ultimi anni, per un valore complessivo di circa 25,7 milioni di dollari raccolti e circa 120 aziende attive. In questo scenario, ridurre l’impatto ambientale del software diventa non solo un’opportunità per abbattere i costi operativi, ma anche un imperativo strategico per le aziende che devono conformarsi a normative sempre più stringenti e rispondere alle aspettative di investitori e consumatori in termini di sostenibilità. 

Sostenibilità software, come si misura

Tra gli aspetti fondamentali da considerare quando si parla di green software engineering c’è evidentemente la capacità di misurare in modo accurato il carbon footprint delle applicazioni. Le metriche adottate includono il consumo energetico per operazione, il tempo di esecuzione e il numero di richieste elaborate, elementi che possono essere tradotti in un’analisi del consumo elettrico e delle emissioni di CO₂.

Strumenti come profiler energetici e benchmark specifici consentono agli sviluppatori di individuare i colli di bottiglia e di intervenire con azioni mirate per esempio il refactoring del codice e l’ottimizzazione degli algoritmi. Adottare un approccio basato su metriche quantitative permette non solo di certificare i miglioramenti ambientali, ma anche di tradurli in risparmi economici, un aspetto apprezzato soprattutto da quei vertical che operano in settori ad alta intensità computazionale. Secondo un recente report di Accenture, la definizione di metriche di sostenibilità è poi fondamentale per monitorare in tempo reale l’efficienza energetica del software e per adottare soluzioni che permettano una riduzione del consumo di energia fino anche al 30%, in particolare nelle applicazioni critiche. E si sottolinea come l’adozione di tali metriche rappresenti un vantaggio competitivo per le aziende che operano in settori dove ogni percentuale di risparmio si traduce in significativi benefici economici e ambientali.

La trasparenza nei processi di sviluppo sostenibile è già parzialmente certificabile attraverso l’adozione di parametri e standard internazionali. In quest’ottica, Iso 14001 per la gestione ambientale e le linee guida della Green Software Foundation offrono un framework solido per misurare e certificare l’efficienza energetica delle applicazioni. Ancora più recenti sono gli standard Iso/Iec 21031:2024 Information technology per misurare la Software Carbon Intensity (Sci). Un punto importante. In proposito aggiungiamo solo che questa metrica, sviluppata dalla Green Software Foundation, vede anche Ntt Data tra gli Steering Member dal 2021, ed è stata ufficialmente riconosciuta come standard da marzo 2024. Consente una valutazione quantitativa delle emissioni di carbonio derivanti dal consumo energetico dell’esecuzione del software e dal ciclo di vita dell’hardware, e per questo rappresenta un passo avanti per consentire alle aziende di adeguare le modalità di sviluppo e spingere per l’adozione generalizzata di metodologie di sviluppo sostenibile anche nel mondo IT. Di fatto un riferimento anche per acquisire sensibilità sulle implicazioni ambientali del software, e supportare anche i professionisti del settore nello sviluppo di soluzioni più sostenibili.
Proprio Ntt Data sulla base dello standard ha sviluppo uno specifico strumento, il CO2 & Sci Calculator, che permette di monitorare l’impatto ambientale degli applicativi aziendali. Due le metriche utilizzate: il Ghg Protocol, per la contabilità delle emissioni di CO2 e lo stesso Sci per misurare il rate di emissioni del software rispetto ad un’unità di riferimento o unità funzionale (ad esempio, carbonio per singolo utente, per chiamata Api, per task di  ML, etc.).

L’obiettivo di tali certificazioni è quindi duplice: da un lato, fornire un riconoscimento esterno del rispetto dei parametri ambientali, e dall’altro, incentivare le aziende a migliorare continuamente le proprie performance in termini di sostenibilità. Gli analisti di Deloitte Consulting su questo punto evidenziano in particolare come “la conformità a questi standard non solo rafforza la reputazione aziendale, ma diventa anche un elemento chiave per attrarre investimenti e partnership strategiche, soprattutto in settori in cui l’impatto ambientale è strettamente monitorato”.

Le best practice per lo sviluppo a basso impatto

Per realizzare applicazioni green, è necessario ripensare l’intero processo di sviluppo, integrando nelle fasi di progettazione principi che promuovano l’efficienza energetica. Tra le best practice emergenti è importante partire da un’adeguata progettazione, dal design. Serve progettare l’architettura del software con l’obiettivo di ridurre il carico computazionale, attraverso pattern di sviluppo che minimizzino le operazioni superflue e ottimizzino l’uso delle risorse.

La piramide del Green Software
La piramide del Green Software (fonte: Green Software Foundation)

Il secondo passaggio riguarda l’ottimizzazione del codice, che si traduce nell’ottimizzo di algoritmi efficienti e strutture dati appropriate per ridurre il numero di cicli Cpu necessari. Un codice più snello e performante implica meno risorse computazionali e, di conseguenza, un minor consumo energetico. Serve quindi integrare tool di monitoraggio implementando strumenti che forniscano in tempo reale il quadro completo del consumo energetico, così da consentire interventi tempestivi per migliorare le prestazioni ambientali dell’applicazione.

Dal punto di vista architetturale, si rivelano di particolare aiuto, nell’idea di green software engineering, lo sviluppo containerizzato e i microservizi perché permettono di isolare i processi, ottimizzando la distribuzione del carico di lavoro e riducendo gli sprechi di risorse. Ultimo ma non ultimo è importante eliminare funzionalità non essenziali e mantenere l’applicazione il più possibile snella, focalizzandosi su ciò che è veramente necessario per il funzionamento e l’efficienza (il cosiddetto software bloat).

Sono tutte pratiche che, se integrate sin dalla fase di progettazione, non solo migliorano l’impatto ambientale del software, ma offrono anche benefici in termini di performance e riduzione dei costi operativi. Per questo è importante scegliere strumenti di sviluppo adeguati. Con una nota: nei casi in cui questi siano già predefiniti dalle scelte aziendali sarà sempre possibile ottimizzare economie green nel software. Per esempio Jnode, è un sistema di runtime open-source interamente scritto in Java, per questi obiettivi oramai da considerare quasi “tradizionale”. Ma Jnode rappresenta anche un ambiente minimalista che elimina l’overhead di sistemi operativi più complessi. Grazie alla sua architettura leggera, permette di eseguire applicazioni in modo più efficiente dal punto di vista energetico, offrendo una piattaforma ideale per sviluppatori che desiderano implementare soluzioni green. La sua natura modulare e il supporto per Java facilitano la scrittura di codice ottimizzato, riducendo il carico computazionale e, di conseguenza, il consumo energetico.

© RIPRODUZIONE RISERVATA

Condividi l'articolo: