giovedì 4 giugno 2015

Ricerca

Sapete perché non viviamo più nelle caverne ? Grazie ad un “tarlo” che l’essere umano ha nella mente che si chiama CURIOSITA’. La curiosità è il sentimento che spinge l’uomo all’azione più bella ed elegante di cui è capace la RICERCA. Cercare il modo migliore per fare le cose, cercare come ottenere di più da quello che si fa, cercare la soluzione più economica per fare le cose, cercare di ottenere ciò che non si ha… sono doti che solo l’uomo ha e che purtroppo stiamo perdendo…
Mia madre il sabato faceva sempre la pizza al forno e, nonostante sia una ottima cuoca, le veniva sempre spessa e spugnosa e non piaceva a nessuno, neanche a lei.
Io adoro la pizza e prepararla ed anche a tutta la mia famiglia (mangiarla più che farla), ma a noi piace sottile e croccante !!! La prima volta che mi cimentai a prepararla io mi venne tale e quale a quella di mia madre. Non piacque a nessuno. Una volta assodato che a tutti piaceva sottile e croccante mi sono messo al lavoro per riuscire ad ottenerla. Google, esperimenti ogni sabato, ricerca dei lieviti al supermercato, prove con vari tipi di farina, prove con vari tipi di teglie, la lievitazione lenta, veloce, lentissima, nella coppa per la lievitazione, impasto duro, impasto morbido, zucchero nell’impasto, il sale all’inizio, il sale alla fine, l’impasto ne congelatore un giorno, due giorni, tre giorni, una settimana…
Dopo oltre un anno di ricerca ora faccio la pizza sottile e croccante come piace a noi.

Ora vi do la ricetta per passare da una pizza spessa e spugnosa ad una sottile e croccante:
  • tanta motivazione (la ricerca costa)
  • molta umiltà (è facile dire “io so, io so fare” è difficile chiedere e dire di non sapere)
  • nessun attaccamento a storia e tradizioni (l’innovazione crea storia e tradizioni)
  • tanta pazienza e tolleranza verso l’errore (la strada per il successo è lastricata di insuccessi)
  • tutta l’autocritica che si riesce a raccogliere

La ricerca è indispensabile per provare a fare innovazione, l’innovazione serve al genere umano a progredire e senza progresso non c’è futuro. Le tradizioni e i processi consolidati devono essere la base e l’ispirazione per creare nuove tradizioni e nuovi processi da consolidare.

Oggi si hanno a disposizione tantissimi strumenti per fare ricerca: la rete, i social sono strumenti per cercare e condividere esperienze e competenze. Si ricerca e condivisione non solo gattini e selfie.
In ogni momento possiamo tirare fuori dal cilindro quasi tutto lo scibile umano su un qualunque argomento, sta a noi decidere se fare ricerca e innovazione o continuare a magiare la pizza spessa e spugnosa.

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 ?