Development

Software-ontwikkeling
Duurzaamheid

Hoe maak je software duurzamer?

Ontwikkelaars moeten met meer dan alleen de software zelf rekening houden.

27 oktober 2022

Ontwikkelaars moeten met meer dan alleen de software zelf rekening houden.

Duurzaamheid en energie-efficiëntie hebben de laatste jaren steeds meer aandacht gekregen. Software wordt echter nog vaak over het hoofd gezien, terwijl ook dit een energievreter kan zijn. Maar er kunnen maatregelen genomen worden om software zelf én het ontwikkelproces er omheen duurzamer te maken.

In een steeds verder digitaliserende samenleving speelt software ook een steeds grotere rol. Niet alleen als het gaat om werken op een laptop; software zit tegenwoordig in bijna alles. “Je denkt al snel aan de klassieke software, maar het zit ook in de thermostaat en slimme lampen. Door die software anders te programmeren, krijg je ook ander energiegedrag”, verklaart Bernard van Gastel, die promoveerde op de duurzaamheid van software en tegenwoordig universitair docent Duurzame Digitalisering bij informatica aan de Radboud Universiteit is.

Volgens hem is er nog veel winst te behalen bij de duurzaamheid van al die software – dus ook de klassieke software op laptops en servers. Software kan namelijk flinke impact hebben. Als voorbeeld noemt hij Android: “Die hadden op een gegeven moment een paar veranderingen doorgevoerd, waardoor dezelfde telefoon in plaats van 200 uur stand-bytijd nu 533 uur had. Alleen via een softwarewijziging kan de stand-bytijd meer dan verdubbeld worden. Dat zijn spectaculaire getallen en echt significant”, meent hij. Niet alleen omdat er zo minder energie nodig is voor het apparaat, maar ook omdat batterijen daardoor in de toekomst mogelijk kleiner kunnen worden, waardoor er ook weer minder bijzondere aardmetalen nodig zijn.

Eisen stellen en duurzaamheidscoaches

Wie echt aan de slag wil om software duurzamer te maken, moet daar al helemaal aan het begin van het ontwikkelproces mee bezig zijn, vertelt John Christiaanse, senior consultant bij Capgemini en betrokken bij een groep binnen Capgemini die het bewustzijn over duurzaamheid van software bij collega’s en klanten probeert te vergroten. “Strikt genomen moet je over drie assen denken. Je kan met de software duurzame doelen proberen te bereiken, je zal de software zelf duurzaam moeten maken - waarbij je aan de hand van de ISO 25000-norm niet-functionele eisen opstelt - en als laatste: je maakt het op een duurzame wijze. Wat betreft de kwaliteitscriteria zal men dus voor de  ISO 25000-standaard goed moet gaan scoren.”

Die standaard is een framework om de productkwaliteit van software te evalueren. Probleem is echter dat het framework zich op slechts één eigenschap per keer richt en niet op de consequenties na het realiseren van zo’n eigenschap. “Dus dan zeg je bijvoorbeeld dat je de onderhoudbaarheid zo goed mogelijk wil maken. Maar als je daarvoor heel veel machines nodig hebt met heel veel rekencapaciteit en grondstoffen, dan ga je een andere factor weer zwaarder belasten. Dus je moet naar meerdere factoren kijken als je één kwaliteitseis gaat invullen.” Daarom werd de term ‘greenability’ toegevoegd aan de eisen, zodat afgedwongen wordt dat er ook naar andere consequenties wordt gekeken. Want duurzaamheid is niet alleen de CO2-voetafdruk verminderen maar ook letten op milieuconsequenties of een mogelijke ongelukkige sociale impact voorkomen. Wie zijn software duurzaam wil maken, kan daar ook mee aan de slag door het brede palet van duurzaamheid te beschouwen.

Daarnaast is het volgens Christiaanse belangrijk dat er gekeken wordt naar de impact die software heeft op de wereld. “Dat gaat in drie gradaties. De eerste graad is de impact van het daadwerkelijk gebruiken van software. Als jij je telefoon gebruikt, gebruik je ook stroom. Dat is al impact. De tweede graad is het gebruik van de functionaliteit, zoals het bekijken van foto’s op je smartphone en met mensen chatten. De derde graad is het lange termijneffect van functionaliteit. Bij Facebook zag je bijvoorbeeld dat de via Facebook verzamelde data op de lange termijn gebruikt werden door Cambridge Analytica om het Brexit-referendum te beïnvloeden. Maar was dat het effect dat je wilde? Dit soort effecten zie je niet direct, maar als je er bewust over nadenkt, kun je ze misschien wel ontdekken. En dat soort effecten moet je eigenlijk ook in de definitiefase meenemen.”

Maar ook later kunnen natuurlijk nog nieuwe mogelijkheden naar boven komen. “Het zou mooi zijn als je het onderwerp duurzaamheid laat meelopen in je agile proces. Zet bijvoorbeeld eens een duurzaamheidscoach naast je mensen, die specifiek dit volgt”, aldus Christiaanse. “Dat is een hulpmiddel waarmee je kunt zorgen dat het onderwerp versneld wordt opgepikt èn dat je zo de software daadwerkelijk duurzaam produceert.”

De hele levensloop speelt mee

Wie echt duurzaam wil omspringen met zijn software, kijkt niet dan ook alleen naar de ontwikkeling of het gebruik van software, maar ook naar de gehele levensloop. Christiaanse: “Software is een product, net zoals een pakje boter een product is. Dat begint bij het ontwerp, dan de bouw, dan het testen, de promotie naar het volgende stadium, de installatie op de productieomgeving, de ingebruikname, het onderhoud en het beheer. En als de software eenmaal verouderd is, heb je nog de lange bewaarfase en uiteindelijk de vernietigingsfase. Al die stadia hebben hun invloed.”

Zo kan er kritisch gekeken worden naar het doorzetten van software naar een volgende fase, zoals naar een productie-omgeving. “Iedere keer dat je een promotie doet, moet je gaan packagen. Kun je die packages niet kleiner maken? En moet je wel iedere keer de promotie van de ontwikkelfase naar de test- of acceptatiefase maken? Dat kost veel tijd en energie, dus daar kun je best eens over nadenken.”

Dat geldt net zo goed voor het onderhoud van software, vindt Christaanse. “Als je je software zo in elkaar steekt dat het steeds een zoekplaatje is, dan kost dat tijd en processorkracht, maar ook hoofdbrekens van mensen.” En ook beheer kan soms beter: “De functioneel beheerders krijgen niet altijd een handzame beheerdersomgeving. Die zijn dan genoodzaakt tot omslachtige werkzaamheden. Daar kun je over nadenken, zodat dat vriendelijker en efficiënter wordt.”

Software en hardware werken samen

Maar wat zijn nu specifieke zaken waar je op kunt letten als je software duurzamer wilt laten werken? Daar zit nog best wat laaghangend fruit bij, stelt Van Gastel. “Je kunt je software anders programmeren. Als een e-mailsysteem bijvoorbeeld drie keer per minuut controleert of je een nieuwe e-mail hebt en daarvoor de verbinding steeds opnieuw moet opzetten en afbreken, kost dat best veel energie. Het is veel efficiënter om de lijn gewoon open te houden.” Eenzelfde truc kan ingezet worden voor databases waarin gecheckt wordt of er veranderingen zijn. “De lijn openhouden kost echt bijna niets.”

Het is echter niet alleen de software zelf die duurzamer gemaakt kan worden. Alle software draait op hardware en de twee staan dus met elkaar in verbinding. “Wat je vaak hoort is: ‘De software draait op een server in een datacenter met groene energie, dus dat is dan duurzaam.’ Maar dat is flauwekul. Je kunt wel zeggen dat je groene stroom gebruikt, maar een datacenter zelf is niet recyclebaar gebouwd. Computers en servers zijn niet recyclebaar ontworpen. Ze zijn zodanig ontworpen dat je allerlei essentiële mineralen nodig hebt, die schaars gaan worden”, zegt Christiaanse bijvoorbeeld.

Maar je kunt er met software wel voor zorgen dat er efficiënter met de hardware omgesprongen wordt. “Je kunt bijvoorbeeld de responsfrequentie omlaag halen. Computers doen vaak veel tegelijkertijd, omdat we ook vaak meerdere programma’s tegelijkertijd open hebben staan. Om dat goed te laten werken, voert hij het ene programma een paar milliseconden uit en dan wisselt hij naar het volgende. Programma’s krijgen dus steeds een maximaal tijdslot. Als je dat tijdslot verhoogt, wordt er minder vaak gewisseld en haal je de overhead naar beneden”, aldus Van Gastel. Toch zit daar wel een grens op: “Op een gegeven moment gaat het programma wel stotteren. Dus daar moet je een goede balans in vinden.”

Slimmer omgaan met hardware en data

Daarnaast kan er slimmer worden omgesprongen met de hardware zelf. Computers kunnen bijvoorbeeld zuiniger te werk gaan door niet én de CPU én de GPU te gebruiken, maar door de GPU te negeren. “Als je met beide werkt, moet je eerst een grote brok software door de CPU laten gaan, voor je delen op de GPU kan uitvoeren. Dan moet je dus twee losse chips aan hebben staan. Maar de CPU heeft vaak een energiezuinige mini-GPU aan boord. Dus als je de GPU uitschakelt en alles door de CPU laat doen, is dat uiteindelijk efficiënter.” Op de computer van Van Gastel zelf  verbruikt een losse GPU 3x zo veel stroom als de ingebouwde GPU van de CPU. “Dus dat scheelt echt superveel.”

Maar ook buiten de PC om kunnen maatregelen genomen worden. “De meeste software wordt op servers gedraaid. Het komt voor dat dat meerdere, oudere servers zijn. Die kun je natuurlijk samenvoegen tot één server. Dat scheelt ook weer.” Ook kan er gezorgd worden dat berekeningen anders uitgevoerd worden, zodat computers minder warm worden. “Dan bespaar je enorm op de koeling.”

Van Gastel raadt bedrijven verder aan om eens kritisch naar de omgang met data te kijken. “Opslag kost energie, net als het transport van data en de berekeningen met data. Dus als je minder netwerkverkeer hebt en minder permanente opslag, bespaar je ook. Hoe minder je opslaat, hoe minder energie je verbruikt. Een beetje dataschaamte is dus niet eens zo gek.”

Je hebt niet alles in de hand

Hoe duurzaam je als bedrijf ook probeert te zijn, uiteindelijk loop je wel tegen grenzen aan, benadrukt Christiaanse. Vrijwel alle bedrijven zitten tegenwoordig in een grote keten, wat betekent dat niet overal invloed op uitgeoefend kan worden. Zo komt het regelmatig voor dat de eigen software moet samenwerken met de software van de leverancier of zelfs onderdelen gebruikt van een derde partij. “Als jij in Java werkt en Oracle is niet van plan om dat duurzamer te maken, blijf je daar wel mee zitten. Het is dus echt een heel gemeen probleem wat we hebben.”

Reactie toevoegen
De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.