Kan je groene software schrijven? | KPMG | NL

Kan je groene software schrijven?

Kan je groene software schrijven?

Terwijl de digitale wereld voortschrijdt en we steeds meer apparaten met ons meesjouwen zou het niet moeten verbazen dat het energie verbruik in deze wereld ook verder groeit. Een studie [1] uit 2013 stelt gesteld dat 10% van de wereldwijde energieconsumptie voor rekening van IT-systemen komt; een percentage dat verder zal groeien! Het onderzoek leidt trouwens ook tot interessante weetjes over energie gebruik zoals dat in een jaar een iPhone meer energie verbruikt dan een middelgrote koelkast.

1000

Gerelateerde content

Een deel van het energiegebruik wordt veroorzaakt doordat apparaten (tegenwoordig) altijd “aan” staan. Maar voor functionaliteit die in datacenters, op gevirtualiseerde omgevingen (zoals in de cloud) draait, geldt dat draaien van de software zelf in belangrijke mate bijdraagt aan het energieverbruik. En dat heeft dan weer tot gevolg dat een software-engineer een bijdrage kan leveren aan het milieu door energie efficiënte, zeg maar “groene”’, software te schrijven. De vraag voor een software-engineer is dan wel hoe ten tijde van de software ontwikkeling duidelijk wordt dat de software in gebruik efficiënt met de energie zal omgaan.

Visie

Sinds het midden van de jaren negentig van de vorige eeuw is in software ontwikkeling Continous Integration (CI), zeg maar het veelvuldig geautomatiseerd samenvoegen van broncode, een gebruikelijk praktijk. In de kern betreft dit kwaliteitsmaatregel die er voor zorgt dat er, nadat iedereen zijn stuk eigen broncode heeft ontwikkeld, een bij elkaar passend geheel is ontstaan. En kwaliteitsmaatregelen zijn in software ontwikkeling nodig omdat het complex en secuur werk is én omdat een gebrek aan software kwaliteit kunnen leiden tot hoge kosten en/of gefaalde projecten.

Het is vanuit dit perspectief dan ook niet verrassend dat in CI omgevingen steeds meer kwaliteitsmaatregelen worden opgenomen. Een goede CI omgeving omvat dan tegenwoordig ook (onder meer) unit testen en broncode kwaliteitscans. Voor de inrichting van dergelijke CI omgeving zijn goede open source mogelijkheden beschikbaar die via dashboards inzage geven in de kwaliteit van de systemen. Wij zelf gebruiken bijvoorbeeld vaak (voor de programmeertalen Java, C#.NET en PHP) SonarQube dat in een dashboard ook de verandering (met de tijd) van kwaliteitsparameters inzichtelijk maakt. Het blijkt dat als ontwikkelaars transparant op de kwaliteit van hun werk worden gewezen ze ook (meer) hun best gaan doen om aan de kwaliteitseisen te voldoen.

Mijn idee is dan ook dat als software-engineers energie-efficiënte, groene, software moeten schrijven ze al in het ontwikkelproces terugkoppeling moeten krijgen over dit aspect tijdens de ontwikkeling. Idealiter neem je die terugkoppeling dan ook op in de CI omgeving. Onduidelijk is echter hoe energie-efficiëntie in de ontwikkelomgeving al inzichtelijk kunt maken.
 

Het experiment

Binnen KPMG zijn we eigenaar van het software product Qubus. Met dit relatief eenvoudige product kunnen flexibel “Governance, Risk en Compliance” (GRC) processen worden geautomatiseerd. Omdat we dit product al jaren voeren en meerdere versies (met zo’n twee jaar er tussen) naast elkaar kunnen beproeven is het een uitstekend systeem om in een proefneming te gebruiken.

Hiertoe heeft Roberto Verdecchia, die als stagiair bij ons aan zijn Master scriptie werkte, allereerst veel van de bekende software kwaliteitsmetrieken (zoals de Maintainability Index, Cyclomatic Complexity, Depth of Inheritance, Class Coupling en Effective Lines of Code) van de twee versies (6.2.3 en 6.5.7) van de software bepaald. Als eigenaar van de software was het fijn om te zien dat alle metrieken een betere waarde hadden dan de gesuggereerde drempelwaarden in de literatuur. Voor onderzoeker Roberto was minder fijn dat eigenlijk de metrieken tussen de twee versies nauwelijks verschilden. Het was daarmee al duidelijk dat het heel lastig zou zijn vanuit dit experiment een correlatie te leggen tussen energie-efficiënte en de bekende kwaliteitsmetrieken.

Roberto heeft hierna beide softwareversies geïnstalleerd in het Greenlab van de Vrije Universiteit en met behulp van Apache JMeter scripts systematisch beproefd door geautomatiseerd Qubus gebruik te automatiseren. Er werd een duidelijk verschil in energiegebruik waargenomen: de nieuwste versie was het zuinigst. Analyse van de JMeter scripts toonde aan dat, hoewel versies van de software hetzelfde deden, de nieuwste versie ook het snelst op de gebruikersacties reageerde. Dit klopt ook met de versie geschiedenis: in de twee jaar tussen beide versies zijn performance verbeteringen in de applicatie gerealiseerd.

Het experiment bevestigd hiermee de intuïtieve gedachte dat goede performance van het systeem ook energie-efficiënt is.

Hoe verder?

Eenvoudige performance testen kunnen, zeker als ze slechts deelsystemen testen, in een CI omgeving worden opgenomen. Omdat het schrijven van groene software belangrijk is moet dat dan ook meer gebeuren. Omdat performance testen vaak toch wel wat voeten in de aarde hebben, en er hardware moet worden gereserveerd, is verder onderzoek naar de relatie met makkelijk te bepalen metrieken wenselijk!

Verantwoording

Het besproken onderzoek [2] is in het kader van zijn Master opleiding Computer Science uitgevoerd in het Green Lab van de Vrije Universiteit, Amsterdam,door Roberto Verdecchia MSc. Vanuit de Vrije Universiteit is hij daarbij begeleid door prof. Patricia Lago en dr. Giuseppe Procaccianti.

Neem gerust contact op met Joost Koedijk, Partner en Software Quality Practice Leader KPMG Advisory, als je met een stage bij KPMG je Master scriptie wil schrijven rond aspecten van software en software ontwikkeling.

Referenties

[1] Bracing for the Cloud - Digital Economy Requires Massive Amount of Electricity

 - Breakthrough Staff; The Surprisingly Large Energy Footprint of the Digital Economy

 - Brain Walsh; IT now 10 percent of world's electricity consumption,

 - Jack Clark; all based upon “The cloud begins with coal” – Mark P. Mills, Digital Power Group (aug 2013)

[2] Empirical evaluation of a software application through static and dynamic analysis of source code, Roberto Verdecchia, Computer Science, Vrije Universiteit Amsterdam (okt 2016)

Joost Koedijk, Partner en Software Quality Practice Leader KPMG Advisory,

Neem contact met ons op

 

Offerteaanvraag (RFP)

 

Bevestig