Software Open Source o proprietario? Per rispondere ci vuole una cultura del software?

Daniele Bailo lavora nella sezione ICT del progetto Europeo EPOS per la condivisione delle Infrastrutture di Ricerca Europee. Dopo il dottorato in scienze dei materiali, è tornato alla sua passione originaria: database di nuova generazione, sviluppo di applicazioni Web con tecnologie web 2.0. Quando ha letto lo sfogo di Francesco sulla sostenibilità dell’Open Source mi ha mandato questo suo contributo alla discussione

Lavoro oramai da anni nell’ambito della ricerca ed ho avuto la possibilità di usare e sviluppare software sia open source che proprietario. Al momento uso e sviluppo prodotti “free”.

Cerchiamo di vedere la questione dal punto di vista dello sviluppatore. In generale sono d’accordo con le considerazioni fatte dai primi due commenti all’altro articolo:

  1. si deve avere ben chiaro prima il modello di business

  2. bisogna farsi i conti, capire da quale base (o da quali risorse, più in geerale) si parte (scusate ma la citazione mi viene spontanea: “Chi di voi, volendo costruire una torre, non si siede prima a calcolarne la spesa, se ha i mezzi per portarla a compimento”… Lc 14, 25)

Aggiungo alcuni elementi per la discussione:

Un punto da considerare, fondamentale, è la comprensione del fatto che il software free non funziona da solo, non e' eterno, ci si deve lavorare sopra continuamente! (parlo di applicazioni un minimo elaborate, non il programmino per indovinare il codice fiscale!) Questo è quello che permette agli sviluppatori free di guadagnare. Altrimenti è chiaro che i creatori di Free Software potrebbero solo essere filantropi. Il software che producono deve essere installato, aggiornato. Il personale che lo usa ha bisogno di formazione. L’utente potrebbe fare delle richieste particolari diverse dal software base su cui lo sviluppatore può guadagnare (a fronte del lavoro fatto).

Un altro punto importante per lo sviluppatore è che in genere il software free non parte (quasi) mai da zero. Si usano librerie, parti di codice, ereditate da altri sviluppatori free. L’aiuto di una comunutà potenzialmente mondiale di sviluppatori rende il software sviluppato molto migliore di quello che un singolo può fare. In pratica, se la cosa è di interesse, hai un software in cui molte funzioni disponibili sono presenti grazie al lavoro di altri.

Altro tema: documentazione e supporto. Per il software non-free viene fatto dall’azienda a fronte dell’acquisto della licenza. Nella mia esperienza il supporto tecnico è spesso efficiente, è “compreso nel prezzo” della licenza. Nel caso di software free spesso è pieno di documentazione su web (vedi il bellissimo stackoverflow), anche se ovviamente non c’è supporto tecnico da un helpdesk. Bisogna farselo un po' da soli.

Ultimo aspetto: che tipo di sofware si sta sviluppando? Il free non è per tutti i sofware esistenti. Un sistema di puntamento laser (tanto per dirne una) probabilmente è talmente di nicchia che l’open source non avrebbe molto senso (dov’è la comunità di sviluppatori che collabora alla sua creazione?)

Quindi, per tornare alla domanda iniziale: è sostenibile da tutti (gli sviluppatori) l’open source? Dipende da cosa si vuole fare:

  1. una possibilità è creare software free, e proporre al cliente di installarlo, fare supporto tecnico o eventualmente modificarlo a pagamento. Forma meno sicura della licenza (l’utente potrebbe sempre dire “beh, provo io a fare tutto poi vediamo”). In questo modo si riducono le reponsabilità date dalla vendita della licenza, dal dovere di fornire supporto tecnico e dal dovere degli update. Ma è ovviamente più rischioso, motivo per cui in effetti solo chi ha le spalle coperte può permettersi una cosa del genere.

  2. Un’altra possibilità, lo scenario in cui le cose funzionerebbero meglio per tutti, è che lo sviluppatore è pagato da una azienda o ha le spalle molto ben coperte. In questo caso decade la necessità del guadagno sicuro con la licenza. Per questo secondo scenario vorrei sottolineare che il problema non è solo dello sviluppatore, ma anche di una sorta di “cultura del software”. Il criterio di scelta quando si deve acquistare del sofware a volte è, purtroppo, solo quello del risparmio. L’acquirente pensa “ora me lo installo, vediamo se riesco da solo, poi casomai chiamo lo sviluppatore” (tanto per parlare chiaro). Ma questa è una politica cieca: si perde tempo, si installa un prodotto scadente, e alla fine si spende comunque, magari un po' di meno. Quando il criterio di scelta non è solo il risparmio, ma anche la visione del futuro, allora ci si può permettere di pagare una persona in maniera continuativa per l’installazione, creazione, manutenzione del software.

Quindi, per concludere, ritengo che gli aspetti fondamentali siano:

  1. il modello di business.

  2. una valutazione obiettiva e razionale delle proprie risorse

  3. la cultura del sofware nell’ambiente in cui ci si trova ad operare. Quest’ultimo punto forse merita di essere discusso ed espanso. A presto

Qualche commento da Marco

Pubblico volentieri questi pensieri e consigli di Daniele perchè mi interessa molto mettere in contatto diretto chi “lavora in trincea” come lui e Francesco, sia col grande pubblico sia (soprattutto) con i guru che hanno validi consigli e una visione più d’insieme. Sicuramente dovrebbero esserci più scambi, più frequenti, fra i due gruppi (magari a partire dai commenti a questo articolo).

A parte questo sottolineo, per stimolare ulteriori discussioni, che:

  • il “punto fondamentale” iniziale vale pari pari anche per il software proprietario. La differenza del software libero/Open Source è che se non ti piace come viene mantenuto e servito, hai molte più probabilità di far fare quello stesso lavoro a un altro

  • lo “scenario in cui le cose funzionerebbero meglio per tutti” è proprio quello che Francesco vede come l’unico realizzabile o quasi

  • “documentazione e supporto. Per il software non-free viene fatto dall’azienda…”. Vero, in generale, ma ricordo che tutta questa discussione è iniziata proprio da un software proprietario la cui documentazione non è incompleta o mancante, ma dice cose false!

  • la politica cieca del “perdere tempo, installare un prodotto scadente” è un male generale. Anche se probabilmente è più grave nel software, visto che quasi nessuno sa davvero cos’è e come funziona. Il problema della “cultura del software” è sicuramente grave