Mirko Caserta

Carl Sagan, Lo Scetticismo E l'Ingegneria Del Software

Ieri sera leggevo questo articolo in cui viene citato Carl Sagan, probabilmente il migliore divulgatore scientifico mai vissuto sul pianeta Terra.

Sagan dice, con parole molto più efficaci delle mie, che esiste un delicato equilibrio fra scetticismo ed apertura mentale nell’affrontare ipotesi e idee. Leggendo il suo ragionamento mi sono reso conto che questa faccenda del giusto equilibrio è applicabile a tanti campi della conoscenza umana, fra cui l’Ingegneria del Software.

Quello dei computer e della tecnologia è un mondo in cui ci si muove alla velocità della luce. Un anno nel mondo della software è l’equivalente di un’era geologica. Linguaggi, framework, database e paradigmi nascono a ritmi impressionanti. E molti muoiono altrettanto rapidamente.

La selezione naturale della specie si applica anche al mondo della tecnologia, con la differenza che il marketing spesso riesce a tenere artificialmente in vita dinosauri che la natura avrebbe spazzato via da tempo.

La mia personale filosofia riguardo l’innovazione consiste nel tenere occhi e mente aperti in modo da poter captare nuovi input che mi permettono di lavorare meglio, più velocemente e con meno fatica. Allo stesso tempo, lo scetticismo deve intervenire per scremare la fuffa e le iperbole dell’hype.

Il fatto che la vera innovazione oggi avviene prevalentemente nel mondo open source, ci permette di poter sperimentare con una libertà che fino a qualche anno fa non era immaginabile.

Se mi sembra di aver individuato uno strumento utile (che sia un linguaggio, un framework o la qualunque), posso scaricarlo, provarlo, giocarci liberamente per tutto il tempo che serve a farmene un’idea concreta e capire se vale la pena investire più tempo per imparare qualcosa di nuovo che domani mi aiuterà a lavorare meglio e tornare a casa prima la sera. Ok, forse non riuscirò a tornare a casa prima la sera ma… ci siamo capiti.

Per questo preciso motivo ho imparato a diffidare di chi parla di strumenti che non conosce. Se dici che il mondo NoSQL è una ciofeca perché non esiste supporto alle transazioni e non hai mai provato a studiare neanche un MongoDB, mi dispiace ma il tuo argomento è fuffa allo stato puro esattamente come è fuffa l’hype di un commerciale Oracle. E magari nel mio progetto le transazioni neanche servono.

Personalmente tengo in considerazione soltanto il parere di chi ha lavorato con certe tecnologie ed ha un minimo di esperienza pratica in un certo campo.

La definizione dell’architettura di un progetto software è una cosa in cui le chiacchiere da bar e/o da commerciale non trovano posto. Senza contare che ogni progetto è un mondo a sé e richiede un’analisi specifica in cui bisogna saper bilanciare giuste dosi di apertura mentale ad altrettante di sano scetticismo.

Comments