Programari per a tothom: com treballen les comunitats de codi obert?

  Programant amb ordinador

Els investigadors de la UOC van analitzar els cent projectes més importants a GitHub, una de les plataformes de codificació social més rellevants (foto:Fotis Fotopoulos)

24/01/2022
Agustín López

Un estudi de la UOC descriu la importància dels contribuïdors que no desenvolupen codi en la sostenibilitat d'aquest tipus de projectes


Les comunitats de desenvolupament de programari aborden una gran varietat de tasques més enllà de les tècniques

Els sistemes de codi obert o open source són un tipus de programari que pot ser modificat i distribuït lliurement. Aquest projectes oberts són al cor de la infraestructura de la nostra societat digital, però poden arribar a tenir importants problemes de sostenibilitat perquè molta gent els utilitza, però molt pocs contribueixen a desenvolupar-los. Una recerca de Javier Cánovas, professor dels Estudis d'Informàtica, Multimèdia i Telecomunicació de la Universitat Oberta de Catalunya (UOC) i investigador del grup Systems, Software and Models Research Lab (SOM Research Lab), de l'Internet Interdisciplinary Institute (IN3), juntament amb el professor de recerca ICREA i líder del mateix grup Jordi Cabot, ha analitzat els perfils dels usuaris involucrats en aquests projectes. Els resultats demostren que la presència de contribuïdors que no desenvolupen codi és molt rellevant i que, a més, existeix una certa especialització entre aquestes persones. Segons els investigadors, aquestes dades "desmitifiquen la idea que només els desenvolupadors dirigeixen projectes de codi obert" i podrien servir per dissenyar noves estratègies que milloressin la sostenibilitat d'aquestes iniciatives. 

 

Completar la visió parcial sobre els projectes de codi obert
 

L'estructura dels projectes de codi obert depèn fonamentalment de la comunitat de contribuïdors, que són els que els mantenen vius, i del fet que hi hagi una col·laboració activa i enriquidora entre ells. Tot i així, la gran majoria de les investigacions sobre aquestes comunitats se centren en l'estudi de perfils d'usuaris encarregats de programar i fer-se càrrec d'altres tasques tècniques, com ara revisar o combinar codi. "Aquesta és només una visió parcial del que realment constitueix i fa avançar un projecte de codi obert, que generalment es basa en una comunitat d'usuaris que s'encarreguen d'una gran varietat de tasques (com ara màrqueting, promoció i disseny) i que també ajuden a redactar documentació o participar en les discussions sobre l'evolució futura del projecte", explica Javier Cánovas.

Per aprofundir en el coneixement de les dinàmiques de col·laboració en els sistemes de codi obert, els investigadors van analitzar els cent projectes NPM més importants (NPM és el gestor de paquets de Node.js, un dels servidors d'aplicacions web més populars) localitzats a GitHub, una de les plataformes de codificació social més rellevants. "Amb aquest estudi hem pogut comprovar que tasques no relacionades amb codi (no tècniques) com reportar un problema, recomanar un canvi de millora, participar en una discussió o simplement reaccionar a comentaris d'altres (per exemple, amb una emoticona gràfica o emoji per comunicar l'acceptació d'una proposta) són molt presents en els sistemes de codi obert. De fet, la seva presència és molt rellevant, cosa que demostra la implicació en la vida del projecte", subratlla Javier Cánovas.

 

Divisió de tasques en els projectes
 

El treball també va investigar si normalment els contribuïdors del projecte tenen una única tasca o en fan diverses i, per tant, se superposen els diferents rols. Els resultats mostren que hi ha usuaris que només col·laboren en el projecte amb activitats no tècniques, que complementarien la feina de les persones dedicades a la programació i el desenvolupament de codi, les quals, per contra, tindrien poca implicació en altres tasques

Aquestes dades donen noves claus per dissenyar estratègies d'incorporació i governança que facilitin l'evolució d'aquests usuaris i una millor col·laboració entre els diferents rols. "En la majoria de projectes de codi obert, els esforços per atraure i incorporar nous col·laboradors es dirigeixen clarament als desenvolupadors, però així es perd l'oportunitat d'atraure altres tipus de perfils que podrien ser més fàcils d'incorporar i que també ajuden a l'avenç i la sostenibilitat del projecte a llarg termini", destaquen els autors. 

"De fet, —continuen— els projectes interessats a atraure més contribuïdors tècnics també haurien de fer un esforç addicional per ajudar alguns dels col·laboradors no tècnics a participar en la part de programació, ja que aquesta no és una evolució natural". 

 

Estudiar l'evolució temporal de la comunitat
 

Aquesta recerca s'emmarca en la línia de treball del SOM Research Lab centrada en l'optimització i la promoció de la col·laboració dels contribuïdors en els sistemes de codi obert, que té diferents ramificacions. "El més rellevant ara mateix és considerar la dimensió temporal, és a dir, com l'estat d'un projecte i la seva comunitat evolucionen al llarg del temps", destaca l'investigador.

Altres vies de treball en aquesta àrea inclouen l'estudi dels mecanismes per atraure nous col·laboradors als projectes de codi obert, explorar noves maneres de visualitzar les contribucions dels membres de la comunitat o proposar solucions per definir les normes (o models) de governança de la comunitat

 

Aquesta recerca de la UOC afavoreix l'objectiu de desenvolupament sostenible (ODS) 9, indústria, innovació i infraestructura.

 

Article relacionat

Cánovas Izquierdo, J. L., Cabot, J. On the analysis of non-coding roles in open source development. Empirical Software Engineering 27, 18 (2022). https://doi.org/10.1007/s10664-021-10061-x

 

UOC R&I

La recerca i innovació (R+I) de la UOC contribueix a solucionar els reptes a què s'enfronten les societats globals del segle xxi, mitjançant l'estudi de la interacció entre la tecnologia i les ciències humanes i socials, amb un focus específic en la societat xarxa, l'aprenentatge en línia i la salut digital. Els més de 500 investigadors i investigadores i els 52 grups de recerca s'articulen entorn dels set estudis de la UOC i dos centres de recerca: l'Internet Interdisciplinary Institute (IN3) i l'eHealth Center (eHC).

A més, la Universitat impulsa la innovació en l'aprenentatge digital a través de l'eLearning Innovation Center (eLinC) i la transferència de coneixement i l'emprenedoria de la comunitat UOC amb la plataforma Hubbik.

Els objectius de l'Agenda 2030 de desenvolupament sostenible de les Nacions Unides i el coneixement obert són eixos estratègics de la docència, la recerca i la innovació de la UOC.

Més informació: research.uoc.edu #25anysUOC

Experts UOC

Javier Cánovas

Javier Cánovas

Investigador del SOM Research Lab

Foto del professor Jordi Cabot

Jordi Cabot Sagrera

Professor d'Investigació ICREA

Expert/a en: Tot tipus de tècniques per a l'anàlisi, disseny i implementació de software amb la millor qualitat i productivitat possible. Inclou temes com la manipulació de dades obertes, l'estudi dels projectes de programari lliure, la generació automàtica de codi.

Àmbit de coneixement: Enginyeria del programari.

Veure fitxa

Enllaços relacionats