211service.com
Datamining onthult hoe sociale codering slaagt (en faalt)
Het proces van het ontwikkelen van software heeft de afgelopen tien jaar een enorme transformatie ondergaan. Een van de belangrijkste veranderingen is de evolutie van websites voor sociale codering, zoals GitHub en BitBucket.
Hiermee kan iedereen een gezamenlijk softwareproject starten waaraan andere ontwikkelaars op vrijwillige basis kunnen bijdragen. Miljoenen mensen hebben deze sites gebruikt om software te bouwen, soms met buitengewoon succes.
Natuurlijk zijn sommige projecten succesvoller dan andere. En dat roept een interessante vraag op: wat zijn de verschillen tussen succesvolle en niet-succesvolle projecten op deze sites?
Vandaag krijgen we een antwoord van Yuya Yoshikawa van het Nara Institute of Science and Technology in Japan en een paar vrienden van de NTT Laboratories, ook in Japan. Deze jongens hebben de kenmerken van meer dan 300.000 samenwerkingssoftwareprojecten op GitHub geanalyseerd om de factoren die bijdragen aan succes uit elkaar te halen. Hun resultaten bieden de eerste inzichten in het succes van sociaal coderen van dit soort datamining.
Een sociaal coderingsproject begint wanneer een groep ontwikkelaars een project schetst en eraan begint te werken. Dit zijn de interne ontwikkelaars en hebben de macht om de software bij te werken in een proces dat bekend staat als een commit. Het aantal commits is een maatstaf voor de activiteit op het project.
Externe ontwikkelaars kunnen de voortgang van het project volgen door er een ster aan te geven, een vorm van bookmarking op GitHub. Het aantal sterren is een maatstaf voor de populariteit van het project. Deze externe ontwikkelaars kunnen ook wijzigingen aanvragen, zoals extra functies, enzovoort, in een proces dat bekend staat als een pull-verzoek.
Yoshikawa en co beginnen met het downloaden van de gegevens die zijn gekoppeld aan meer dan 300.000 projecten van de GitHub-website. Dit omvat het aantal interne ontwikkelaars, het aantal sterren dat een project in de loop van de tijd ontvangt en het aantal pull-verzoeken dat het krijgt.
Het team analyseert vervolgens de effectiviteit van het project door factoren te berekenen zoals het aantal commits per intern teamlid, de populariteit van het project in de loop van de tijd, het aantal pull-verzoeken dat wordt vervuld, enzovoort.
De resultaten geven een fascinerend inzicht in de aard van sociale codering. Yoshikawa en co zeggen dat het aantal interne ontwikkelaars van een project een belangrijke rol speelt in het succes ervan. Projecten met grotere aantallen interne leden hebben een hogere activiteit, populariteit en socialiteit, zeggen ze.
Grote projecten hebben echter ook een keerzijde. Een maatstaf voor de efficiëntie van een project is het aantal commits per intern teamlid. Yoshikawa en co zeggen dat uit de gegevens blijkt dat bij de meest efficiënte projecten één persoon alleen werkt.
Naarmate een project groeit, is de efficiëntie ongeveer constant in projecten met tussen de twee en 60 leden, maar daalt daarna sterk. We concluderen dat het onwenselijk is om meer dan 60 ontwikkelaars bij een project te betrekken als we willen dat de projectleden efficiënt werken, zeggen ze.
Het team bestudeert ook hoe het werk is verdeeld tussen interne leden. Over het algemeen hebben teams met meer gelijkmatig verdeeld werk meer kans op een hogere activiteit.
En wanneer projecten verzoeken om wijzigingen ontvangen van externe ontwikkelaars, zullen degenen die trouw aan deze verzoeken voldoen waarschijnlijk populairder zijn.
Ze maten ook de soorten projecten die populairder zijn. Het is niet verwonderlijk dat ze zeggen dat software die is ontworpen om op de verschillende producten van Apple te draaien, de hoogste populariteit heeft.
Dat is een interessant inzicht in een steeds vaker voorkomende vorm van softwareontwikkeling. Alleen GitHub zegt dat het 6 miljoen geregistreerde gebruikers heeft.
Natuurlijk, maar deze jongens hebben correlaties gevonden en een belangrijke vraag is er een van oorzakelijk verband. Het is bijvoorbeeld mogelijk dat de gevonden positieve correlaties het gevolg zijn van enkele verborgen variabelen die in dit onderzoek niet aan het licht zijn gekomen.
De beste manier om erachter te komen is dat iemand de lessen die uit dit onderzoek zijn geleerd in de praktijk brengt en kijkt of ze werken. Er is zeker een goede reden om aan te nemen dat veel van hun conclusies verband houden met goede praktijken.
Op naar de ontwikkelaars!
Referentie: arxiv.org/abs/1408.6012 : Samenwerking op sociale media: succesvolle projecten op sociale codering analyseren