Informatica e Scienza…

scritto il 27-09-2004 per ITVC.net

…ovvero come occuparsi di IT facendo tesoro degli insegnamenti Galileiani.

Premessa: non parlo di informatica come “scienza dell’informazione”, quanto piuttosto dell’informatica “tecnica” che facciamo tutti i giorni: sistemi, architetture, configurazioni, assistenze… perchè l’attività di un sistemista o di un network engineer deve essere considerata scienza?

Beh, innanzi tutto perchè la mia vecchia enciclopedia definisce la scienza come “il sapere, l’aver conoscenza di qualche cosa”. E fin qui ci siamo: siamo tutti scienziati.

Ma partiamo dalle origini della Scienza Moderna: Galileo Galilei.
Galilei ha rivoluzionato il modo di vedere e studiare il mondo, facendo fare un grosso salto culturale a tutta l’umanità con l’invenzione del metodo scientifico.

Prima di lui era IPSE DIXIT: “lui l’ha detto”.
Per secoli i pensatori basarono il loro sapere su quello che disse Aristotele; era IPSE DIXIT. Quello che carpì Aristotele ragionando sul mondo era dato per certo, perchè l’aveva detto lui, senza che nessuno si era posto il problema di verificare in modo rigoroso le idee che sosteneva: nessuno prima di Galilei.

Ora, l’informatica è piena di IPSE DIXIT!
Tutti quelli che pendono dalle labbra dell’amico che è “entrato nel sito della NASA” e che si fidano ciecamente di ogni sua affermazione seguono l’IPSE DIXIT.
Peccato che molte volte non sia tutto vero, e che sarebbe bastato qualche semplice “esperimento” per scoprire la verità.

Galilei, dicevo, si è posto il problema di verificare quello che si andava credendo da molto tempo attraverso basi sperimentali.
Ogni teoria, ci dice, per essere vera deve essere dimostrata con i risultati di un esperimento. Esperimento che può venir ripetuto da altre persone che otterranno gli stessi risultati.
Questi insegnamenti devono essere tenuti sempre a mente da chi fa il nostro lavoro, perchè non ci dobbiamo comportare come azzeccagarbugli ma come scienziati!

Nella scienza esistono 3 livelli di verità.


Il primo livello è quello delle prove riproducibili: se non credo che sia vera una certa cosa, ripeto l’esperimento e osservo il risultato.
La scienza ci insegna il principio di inerzia: ognuno di noi lo può verificare mettendo il cambio in folle mentre stiamo viaggiando in macchina.
Davanti ad un problema informatico, chi lo analizza e capisce quando si presenta e in che condizioni si verifica sta ragionando con rigore scientifico; chi sostiene che va rifatto tutto e dà la colpa a Bill Gates non sta agendo con rigore scientifico.
Nel caso informatico, al primo livello possiamo mettere tutte le cose riproducibili:
“quando apro un documento in word contenente la parola “buzuzu” mi dà errore”
Questa affermazione può essere vera o falsa, basta provare per scoprirlo.

Il secondo livello è quello degli eventi che si possono studiare ma non si possono controllare: la nascita di una stella è un esempio in ambito scientifico.
Nel “nostro” ambito, gli esempi possono essere:
“ogni tanto quando apro un documento in word mi esce un errore”
Se andiamo sul PC della segretaria, apriamo un documento word e non abbiamo l’errore NON significa che è tutto a posto.
Bisogna fare ulteriori prove, mettere in guardia l’utente su cosa fare e cosa controllare quando si presenta il problema… e magari poi dopo aver approfondito si ricade nell’esempio del primo livello.

Il terzo livello è quello degli eventi che sono accaduti una sola volta e non sono replicabili nè osservabili: la nascita dell’universo.
Cosa c’è di analogo nell’informatica?
Io direi una cosa del tipo:
“ho formattato il PC perchè ogni tanto quando aprivo un documento in word mi usciva un errore”
Difficile se non impossibile in una situazione simile andare ad analizzare il problema! Non si può ricreare la situazione precedente perchè il PC in questione è stato bello che formattato. Si possono fare solo ipotesi non verificabili.

Ma la scienza e l’informatica non vivono di sole analogie e similitudini… ci sono anche differenze molto, molto importanti.
La differenza fondamentale è che la scienza si occupa di capire il mondo che ci circonda, le sue leggi e la loro applicazioni mentre l’informatica è interamente creata da altri uomini.
Pensate quanto è affascinante per uno scienziato scoprire una regola della natura, scoprire una legge che è stata creata da chissà chi e chissà perchè.
Potete credere in Dio o nel caos, in ogni caso una scoperta di questo tipo non è paragonabile con la scoperta di una falla in un software, non c’è storia!

Questo perchè l’informatica si occupa di qualcosa che non è in natura, ma che è stato interamente creato da altri uomini.
Quando si studia un argomento, quando scopriamo come fare una certa cosa, quando viene scoperta una vulnerabilità si sta “solo” scoprendo qualcosa che è stato fatto da un altra persona come noi.

E’ incredibile come questo possa sminuire quello che facciamo tutti i giorni, ma bisogna guardare in faccia la verità.
La verità è anche che non è possibile sapere tutto, ma il livello delle nostre conoscenze è un metro della nostra persona.
E riflettendo si vede come il livello di conoscenze influisce sul nostro modo di ragionare in termini di rigore scientifico.

Quante volte avete sentito frasi del tipo:

  • “è windows che ogni tanto fa conflitto”

  • “si vede che non si è installato bene”

  • “si è incasinato tutto”

Bene, queste frasi sono classiche di chi ha scarse conoscienze in materia, e non è in grado di applicare rigore scientifico al proprio lavoro.

Quindi se non vogliamo che l’industrializzazione dell’informatica sminuisca il nostro lavoro e ci porti ad essere trattati come criceti che girano la ruota smettiamola di fare gli azzeccagarbugli e iniziamo a fare gli scienziati… applicando il metodo scientifico 😉

Rate this post

Written by Daniele
Hi, I’m Daniele! In April 2012 I quit my full-time IT job to pursue entrepreneurship and a location independent lifestyle.