Wanneer Open Source en Open Science hand-in-hand gaan

Met meer dan 200 miljoen verschillende projecten is Github de gemeenschappelijke opslagruimte van de open source softwaregemeenschap – en in zekere zin het fundament van onze digitale wereld. De hostingdienst voor softwareontwikkeling en versiebeheer is betrokken bij talloze stukken software die we dagelijks gebruiken. Met zoveel softwareprojecten, en zoveel actieve ontwikkelaars, is GitHub een goudmijn voor onderzoekers die de open source softwarewereld willen begrijpen. Maar het verkrijgen van goede informatie was altijd moeilijk. Dat veranderde toen Georgios Gousios GHTorrent ontwikkelde, een dataset die inzicht geeft in de uitpuilende verzameling samenwerkingen die Github is. 

In 2021 bracht de Europese Commissie een rapport uit met een niet erg poëtische titel: 'The impact of open source software and hardware on technological independence, competitiveness and innovation in the EU economy'. De resultaten waren echter zeer opmerkelijk. Alles in acht genomen, stelden de onderzoekers vast dat voor elke miljoen euro die de EU in open source software investeert, de economische opbrengsten in totaal 60 miljoen euro bedragen. "Dat is een ongelooflijke bevinding," geeft Georgios Gousios toe, misschien met een gevoel van trots. Niet alleen omdat dit zijn overtuiging onderstreept dat software engineering, in het bijzonder open source, meer aandacht moet krijgen, maar ook omdat zijn GHTorrent dataset instrumenteel is geweest in het verkrijgen van dit economische inzicht.

Binnen een jaar hadden we een actieve userbase - lichtsnelheid naar academische maatstaven.

"Tegen de tijd dat de hoofdonderzoeker van de Europese Commissie mij benaderde, was ik er al enigszins aan gewend dat GHTorrent werd gebruikt voor interessante analyses. In feite begon ik eind 2011 te werken aan GHTorrent, en eind 2012 had het al een actieve userbase - wat lichtsnelheid is naar academische maatstaven."  
Net zoals het vinden van goud in het verleden een goudkoorts op gang bracht en duizenden goudzoekers aantrok, ontketende GHTorrent zelf een kleine goudkoorts en creëerde het een hele wereldwijde gemeenschap van datamijnwerkers. Gousios: "Sommige van deze mensen werden zelfs vrienden."

Een gemeenschap van mijnwerkers

Door GHTorrent open te stellen voor het publiek en een schat aan nieuwe informatie te ontsluiten, hebben onderzoekers een overvloed aan onderwerpen kunnen bestuderen en volledig nieuwe inzichten gekregen in hoe de open-sourcegemeenschap te werk gaat. De dataset laat zien welke vormen van samenwerking goed werken, maar laat ook zien hoe 'offline' vooroordelen doorwerken in de online wereld.

Eén studie gebruikte GHTorrent om te zien hoe verschillende nationaliteiten met elkaar omgaan bij het samenwerken aan open source software. Gousios: "Het is eigenlijk jammer, maar je kunt duidelijk zien dat mensen uit landen met politieke spanningen minder productief samenwerken, omdat ze elkaars bijdragen bijvoorbeeld onnodig grondig onder de loep nemen." Een andere studie toonde aan dat bijdragen van vrouwelijke ontwikkelaars minder goed worden ontvangen dan bijdragen van mannen, dat ze meer onder de loep worden genomen of zelfs ronduit worden geweigerd. Dit was niet het geval wanneer het geslacht niet kon worden afgeleid.

Toch opent dit voor Gousios een weg vooruit: "Je moet weten waar je problemen liggen als je ze wilt aanpakken. Ik heb Microsoft ook geholpen bij het gebruik van GHTorrent, eigenlijk zo ver dat ze nu hun eigen variant ervan gebruiken."

Als je wetenschap wilt bedrijven, dan moet je dat open doen.

Het zien van al deze relevante data, en de bloei van een kleine gemeenschap, benadrukte goed het belang van Diomidis Spinellis' (zijn mentor met wie hij op de MSR 2022 conferentie de 10 jaar meest invloedrijke paper award voor GHTorrent won) motto: als je wetenschap wil bedrijven, dan moet je dat volledig open doen. Zelfs vanaf het allereerste begin.

De gegevens verbinden

Diomidis was veel meer dan alleen een geestelijk mentor voor Gousios. "Zijn ontwerp, vooral in het omgaan met MySQL (software die de relaties tussen data-items beheert) is fundamenteel voor GHTorrent, en is 10 jaar lang vrijwel ongewijzigd gebleven." Wat er ook gebeurt op Github, of iemand nu code wijzigt of twee gebruikers berichten plaatsen in een discussie, er is sprake van een zogenaamde 'gebeurtenis'. De eerste stap van het programma is het verzamelen van al die verschillende gebeurtenissen. "Maar dat is nog maar het halve werk, en aantoonbaar het makkelijkste deel", zegt Gousios. "De kunst is om die gegevens nuttig te maken, door ze een context te geven en ze in verband te brengen met andere gegevens. Als een gebeurtenis bijvoorbeeld de weigering van iemands codeerbijdrage heeft geregistreerd, wordt die informatie alleen nuttig als je de context kent, zodat je kunt begrijpen waarom die bijdrage is geweigerd." Wat GHTorrent onderscheidt, is zijn vermogen om voortdurend 'ruwe gegevens' te verbinden met betekenisvolle links, waardoor - in zekere zin - extra gegevens worden geleverd.  Het leveren van zinvolle links naar elk van die gebeurtenissen in 83 miljoen samenwerkende ontwikkelaars is geen geringe prestatie.

Gousios: "In het begin waren mensen die GHTorrent gebruikten zich een beetje onbewust van de hoeveelheid gegevens die ze kregen. Ikzelf ook, als ik heel eerlijk ben. Zelfs persoonlijke gegevens, zoals e-mailadressen of volledige namen, werden opgenomen." In feite duurde het een goede vier jaar, tot 2016, voordat er problemen opdoken. "Een gebruiker klaagde dat we zijn privégegevens deelden. Dit was al openbare informatie, let wel, en we hebben alleen de puntjes met elkaar verbonden. Maar het zette ons wel aan om te veranderen hoe GHTorrent werkt: het verzamelt die gegevens nog steeds, maar deelt ze niet meer met gebruikers." 

Het heeft me allemaal enorm veel extra tijd gekost, maar ook enorm veel geleerd.

Het aantal gebruikers begon ook een ander probleem te creëren, vooral tussen 2012 en 2014 toen de GitHub enorm begon te groeien. Gousios: "Het leek bijna exponentieel. Ik vermoed dat het een netwerkeffect was: naarmate meer ontwikkelaars actief werden op GitHub, wilden meer van hun ontwikkelaarsvrienden meedoen. Dat was geweldig voor de waarde van de dataset, maar het betekende ook dat ik een platform dat exponentieel groeide voortdurend moest opschalen. Het legde een grote druk op mijn capaciteiten, en ik moest snel een expert worden in technologieën als MySQL en MongoDB. Ik moest gedistribueerde systemen gaan gebruiken, of bepaalde processen opnieuw opstarten zodat GHTorrent storingen kon opvangen. En wanneer een van die storingen onvermijdelijk gebeurde, en het platform opnieuw moest opstarten, moest ik voorkomen dat het alle gegevens opnieuw zou downloaden - wat extra codering vergde." 

Met andere woorden, zonder dat hij er per se om had gevraagd, werd Gousios een 'One Man Service Reliability Engineer', wat een specifiek type ontwikkelaar is. "Dit heeft me enorm veel tijd gekost, maar ik heb ook enorm veel geleerd." Gousios legt uit dat hij veel van de ervaringen die hij tijdens deze twee jaar van groei heeft opgedaan, kon gebruiken in het onderwijs. In 2016 nam hij de verantwoordelijkheid over voor de cursus Big Data Processing en herzag hij het materiaal zodat het alle state-of-the-art technologieën bevatte.

"Ik heb me altijd zeer goed gesteund gevoeld door mijn collega's hier aan de TU Delft, en het omgaan met die moeilijkheden kon soms behoorlijk stressvol zijn." Met een kleine glimlach voegt hij eraan toe: "Achteraf heb ik echter het gevoel dat ik er zeker iets door heb geleerd: Ik kan niet overal expert in zijn, dus laat expertisegebieden het beste over aan de experts." 

"Toen ik naar Delft kwam, was GHTorrent nog niet af, maar toch kreeg ik alle tijd en vrijheid om het goed af te maken, en daarna zelfs te onderhouden." Zelfs toen Gousios een tijdje bij de universiteit van Nijmegen werkte, mocht hij het programma nog hosten op de hardware van de TU Delft. Microsoft nam vervolgens de hosting en financiële verantwoordelijkheid over, maar vanaf 2020 kwam GHTorrent 'terug naar huis' om gehost te worden door de TU Delft. "Voor de hele reis van GHTorrent is de TU Delft dus instrumenteel geweest voor het succes, waarvoor ik heel dankbaar ben."