de groene ontwikkelaar

IT-Rockstar robin gordijn

Vaak wordt er bij duurzaamheid gedacht aan geitenwollensokken, sojamelk of zonnepanelen. Hoewel deze woorden allemaal affiniteit hebben met duurzaamheid komt er vaak meer bij kijken, één keer kiezen voor sojamelk maakt je niet per definitie duurzaam. Thuis kiezen voor duurzaamheid is lastig, maar als software developer je werk duurzaam uitvoeren is misschien nog wel lastiger. Voor dit artikel trek ik ze toch maar even aan: die geitenwollen sokken, ik zocht uit hoe ik duurzamer te werk kan gaan.

Luiheid, kosten, techniek en onwetendheid

Als je zelf software ontwikkelt, of iemand de opdracht geeft software voor je te schrijven is de kans groot dat je er niet bij na hebt gedacht of dit duurzaam gebeurd. Sterker nog, vaak doen we zelfs dingen die een enorm negatieve impact op het milieu hebben omdat we er niet bij stil staan. Als ontwikkelaars zijn we sterk afhankelijk van een paar principes om de best mogelijke oplossing te bepalen, namelijk: luiheid, kosten en de Wet van Moore.

‘I’ll choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it’

Liever lui dan moe

Één van de bekendste software ontwikkelaars uit mijn tijd heeft ooit gezegd: ‘I’ll choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it’. Veel ontwikkelaars zullen zich vinden in deze wijze woorden van Bill Gates. Er zijn nu eenmaal, in mijn beleving, veel ‘luie’ ontwikkelaars, die hun werk snel maar met een smallere blik op de toekomst uitvoeren. Het gevolg hiervan is dat jij, maar ook ik ongeveer iedere 2 á 3 jaar een nieuwe laptop en telefoon nodig hebben. Want we kennen het wel: de nieuwe update werkt niet meer zo lekker op je ‘oude’ apparaat, waardoor hij bijv. traag wordt. Het probleem in deze kwestie? Bij het schrijven van code leren we efficiënt na te denken vanuit economisch standpunt, niet vanuit duurzaamheid.

Gordon Moore, de tegenwoordig gepensioneerde oprichter van Intel, voorspelde in 1965 al dat de snelheid van de technologie om de 12 maanden zou gaan verdubbelen. Ook dit is voor veel ontwikkelaars het perfecte argument om niet te lang stil te staan bij het maken van ‘luie’ keuzes.

Wat kost dat dan?

Als ontwikkelaars hebben we geleerd kostenanalyses uit te voeren op een aantal manieren, bijvoorbeeld op basis van kosten of tijd. Stel, je wilt een nieuwe zoekmachine op je website en uit de opgevraagde offerte komen twee opties.

Optie 1:
Het kost de ontwikkelaar 150 uur om de zoekmachine te maken en na het intypen van de zoekterm zullen de resultaten na 10 seconden verschijnen.

Optie 2:
Het kost de ontwikkelaar 300 uur om de zoekmachine te maken en na het intypen van de zoekterm zullen de resultaten na 2 seconden verschijnen.

Een snelle rekensom vertelt ons dat het goedkoper is om voor optie 1 te gaan, omdat deze optie minder tijd en dus geld kost voor minder kwaliteit. Je kunt uiteraard wel dezelfde snelheid van optie 2 behalen door bijvoorbeeld een extra server in te zetten, maar is dit ook de slimste, meest duurzame keuze?

5 tips om zelf groener te schrijven

Tijd om zelf aan de slag te gaan. Een aantal jaar geleden kwam Hamid Shojaee met een set aan regels die bijdragen aan het schrijven van groenere oplossingen.

1. Snellere code boven toekomstige hardware

Ja, als je twee jaar wacht en je code uitvoert op een toekomstig apparaat, zal het twee keer zo snel werken als dat het nu doet, maar dat is precies de verkeerde instelling. Om een groene ontwikkelaar te worden moet je juist niet de snelste machine gebruiken, maar één van 2 of 4 jaar geleden met minder geheugen, langzamere CPU en een kleinere harde schijf. Als je software op dit apparaat kan draaien met acceptabele prestaties, is je bijdrage aan de snelle vervanging van hardware aanzienlijk minder.

2. Neem milieukosten op in je kostenanalyse

Vaak zijn we van mening dat het kopen van een nieuwe server goedkoper is dan een hele maand ontwikkelen, maar vergeet de verborgen kosten van servers niet. Tegenwoordig kost alleen de elektriciteit dat een datacenter gebruikt al meer dan de server zelf. Vergeet ook niet de kosten van koeling, bandbreedte, softwarelicenties en de impact op het milieu van alle materialen die hier nodig zijn.

3. Wees bewust van het geheugen

Dit is misschien nog wel de allerbelangrijkste tip voor de nieuwe generatie ontwikkelaars. De meeste ontwikkelmachines hebben tegenwoordig zo’n 2 á 4GB geheugen, maar we vergeten vaak dat er nog honderden miljoenen pc’s zijn met maar slechts 256 MB geheugen. Zelfs 256 MB is een ongelofelijke hoeveelheid RAM. Aan het begin van dit decennium konden we ons niet voorstellen dat er computers geproduceerd zouden worden met zóveel geheugen. Dit komt voornamelijk omdat ontwikkelaars geheugen gebruiken alsof het gratis is. Je kunt 1GB geheugen kopen voor minder dan €100,-! Die miljoenen pc’s die niet voldoende geheugen hebben om de software te kunnen draaien, moeten hierdoor upgraden. Kan je al raden wat er gebeurt met de oude computer?

4. Bouw ‘in-house’ indien mogelijk

Het gebruiken van third party plugins of componenten kan een geweldige manier zijn om tijd te besparen bij de ontwikkeling van nieuwe software. Maar zorg ervoor dat je niet 100MB aan functionaliteiten binnenhaalt voor maar 1MB winst. Als de verhouding van de dingen die we gebruiken 1:100 is, is dat slecht. Niet alleen slecht voor het milieu; ook voor de ervaring van de eindgebruiker.

5. Ga terug en los het opnieuw op

Elke ontwikkelaar kent minstens 10 plekken in hun code die ze efficiënter hadden kunnen maken. Als we terug gaan naar kritieke gebieden binnen onze projecten kunnen we heel veel winst behalen op de performance. Maar we gaan niet terug om het opnieuw te doen, omdat we vaak bezig zijn met het toevoegen van de volgende functionaliteit. Teruggaan en het oplossen van problemen die we al hebben opgelost lijkt misschien een verspilling van tijd, maar het is vaak erg bevredigend om honderden regels code tot slechts enkele regels om te zetten en het hiermee veel sneller te maken.

Nog meer motivatie

Als bovenstaande punten jou niet hebben gemotiveerd het roer om te gooien, dan misschien de volgende drie feitjes.

Simpel

Hoe groener een applicatie is, hoe simpeler deze vaak is in gebruik. Als je twee producten kan vergelijken die hetzelfde doel hebben, wint de meeste groenere oplossing in gebruiksvriendelijkheid. Denk bijv. Aan zoekmachines Google vs. Alta Vista, en e-mailprogramma’s Gmail vs. Hotmail.

Snelheid

Groenere software werkt sneller en wordt hierdoor sneller geaccepteerd door de gebruikers. Net als hierboven: als je twee producten kan vergelijken die hetzelfde probleem oplossen, wint het product dat sneller is door duurzaamheid. Een voorbeeld hiervan is dat Internet Explorer niet meer je nummer één browser is. Bij de meesten is dit inmiddels Firefox en/of Chrome. Tussen Internet Explorer en Firefox, is Firefox duidelijk de groenere tool die sneller werkt en aanzienlijk minder hulpbronnen verbruikt. De belangrijkste reden waarom mensen van Internet Explorer afstappen, is omdat de browser traag is geworden voor onze begrippen.

Goedkoop

Groenere software werkt op een systeem met minimale eisen. Om weer een voorbeeld te gebruiken kunnen we kijken naar Apple’s OS X tegenover Windows. De nieuwste versie van Apple’s OS X loopt goed, zelfs op een PowerPC G4. Dat is een chip die ongeveer 4 generaties achter ligt op de nieuwste CPU’s van vandaag. Dat zou hetzelfde zijn als een Windows 10 op een Pentium 4 te laten draaien. Wanneer je mensen vraagt waarom ze overstappen van Windows naar Apple is een terugkerend thema dat OS X sneller en betrouwbaarder is, niet schrokkerig is en het apparaat gewoon naar behoren werkt. Ook in dit geval heeft ‘groen zijn’ goed uitgepakt voor Apple’s OS X.

Win-win situatie

Kortom: het schrijven van groenere code kan een aanzienlijk concurrentievoordeel opleveren èn is ook nog eens beter voor het milieu. Ik ga mijn geitenwollensokken maar weer uittrekken, laat je me weten hoe jij duurzamer aan de slag kan gaan met jouw werk? Misschien kunnen we nog wat van elkaar leren!