La democràcia en els projectes de programari lliure, en entredit

Un estudi elaborat per experts de la UOC detecta que els coordinadors dels projectes més populars de Github actuen "unilateralment" i que "no escolten prou les seves comunitats" | En projectes d'àmbit més reduït i sense remuneració els coordinadors sovint no disposen de recursos per atendre totes les sol·licituds

Publicat el 12 de maig de 2016 a les 16:48

El grup de recerca SOM Research Lab de l'Internet Interdisciplinary Institute (IN3) de la Universitat Oberta de Catalunya (UOC) ha analitzat els 25 projectes més populars a la plataforma en línia Github per a desenvolupament col·laboratiu i ha observat que cap d'ells segueix un procés democràtic de funcionament, ja que la majoria són en mans de grups reduïts de persones que no se senten obligades a atendre les peticions de la comunitat o a explicar els motius pels quals a escoltar-les.

Per part dels desenvolupadors, però, es destaquen les dificultats que suposa atendre a totes les sol·licituds, compatibilitzar-les entre elles i donar respostes als usuaris en un entorn on sovint s'hi treballa de forma voluntària. De fet, una de les claus de la democratització en l'àmbit del codi obert és que permet als desenvolupadors adaptar un programari determinat a unes necessitats específiques, més que a atendre tot allò que els sol·liciten els usuaris.

L'estudi

Per a realitzar l'estudi, els investigadors varen recollir informació dels 25 projectes més populars a Github i van analitzar si tenien un criteri de governança explícit, si definien especificacions tècniques i codis de conducta pels col·laboradors o si tenien un acord de llicència de contribucions, entre d'altres. El document amb la informació en format de full de càlcul està disponible a Google Drive per a visualitzar-lo.

Entre aquests projectes s'hi troben Bootstrap, Angular.js, D3, JQuery o el mateix nucli de Linux, per exemple. La majoria d'ells superen els 25.000 usuaris que els han marcat com a preferits a Github o tenen més de 1.000 usuaris subscrits als avisos de canvis i, per tant, són exemples que afecten a una àmplia comunitat d'usuaris i desenvolupadors, que els utilitzen directa o indirectament sense subscriure's necessàriament a Github.

Usuaris frustrats

Segons els investigadors, la majoria dels projectes de programari estudiats els coordinen grups reduïts de persones que poden escoltar més o menys les sol·licituds dels seus usuaris sobre esmenes o noves funcionalitats, però que no se senten obligades a atendre-les ni a explicar com decideixen si les escolten o no. Així, no és estrany sentir frases com «hem de protegir els usuaris d'ells mateixos» o «no en saben prou per a poder opinar». Alguns d'aquests projectes, com WordPress o Linux, adopten la figura del «dictador benevolent per a tota la vida» que en qualsevol moment pot prendre decisions completament unilaterals sense tenir en compte l'opinió de la comunitat.
 
Segons Jordi Cabot (@softmodeling a Twitter), director del SOM i professor d'investigació ICREA a la UOC, «aquest fet perjudica i frustra clarament els usuaris, que no tenen manera d'influir directament en el futur del programari com sí que ho poden fer en l'evolució del seu entorn social, on no saber de lleis, per exemple, no els treu el dret d'opinar i votar de manera vinculant». Per a Cabot, «el programari ha influït molt positivament en les millores democràtiques de la nostra societat, per exemple, permetent l'aparició de la democràcia electrònica. Potser ja és hora de portar la democràcia al programari mateix».

[blockquote]La difícil posició dels voluntaris i coordinadors

Cal tenir en compte, però, que en alguns casos els projectes els mantenen voluntaris de forma desinteressada -que no seria el cas dels més populars, que solen tenir empreses que ho financen. Això fa que, tot i que en aparença alguns coordinadors puguin semblar antipàtics o amb un caire més "dictatorial", la realitat dels casos menys coneguts però igualment útils estigui més marcada per la manca de temps dels seus coordinadors que no pas perquè no vulguin atendre les peticions dels usuaris.

Això, però, també implica que en molts projectes de programari lliure, pel sol fet d'oferir públicament el seu codi i permetre la col·laboració de la comunitat, tinguin una visió molt més relaxada de les seves obligacions quan, a l'hora de la veritat, hi ha molts altres projectes -i molts d'ells clarament comercial- que depenen d'ells. Precisament per això, per les queixes que es podrien rebre, molts coordinadors o desenvolupadors opten per una resposta més dura en molts dels casos.

També és important posar-se a la pell dels coordinadors d'aquests projectes: sovint, el volum de peticions és tant gran que s'acaben saturant, i el temps de desenvolupament ja sol ser prou just com per, a més, haver-hi d'incloure processos de comunicació o votació per tal d'obtenir respostes i treure'n conclusions. Probablement, en aquest cas, el problema sigui que en realitat el què falta és una persona o equip que gestioni aquestes comunicacions amb els col·laboradors per alliberar d'aquesta tasca els programadors principals.[/blockquote]Què en pensen els desenvolupadors de programari lliure?

NacióDigital ha parlat amb diversos desenvolupadors que participen o coordinen projectes de programari lliure en àmbits més reduïts per saber la seva opinió sobre les pràctiques en els grans projectes i la seva experiència en entorns propis. En general, les declaracions coincideixen a destacar, com en el cas de Bernat Borràs, la diferència entre projectes amb el suport de grans empreses i aquells que són personals o de grups d'individuals. 

Així, en el cas dels que tenen el suport d'empreses, sovint ja hi ha una previsió de funcionalitats a incloure i, per tant, les aportacions externes que no entren dins dels plans previs solen acabar sense resposta. En els projectes més reduïts, però, tampoc es poden atendre sempre les peticions dels usuaris perquè es sovint es tracta de feines no remunerades i incloure algunes sol·licituds o canvis implica un temps del que no es disposa per revisar-les i adaptar-les.

De fet, com indica Borràs, el fet que una gran empresa alliberi el seu codi ja implica beneficis per a la comunitat de programadors -perquè tenen accés a noves eines i rutines-, tot i que seria interessant que hi hagués més transparència perquè els usuaris i programadors externs poguessin conèixer la política d'acceptació de noves funcionalitats i canvis.

[blockquote]Diferents conceptes de democràcia en el programari lliure

És interessant tenir en compte que el codi obert pot aportar, per un costat, més possibilitats de participació per part dels usuaris, però també implica que un programador tingui la possibilitat de copiar la feina feta per una empresa i modificar-la segons les seves necessitats. 

Així doncs, malgrat que sovint es fa difícil gestionar les sol·licituds i desenvolupar-les, i per tant es pot entendre que en aquest sentit hi ha una manca de democràcia en els projectes més populars, també és cert que els usuaris que saben programar disposen d'eines per tal d'adaptar-se totalment aquests projectes segons l'ús que n'hagin de fer.[/blockquote]La proposta del SOM Research Lab: eines per a la transparència
 
Per canviar aquesta situació, des de SOM Research Lab s'estan preparant eines i recomanacions que podrien convertir-se en resultats concrets durant aquest 2016 per transformar els processos de desenvolupament de programari en democràtics i transparents en què es puguin definir explícitament les regles de decisió. Un cop definides, es podran seguir i automatitzar per produir programari útil pels interessos de la comunitat. 
 
El grup de recerca va començar fa un parell d'anys una línia general d'investigació sobre l'anàlisi del món del codi obert que a curt termini se centrarà en l'estudi de les eines democràtiques en aquests entorns, amb la previsió de sol·licitar finançament a Europa per poder estudiar amb més detall el desenvolupament participatiu de programari.

[blockquote]Projectes estudiats

L'estudi s'ha basat en els 25 projectes més populars a Github, que són els següents:

Bootstrap (Twitter): base de disseny que s'adapta a la mida de la pantalla, creat per Twitter, cada cop més popular com a estàndard de disseny.
Free Programming Books: Llistat col·laboratiu de llibres de programació gratuïts.
AngularJS: Entorn d'execució de serveis web basat en Javascript i HTML.
D3.js: Llibreria en Javascript per al treball amb elements gràfics, ampliable amb extensions i àmpliament utilitzat en l'àmbit de la visualitza
NodeJS: Entorn d'execució basat en el motor de Javascript V8 de Chrome.
Font-Awesome: Recurs per a utilitzar fàcilment un gran ventall d'icones i elements gràfics en pàgines web
JQuery: Llibreria Javascript molt utilitzada per a facilitar certes tasques.
HTML5 Boilerplate: Base de disseny per a preparar pàgines web en HTML5
React: Llibreria Javascript creada per Facebook i posada a disposició dels usuaris
Meteor: Entorn de creació d'aplicacions web basat en Javascript
oh-my-zsh: gestor de configuració de Zsh, una consola de comandaments alternativa en sistemes UNIX
gitignore: gestor de configuració per a amagar arxius dins del propi Github, orientat a desenvolupadors
Rails: Entorn de programació basat en el patró MVC, també usat directament per programadors.
Linux: El nucli de Linux, utilitzat pel propi sistema operatiu.
Homebrew: gestor de paquets per a OS X
Animate.css: Conjunt d'animacions per a llocs web
impress.js: Basat en Prezi, ofereix opcions per a mostrar presentacions en pàgines web.
Docker: eina per a desenvolupadors i administradors de sistemes per empaquetar aplicacions i simplificar-ne la gestió i instal·lació
Guia d'estil Javascript d'AirBNB: documentació amb recomanacions i consells per a programadors
nw.js: Entorn d'execució basat en Chromium i Node.js per a escriure aplicacions natives en HTML i Javascript.
FreeCodeCamp: Comunitat basada en les eines de Github per aprendre a programar
Reveal.js: Marc de desenvolupament de presentacions en entorns web
Brackets: Editor de codi HTML, Javascript i CSS creat amb codi HTML, Javascript i CSS.
Backbone: eina per a programadors que facilita el desenvolupament d'aplicacions complexes per webs
moment: Llibreria Javascript per a manipulació de dates en el temps.[/blockquote]