De druk op IT-afdelingen om bij te dragen aan klimaatdoelstellingen neemt snel toe. Terwijl digitale technologieën cruciaal zijn voor verduurzaming in sectoren als energie, mobiliteit en industrie, draagt de IT-sector zelf ook stevig bij aan de uitstoot van broeikasgassen. Naar schatting is de mondiale ICT-sector inmiddels verantwoordelijk voor 2 tot 7 procent van de totale uitstoot, een aandeel dat kan oplopen tot 14 procent in 2040. De groei van AI, blockchain en metaverse-achtige toepassingen doet die trend versnellen.
Een recent paper van Accenture Labs stelt dat software zelf een belangrijker rol speelt in dit emissieprobleem dan doorgaans wordt erkend. Volgens de onderzoekers komt dit vooral doordat softwareontwikkeling zelden wordt beoordeeld op energie-efficiëntie. Ze pleiten daarom voor de opbouw van een gestructureerde kennisbasis met ‘sustainability weaknesses’ — codepatronen die tot onnodig energieverbruik leiden — als fundament voor tools, opleidingen en certificeringen rond duurzame software.
Wat zijn sustainability weaknesses?
Een sustainability weakness is volgens de auteurs een stukje code dat significant meer energie verbruikt dan een energie-efficiënt alternatief, zonder functioneel voordeel. Denk aan het onnodig gebruik van objecten in een loop, of aan methodes die herhaaldelijk dure operaties uitvoeren waar optimalisaties mogelijk zijn. Zulke patronen leiden vaak tot langere verwerkingstijd, hoger geheugengebruik en indirect tot hogere CO₂-uitstoot via de achterliggende infrastructuur.
Het probleem is dat deze inefficiënties vaak onzichtbaar blijven. Er zijn nauwelijks tools die ontwikkelaars automatisch wijzen op dit soort duurzaamheidsproblemen in hun code. En waar wel tools zijn, ontbreekt het aan een uniforme set definities of standaarden, zoals die er wél bestaan voor beveiliging (bijv. OWASP) of performance (bijv. ISO-5055).
CWE als uitgangspunt
Accenture Labs stelt voor om aan te haken bij bestaande kennisbanken voor softwarekwaliteit, met name de Common Weakness Enumeration (CWE). Deze lijst, met ruim 900 veelvoorkomende programmeerfouten, is een standaard in de wereld van softwarebeveiliging en kwaliteit. De gedachte: als sommige van deze zwakheden ook aantoonbaar meer energie verbruiken dan een efficiënter alternatief, dan kunnen ze hergeclassificeerd worden als sustainability weakness.
Om die hypothese te testen, deden de onderzoekers een eerste experimentele analyse van twee bestaande CWE-zwakheden, uitgevoerd op een Amazon EC2-instance.
Twee voorbeelden: wanneer is iets écht een duurzaamheidsprobleem?
De eerste case betrof CWE-1046: het onnodig aanmaken van immutable strings binnen een loop. In Java leidt dit tot herhaald aanmaken van string-objecten, wat zwaar is voor geheugen en CPU. Vervangen door een StringBuilder of StringBuffer scheelde 75% in energieverbruik. Deze zwakte werd dus geclassificeerd als een sustainability weakness.
De tweede case ging over CWE-595: het vergelijken van objectreferenties in plaats van de inhoud van objecten (bijv. met == in plaats van .equals()). Verrassend genoeg bleek de geoptimaliseerde versie in deze test juist méér energie te verbruiken, met een stijging van ruim 300%. Dit suggereert dat niet elke zwakte die functioneel belangrijk is (zoals voor betrouwbaarheid) ook relevant is vanuit duurzaamheidsoogpunt.
De noodzaak van een systematische aanpak
Op basis van deze eerste resultaten pleiten de auteurs voor een breed gedragen, systematische aanpak om sustainability weaknesses in kaart te brengen. Ze stellen vier stappen voor:
- Analyseframework: een standaard manier om codefragmenten te testen op energieverbruik, onder gelijke omstandigheden.
- Labelregels: duidelijke criteria voor wanneer een zwakte als duurzaamheidsprobleem mag worden gelabeld.
- Repository: een openbare databank met sustainability weaknesses en hun empirisch gemeten energie-impact.
- Prioritering: een systeem om de ernst van een zwakte te rangschikken op basis van impact en frequentie.
Deze infrastructuur moet uiteindelijk leiden tot beter geautomatiseerde tooling (denk aan statische codeanalyse), beter onderwijs voor softwareontwikkelaars, en mogelijk ook nieuwe certificeringsmethoden voor duurzame software.
Wat betekent dit voor IT-managers?
Voor IT-managers betekent dit dat duurzaamheid in softwareontwikkeling op korte termijn een nieuw kwaliteitscriterium wordt. In aanbestedingen, audits en compliance-trajecten zal vaker gevraagd worden naar bewijs van energie-efficiëntie, niet alleen op het niveau van hardware of infrastructuur, maar ook binnen de softwarelaag.
Daarbij kunnen IT-afdelingen anticiperen door:
- Inzet van tools zoals SonarQube uit te breiden met duurzaamheidscriteria
- Ontwikkelteams bewust te maken van inefficiënte codepatronen
- Duurzaamheidsanalyses onderdeel te maken van code-reviews en CI/CD-processen
- Te investeren in research rond energy-aware programming, met name bij gebruik van AI, blockchain of andere rekenintensieve toepassingen
Duurzaamheid als kwaliteitsaspect
Het paper van Accenture Labs laat zien dat duurzaamheid in softwareontwikkeling meetbaar en structureel kan worden aangepakt. Maar dan is wel een brede, gemeenschappelijke inspanning nodig van softwareontwikkelaars, toolbouwers, standaardisatie-organisaties en IT-managers. Alleen dan ontstaat een robuuste basis waarop duurzame softwarepraktijken kunnen groeien.
Zoals de auteurs benadrukken: niet elke programmeerfout is een duurzaamheidsprobleem. Maar áls dat wel het geval is, moet de IT-sector in staat zijn om dat snel en onderbouwd te herkennen — en op te lossen.
0 reacties