211service.com
Datautvinning avslöjar hur social kodning lyckas (och misslyckas)
Processen att utveckla mjukvara har genomgått en enorm förändring under det senaste decenniet eller så. En av de viktigaste förändringarna har varit utvecklingen av sociala kodningswebbplatser, som GitHub och BitBucket.
Dessa tillåter vem som helst att starta ett samarbetsprojekt som andra utvecklare kan bidra till på frivillig basis. Miljontals människor har använt dessa webbplatser för att bygga mjukvara, ibland med enastående framgång.
Visst är vissa projekt mer framgångsrika än andra. Och det väcker en intressant fråga: vad är skillnaderna mellan framgångsrika och misslyckade projekt på dessa webbplatser?
Idag får vi svar från Yuya Yoshikawa vid Nara Institute of Science and Technology i Japan och ett par kompisar på NTT Laboratories, även de i Japan. Dessa killar har analyserat egenskaperna hos över 300 000 samarbetande programvaruprojekt på GitHub för att pilla isär de faktorer som bidrar till framgång. Deras resultat ger de första insikterna i social kodningsframgång från denna typ av datautvinning.
Ett socialt kodningsprojekt börjar när en grupp utvecklare beskriver ett projekt och börjar arbeta med det. Dessa är de interna utvecklarna och har makten att uppdatera programvaran i en process som kallas en commit. Antalet åtaganden är ett mått på aktiviteten i projektet.
Externa utvecklare kan följa projektets framsteg genom att stjärnmärka det, en form av bokmärke på GitHub. Antalet stjärnor är ett mått på projektets popularitet. Dessa externa utvecklare kan också begära ändringar, såsom ytterligare funktioner och så vidare, i en process som kallas en pull-begäran.
Yoshikawa och co börjar med att ladda ner data som är associerade med över 300 000 projekt från GitHub-webbplatsen. Detta inkluderar antalet interna utvecklare, antalet stjärnor ett projekt får över tid och antalet pull-förfrågningar det får.
Teamet analyserar sedan projektets effektivitet genom att beräkna faktorer som antalet åtaganden per intern gruppmedlem, projektets popularitet över tid, antalet pull-förfrågningar som uppfylls och så vidare.
Resultaten ger en fascinerande inblick i karaktären av social kodning. Yoshikawa och co säger att antalet interna utvecklare på ett projekt spelar en betydande roll för dess framgång. Projekt med större antal interna medlemmar har högre aktivitet, popularitet och socialitet, menar de.
Det finns dock en baksida med stora projekt också. Ett mått på effektiviteten i ett projekt är antalet åtaganden per intern gruppmedlem. Yoshikawa och co säger att uppgifterna visar att de mest effektiva projekten involverar en enda person som arbetar ensam.
I takt med att ett projekt växer är effektiviteten i stort sett konstant i projekt med mellan två och 60 medlemmar men sjunker kraftigt efter detta. Vi drar slutsatsen att det inte är önskvärt att involvera fler än 60 utvecklare i ett projekt om vi vill att projektmedlemmarna ska arbeta effektivt, säger de.
Teamet studerar också hur arbetet fördelas mellan interna medlemmar. Generellt sett är det mer sannolikt att team med mer jämnt fördelat arbete har högre aktivitet.
Och när projekt får förfrågningar om ändringar från externa utvecklare, är de som uppfyller dessa förfrågningar sannolikt mer populära.
De mätte också vilka typer av projekt som är mer populära. Föga överraskande säger de att programvara designad för att köras på Apples olika produkter har den högsta populariteten.
Det är en intressant inblick i en allt vanligare form av mjukvaruutveckling. Enbart GitHub säger att det har 6 miljoner registrerade användare.
Naturligtvis, men de här killarna har hittat samband och en viktig fråga är en orsaksfråga. Det är till exempel möjligt att de positiva sambanden de har hittat är resultatet av några dolda variabler som inte avslöjas i denna studie.
Det bästa sättet att ta reda på det är att någon praktiserar lärdomarna i den här studien och ser om de fungerar. Det finns säkert goda skäl att tro att många av deras slutsatser är relaterade till god praxis.
Över till utvecklarna!
Ref: arxiv.org/abs/1408.6012 : Samarbete på sociala medier: Analysera framgångsrika projekt om social kodning