L’open source farlocco

Non tutti i prodotti open source sono uguali, alcuni sono più “open” di altri… Con un po’ di esperienza ho notato che alcuni progetti molto lodevoli scivolano su dei piccoli (ma significativi) dettagli. Pertanto ho cercato di fare una lista delle cose che mi fanno stare alla larga (o comunque valutare negativamente) da progetti che si dichiarano open source ma evitano (volutamente o no) di fornire informazioni importanti al loro utilizzo. Ad onor del vero sarebbe meglio chiamarla una “deficienza di informazione”: il sorgente è lì pronto ma, di fatto, di difficile utilizzo per mancanza (o difficoltà di reperimento) di alcune informazioni (ah la documentazione!).

Ecco la lista (non pretendo che sia esaustiva):

  • il prodotto non fornisce istruzioni dettagliate (eventualmente con rimandi ad altre procedure) di installazione e/o i requisiti
  • la procedura di installazione oltre a soffrire del difetto del punto precedente viene proposta come “script da scaricare ed eseguire al volo” (ovvero del tipo “curl <…> | sh”): sembra una comodità ma è insidiosa? vogliamo almeno guardarlo questo script prima di eseguirlo sui nostri sistemi? ci fidiamo così tanto del prossimo? a volte questi script sono solo una sequenza di comandi che -si spera- vadano sempre a buon fine…
  • il changelog è “nascosto” ((per nascosto intendo che non si riesca a trovare dopo al massimo 2-3 click dalla home page))
  • il prodotto open source è anche venduto come software as a service (legalissimo e consigliato peraltro ma questo a volte si riflette negativamente sulla controparte open/community)
  • le procedure di upgrade sono fatte “con sufficienza”: viene dunque il dubbio che non vengano testate/documentate a dovere per favorire la versione “hosted”
  • introduzione di (pesanti) nuove funzionalità in una revision release (se non gestite correttamente): ovvero aggiungere una funzionalità che necessita di molti cambi architetturali (per esempio modifiche allo schema del db) quanto invece ci si aspettano fix di sicurezza ed in genere un incremento di una versione che già è stata dichiarata stabile.

Alcune esempi secondo la mia esperienza (tutti prodotti validi per carità):

  • Wordpress: lo uso da anni e sia la documentazione che le procedure automatiche sono eccezionali. Anche se esiste la versione a pagamento.
  • ownCloud: promette molto bene ma gli upgrade dalla 4 alle 5 e le minor revision della 5 sono andate male troppo spesso e la documentazione ed il feedback utente è di difficile reperimento. Qui la versione commerciale.
  • openphoto: anche qui una soluzione interessante con la controparte commerciale. Qui l’accento sulla parte commerciale è persino esagerato: un click sulle parole “get started” porta direttamente alla versione commerciale. Le informazioni dettagliate sono “usate lo script di installazione” o un elenco di comandi ed i prerequisiti sono fumosi (ok PHP GD ma quale versione?), stranamente si supporta Ubuntu (una distribuzione prettamente desktop), la sorgente del software è GitHub (ma sarebbe carino fornire versioni “certificate stabili” per esempio), lo script di installazione sempre quick & dirty e non supporta differenti distribuzioni (questo equivale a dire: se funziona al primo colpo sarà solo su Ubuntu), ecc… tutto questo risulta anche più fastidioso se si pensa che il progetto è stato finanziato tramite Kickstarter.