mercoledì 22 aprile 2015

Innovare imprese private e PA con l'Open Source

Il mio chiarissimo professore dell’università diceva: “L’Open Source ha un grosso problema che gli impedisce di affermarsi: se il software che uso si blocca devo poter chiamare il fornitore e riempirlo di invettive. Non perchè questo risolve il problema ma rappresenta uno sfogo psicologico. Con l’Open Source chi chiamo ?”

E’ maleducazione rispondere ad una domanda con un’altra domanda, ma se non lo fosse la risposta migliore sarebbe: quando Windows si blocca chi chiami Bill Gates ?

Forse la differenza fra Open Source e software commerciale sta proprio nel fatto che se ho un fornitore, qualcuno da chiamare, che mi ha fornito Open Source chiamandolo so che questo è nelle condizioni di risolvere il mio problema. Se come fornitore ho qualcuno che mi ha venduto software commerciale non è detto che questo sia nelle condizioni di risolvere il mio problema perché la sua soluzione è sottoposta ad una serie di blocchi e diritti d’autore che ne impediscono la piena padronanza.

L’Open Source non ha queste chiusure perché è, appunto, Open, Aperto. Ogni sviluppatore software, che non abbia remore a valutare obbiettivamente una tecnologia, utilizzando software Open Source viene pervaso da una assoluta sensazione di onnipotenza data dal fatto che le soluzioni sono a sua completa disposizione. L’unico limite è dato dalle sue capacità di conoscere e imparare a conoscere queste soluzioni.

Questa caratteristica lo fa amare dagli sviluppatori e altre parti interessate che si uniscono in gruppi chiamati “community”. Queste community si concentrano attorno, solitamente, agli sivluppatori storici delle applicazioni e li supportano nelle evoluzioni migliorative di queste e nel supporto degli utenti finali. Provate a cercare su Google la risposta ad una qualunque domanda su una applicazione Open Source e confrontate il risultato ottenuto con una domanda molto simile su una applicazione molto simile ma di Software proprietario. Le informazioni, nel primo caso, saranno enormemente maggiori in numero e qualità.

La quantità di informazioni a disposizione è tale che può far pensare ad un mondo non organizzato e dominato dal caos. Così non è, si legga “La cattedrale ed il bazar” (LCB) dove si confrontano due filosofie di sviluppo software: quello controllato a monte da rigidi paradigmi, normalmente usato nello sviluppo di software proprietario, e quello senza controllo dove la responsabilità di ciò che si fa è demandanta ai membri del gruppo informale di lavoro chiamato comunità di sviluppo. Il primo metodo basa tutto sulla metodologia non fidandosi del programmatore, il secondo basa tutto sulle capacità del programmatore che lavora ad un progetto spinto solo dalla passione.

Le comunità di sviluppo che stanno dietro ai progetti Open Source sono alla base, anche, delle modifiche evolutive delle soluzioni. Il settore Informatico è caratterizzato da una velocità evolutiva che pochi altri settori hanno. Stare dietro a queste evoluzioni, delle tecnologie informatiche, richiederebbe sforzi impossibili da sostenere per le aziende di prodotti software commerciali attuali. Le soluzioni Open Source hanno, tipicamente, una architettura a strati. Ogni strato è basato su un progetto Open Source seguito da un’altra community. Questa innovatività applicata a tutti questi livelli si traduce in una velocità evolutiva che solo con questo modello di sviluppo è possibile avere. Le aziende produttrici di software commerciale usano architetture vecchie, proprio perchè costose da evolvere, sulle quali applicano sempre aggiustamenti e miglioramenti, spesso, solo di facciata (alle interfacce) rendendole ancora più fragili e difficilmente manutenibili.

Quindi organizzare e dirigere o lasciare che le cose vadano per il loro verso da sole ?

Nei matrimoni fatti dalle mie parti, nel Sud Italia, il numero di invitati supera normalmente il centinaio di persone. Il cruccio più grande per gli sposi è “organizzare i posti a sedere ai tavoli al ristorante”: i cugini che vogliono stare assieme e quindi da mettere allo stesso tavolo, la zia che ha litigato con la nuora e quindi da collocare ai tavoli agli estremi più distanti nella sala ecc. ecc.. Coordinare tutto questo in funzione di avvenimenti dinamici come le liti o i forfait non è facile, tutto il contrario: è la cosa più difficile del ricevimento.

Ma se non ci si occupasse di questa organizzazione ? Se non si assegnassero i posti a sedere ? Cosa succederebbe ? Sicuramente i cugini se vogliono stare assieme si siederebbero allo stesso tavolo e se il tavolo non li contiene tutti si distribuirebbero su due tavoli vicini. La zia si guraderebbe bene di trovare posto nei pressi della nuora, e questa sicuramente farebbe lo stesso, mentre i posti vuoti si concentrerebbero su tavoli vuoti.

Alla fine la differenza sta, tornando alla programmazione, sul numero di sviluppatori concentrati su un prodotto software e, questo numero fa la differenza. Vi siete mai chiesti quante persone lavorano allo sviluppo dei principali software proprietari che usate tutti i giorni ? Immaginate centinaia ? Hmmm molti ma molti meno.

Al contrario l’ordine di grandezza delle community dei principali prodotti Open Source sono di almeno alcune migliaia. Per migliaia di occhi puntati su un bug di un software la sua soluzione è immediata e banale. Al contrario: migliaia di occhi puntati su poche persone che sviluppano software proprietari usati da tante persone rende le cose molto più complicate.

Su queste argomentazioni si sono versati fiumi di inchiostro, sulle riviste specializzate, e fiumi di byte nei blog. In questi spesso si fa riferimento ad una storia (CAL) che si basa sulla presunta impossibilità del bombo (un tipo di ape) a volare. In questa storia si dice che a causa del rapporto fra l’apertura alare del bombo ed il suo perso, questo non potrebbe volare. Di fatto il bombo vola. Perché sopperisce al rapporto di cui sopra con una frequenza dello sbattere delle ali che gli consente il volo. Con questa storia si tende a riportare le speculazioni teoriche al confronto con la realtà.

Quindi, a mio avviso, la differenza fra software proprietario e software Open Source sta nel fatto che se il software che uso si blocca, se sto usando software Open Source, mi basterà fare una ricerca su Internet per trovare supporto e, probabilmente, scaricare la patch al problema mentre con il software proprietario devo inviare la richiesta e sperare che qualcuno, prima o poi, se ne occupi. E non parliamo, qui, delle garanzie nei contratti software: lo sapevate che Microsoft Windows Server 2000 riconosce, in caso di danni causati da un suo bug, “ben” 5 dollari ?

Sarà per queste motivazioni che i big dell’ICT oggi usano Linux per i loro servizi: Google, Facebook, Amazon.

Per il software per la tua impresa: vuoi qualcuno da chiamare al telefono, se hai un problema, e riempire di invettive (tenendoti il problema) o preferisci soluzioni che ti consentono di rivolgerti, per qualunque problema, ad un fornitore oltre che ad una community numerosa di esperti che possono sicuramente risolvere il tuo problema ?

Nessun commento:

Posta un commento