Credito:Pixabay/CC0 di dominio pubblico
I sistemi open source sono un tipo di software che può essere liberamente modificato e distribuito. I progetti open source sono al centro dell'infrastruttura della nostra società digitale, ma sono soggetti a notevoli problemi di sostenibilità perché molte persone li utilizzano ma pochissimi contribuiscono al loro sviluppo.
Ricerca di Javier Cánovas (membro della Facoltà di Informatica, Multimedialità e Telecomunicazioni dell'UOC e ricercatore presso il gruppo Systems, Software and Models Research Lab (SOM Research Lab) presso l'IN3 Internet Interdisciplinary Institute), insieme a Jordi Cabot (ricerca ICREA docente e capogruppo), ha analizzato i profili degli utenti coinvolti in questi progetti. I risultati mostrano che la presenza di contributori che non sviluppano codice è molto significativa e che esiste anche un certo grado di specializzazione tra queste persone. Secondo i ricercatori, questi dati "demistificano l'idea che solo gli sviluppatori guidano progetti open source" e potrebbero essere utilizzati per progettare nuove strategie per migliorare la sostenibilità di tali iniziative.
Completamento del quadro parziale dei progetti open source
La struttura dei progetti open-source dipende fondamentalmente sia dalla comunità dei contributori (che mantengono vivi i progetti) sia dalla loro collaborazione in modo attivo e arricchente. Tuttavia, la stragrande maggioranza della ricerca su queste comunità si concentra sullo studio dei profili degli utenti responsabili della programmazione e di altre attività tecniche, come la revisione o la combinazione di codice. "Questo è solo un quadro parziale di ciò in cui consiste realmente un progetto open source e di come va avanti, che è generalmente basato su una comunità di utenti che si occupano di un'ampia varietà di compiti (come marketing, promozione e design), che aiutano anche a redigere la documentazione o prendono parte alle discussioni sull'evoluzione futura del progetto", ha spiegato Javier Cánovas.
Per ottenere una comprensione più approfondita delle dinamiche di collaborazione nei sistemi open-source, i ricercatori hanno analizzato i 100 progetti più importanti di npm (npm è il gestore di pacchetti per Node.js, uno dei server di applicazioni Web più popolari) trovati su GitHub, uno dei principali social piattaforma di codifica. "Questo studio ci ha permesso di verificare che compiti non codificati (non tecnici), come segnalare un problema, suggerire un miglioramento, partecipare a una discussione o semplicemente reagire ai commenti di altre persone (ad esempio con un'emoji per comunicare accettazione di una proposta), sono una caratteristica comune nei sistemi open source. In effetti, la loro presenza è molto significativa, a dimostrazione del loro coinvolgimento nella vita del progetto", ha sottolineato Javier Cánovas.
Divisione delle attività del progetto
Lo studio ha anche esaminato se i contributori del progetto di solito hanno un unico compito o se svolgono più compiti e, quindi, i diversi ruoli si sovrappongono. I risultati mostrano che ci sono utenti che contribuiscono al progetto solo con attività non tecniche, che integrerebbero il lavoro delle persone che si concentrano sulla programmazione e sullo sviluppo del codice, che, al contrario, sarebbero poco coinvolte in altri compiti.
Questi dati forniscono nuovi indizi per la progettazione di strategie di onboarding e governance che facilitino l'evoluzione di questi utenti e una migliore collaborazione tra i vari ruoli. "Nella maggior parte dei progetti open source, gli sforzi per attrarre e portare nuovi contributori sono chiaramente rivolti agli sviluppatori, ma questo significa che perdono l'opportunità di attrarre altri tipi di profili che potrebbero essere più facili da inserire e potrebbero anche aiutare il progresso e il lungo -sostenibilità a termine del progetto", hanno osservato gli autori dello studio.
"In effetti", hanno aggiunto, "i progetti interessati ad attirare più contributori tecnici dovrebbero anche compiere uno sforzo aggiuntivo per aiutare alcuni dei contributori non tecnici a prendere parte alla parte di programmazione, poiché questa non è un'evoluzione naturale".
Studiare l'evoluzione della community nel tempo
Questa ricerca fa parte del lavoro del SOM Research Lab incentrato sull'ottimizzazione e sulla promozione della collaborazione dei contributori nei sistemi open source, che ha diverse ramificazioni. "L'aspetto più significativo in questo momento è considerare la dimensione temporale, ovvero come lo stato di un progetto e la sua comunità si evolvono nel tempo", ha affermato il ricercatore.
Altre linee di lavoro in quest'area includono lo studio dei meccanismi per attrarre nuovi contributori a progetti open source, esplorare nuovi modi di visualizzare i contributi dei membri della comunità o proporre soluzioni per definire regole (o modelli) di governance della comunità.
La ricerca è stata pubblicata su Empirical Software Engineering .