211service.com
Il data mining rivela come il social coding riesce (e fallisce)
Il processo di sviluppo del software ha subito enormi trasformazioni negli ultimi dieci anni circa. Uno dei cambiamenti chiave è stata l'evoluzione dei siti Web di codifica sociale, come GitHub e BitBucket.
Questi consentono a chiunque di avviare un progetto software collaborativo a cui altri sviluppatori possono contribuire su base volontaria. Milioni di persone hanno utilizzato questi siti per creare software, a volte con straordinario successo.
Certamente, alcuni progetti hanno più successo di altri. E questo solleva una domanda interessante: quali sono le differenze tra progetti di successo e insuccessi su questi siti?
Oggi riceviamo una risposta da Yuya Yoshikawa del Nara Institute of Science and Technology in Giappone e da un paio di amici degli NTT Laboratories, sempre in Giappone. Questi ragazzi hanno analizzato le caratteristiche di oltre 300.000 progetti software collaborativi su GitHub per distinguere i fattori che contribuiscono al successo. I loro risultati forniscono le prime informazioni sul successo della codifica sociale da questo tipo di data mining.
Un progetto di codifica sociale inizia quando un gruppo di sviluppatori delinea un progetto e inizia a lavorarci. Questi sono gli sviluppatori interni e hanno il potere di aggiornare il software in un processo noto come commit. Il numero di commit è una misura dell'attività sul progetto.
Gli sviluppatori esterni possono seguire lo stato di avanzamento del progetto inserendolo come protagonista, una forma di bookmarking su GitHub. Il numero di stelle è una misura della popolarità del progetto. Questi sviluppatori esterni possono anche richiedere modifiche, come funzionalità aggiuntive e così via, in un processo noto come richiesta pull.
Yoshikawa e compagni iniziano scaricando i dati associati a oltre 300.000 progetti dal sito Web di GitHub. Ciò include il numero di sviluppatori interni, il numero di stelle che un progetto riceve nel tempo e il numero di richieste pull che riceve.
Il team quindi analizza l'efficacia del progetto calcolando fattori quali il numero di commit per membro interno del team, la popolarità del progetto nel tempo, il numero di richieste pull soddisfatte e così via.
I risultati forniscono una visione affascinante della natura della codifica sociale. Yoshikawa e colleghi affermano che il numero di sviluppatori interni di un progetto gioca un ruolo significativo nel suo successo. I progetti con un numero maggiore di membri interni hanno maggiore attività, popolarità e socialità, dicono.
Tuttavia, c'è anche un aspetto negativo per i grandi progetti. Una misura dell'efficienza di un progetto è il numero di impegni per membro interno del team. Yoshikawa e compagni affermano che i dati mostrano che i progetti più efficienti coinvolgono una sola persona che lavora da sola.
Man mano che un progetto cresce, l'efficienza è più o meno costante nei progetti con un numero compreso tra due e 60 membri, ma successivamente diminuisce drasticamente. Concludiamo che non è desiderabile coinvolgere più di 60 sviluppatori in un progetto se vogliamo che i membri del progetto lavorino in modo efficiente, dicono.
Il team studia anche come viene distribuito il lavoro tra i membri interni. In generale, è più probabile che i team con un lavoro distribuito in modo più uniforme abbiano un'attività maggiore.
E quando i progetti ricevono richieste di modifiche da sviluppatori esterni, è probabile che quelli che soddisfano fedelmente queste richieste diventino più popolari.
Hanno anche misurato i tipi di progetti più popolari. Non sorprende che affermino che il software progettato per funzionare sui vari prodotti Apple abbia la massima popolarità.
Questa è una visione interessante di una forma sempre più comune di sviluppo software. GitHub da solo afferma di avere 6 milioni di utenti registrati.
Certo, ma questi ragazzi hanno trovato correlazioni e una questione importante è quella della causalità. È possibile, ad esempio, che le correlazioni positive che hanno trovato siano il risultato di alcune variabili nascoste che non vengono rivelate in questo studio.
Il modo migliore per scoprirlo è che qualcuno metta in pratica le lezioni apprese in questo studio e veda se funzionano. Ci sono certamente buone ragioni per pensare che molte delle loro conclusioni siano legate a buone pratiche.
Passa agli sviluppatori!
Rif: arxiv.org/abs/1408.6012 : Collaborazione sui social media: analisi di progetti di successo sulla codifica sociale