L’Open Source, quando funziona, e quando no.

Il titolo può fuorviare. In realtà non sto scrivendo di ambiti in cui funziona la politica opensource, e altri in cui non funziona: ho avuto un’interessantissima discussione a proposito di questo col mio amico Antonio, su Facebook (chi dice che ci sono solo idioti?), e forse potrei riportarne gli esiti qui, tuttavia adesso, in questo post, voglio parlare di qualcos’altro. Qualcosa che mi preme, che ho visto succedere più volte, che affossa, molte volte, i progetti open.

Leggevo proprio l’altro giorno infatti il post di Emanuele, che consiglio a tutti, il quale illustra come nasce e come cresce un progetto open, le dinamiche che lo portano alla vittoria, al fallimento, allo stallo; ebbene, il carissimo Emanuele ad un tratto, verso la parte finale dell’articolo ha parlato di qualcosa a cui tengo veramente molto: l’essere poi realmente open. Questo non ha molto a che fare con la licenza, ovvero: ok, ovviamente devi licenziare il tuo progetto per essere realmente aperto, ma, quando le persone cominciano a modificare il tuo codice, devi essere in grado di apprezzare tali cambiamenti, ed un bravo sviluppatore (soprattutto un bravo project manager) ha la sobrietà e la lucidità di giudicare codice concorrente dall’alto, senza far scendere minimamente in campo l’orgoglio.

In molti purtroppo, hanno ridimensionato il fenomeno dell’opensource, non perchè non funzioni, ma perchè alcuni progetti molto spesso per una ripicca di qualcuno hanno subito ritardi, stalli, portando poi ad un nulla di fatto. È questo poi il motivo per cui GIMP è ancora fermo e non vengono rilasciate versioni stabili da eoni, così come accade per Compiz. Tutti progetti cari al buon telperion, che ne parla come un padre di un figlio che va male a scuola; ci espone di una fantastica patch per GIMP che ne modifica sensibilmente l’interfaccia grafica, portando in alto i controlli dello strumento che si sta utilizzando.

Proposta tale patch, quale risposta viene data? “No ma, noi abbiamo deciso così, guarda, è facile: fai un fork e applica il tuo cambiamento”.

Ma siete scemi? L’ottica del forka o muori è morta da anni. Bisogna essere dei leader calibrati per saper condurre un progetto in totale apertura, e se non lo si è, preferisco accettare che mi venga chiuso il ciclo di sviluppo, piuttosto che vedere esclusi tutti i miei contributi. Ci sono un po’ di progetti che, grazie a queste alzate d’ingegno, sono rimasti fermi anni anzichè portare la ventata d’innovazione che il loro manifesto prometteva: è ora di smetterla con quest’ottica dittatoriale del “si fa come dico io”. No: si deve fare cos’è meglio per tutti. E cos’è meglio per tutti si vede, semplicemente usando il programma, provando le patch concorrenti. Potrebbe sembrare che il tutto rallenti, ma in realtà se si cominciano a scartare i contributi esterni, i tempi si faranno ancora più stretti. E col tempo l’apporto di codice al GIT del progetto calerà drammaticamente, perchè in un’ottica del genere, o sei pagato, o sei fortemente legato (in maniera sentimentale, dico) ad altri membri del progetto, oppure non ci stai, a fare la pecora.

L’opensource è anche fantasia, e chi non lo capisce merita che il proprio progetto affondi.

This entry was posted in Informatica, Linux and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.
  • Fulvio

    Ciao Blaster,
    ho scoperto il tuo blog quasi per caso, e dopo qualche mese che mi trovo a leggerti voglio postare anch’io un commento su questa faccenda, facendo qualche premessa.
    Non seguo nessuna dottrina, che sia opensource, closedsource, questo o quell’altro metodo di sviluppo, questo o quel linguaggio di programmazione, etc. Detto questo parlando del tuo post in generale e non della vicenda gimp, sono d’accordo quando dici che la pratica del fork o muori è morta da anni (più che altro dovrebbe; tutto sommato, se proprio non mi piace quell’editor di testo/immagini/etc posso sempre riscriverlo da zero, il che potrebbe essere anche cosa buona se la progettazione è “moderna” e si porta avanti l’impegno).

    Sono un po’ meno d’accordo quando dici “Bisogna essere dei leader calibrati per saper condurre un progetto in totale apertura, e se non lo si è, preferisco accettare che mi venga chiuso il ciclo di sviluppo, piuttosto che vedere esclusi tutti i miei contributi.” Un progetto open source è si aperto (principalmente dal punto di vista dei sorgenti), ma non è senza struttura. Questo vuol dire che è il gruppo principale di sviluppo che ne detiene la vision e delinea la roadmap e decide cosa è giusto e cosa no. Si può essere anche in totale disaccordo, ma alla fine qualcuno che comanda (che sia un developer o un gruppo non conta) ci deve essere e se non siamo d’accordo con lui/loro c’è poco da fare. Se non ci fosse qualcuno che comanda allora sarebbe anarchia. Più che giudicare il team di sviluppo di GIMP mi chiedo perché lo sviluppatore non ha chiesto *prima* di mettere mano al codice se le feature che voleva implementare fossero utili/in linea con la visione del progetto/metteteci un buon aggettivo a piacere. Di solito non si va in casa d’altri facendo i padroni, se si vuole fare uno sforzo si chiede prima se è utile; arrivare a cose fatte ti mette davanti ad un out-out, o dentro o fuori, e pace se hai lavorato un mese e alla fine non ti viene riconosciuto. Tutto sommato il team non è stato poi così cattivo a mio parere.

    In sostanza totale apertura secondo me non vuol dire “ti porto il mio lavoro, usalo”. Apertura vuol dire: “Hey avete delle idee e un po’ di tempo, discutiamone assieme, e se sono buone ci lavoriamo assieme”.

    Spero di non creare altri flame :)

  • http://dottorblaster.it/ Bl@ster

    Mi sono espresso male con quella frase, non volevo intendere che in maniera obbligatoria qualunque contributo dev’essere incluso in un progetto, volevo semplicemente dire che prima di rigettare del codice (e del codice funzionante, non dei mockup sterili), ci si dovrebbe mettere seduti, come dici tu, a discuterne. E visto che ormai si è reiterata la stessa storia in più commenti, non accetto nemmeno un “ritenta, la prossima volta sarai più fortunato”, perchè, soprattutto con la base di sviluppo di un progetto come GIMP, puoi permetterti non solo di discutere un’idea, ma dato che usi GIT, di farne un branch sul repository ufficiale del progetto, e portarlo avanti in parallelo per, che so, un mese, e vedere che fine fa.

    È proprio per questo che Linus Torvalds ha inventato GIT, non per castrare ma per generare un workflow non indifferente anche dietro la minima feature. ;)

  • Pingback: Daniel Robbins – Costruire una distribuzione