Pagine

martedì 26 febbraio 2019

Informatica: la terza rivoluzione "dei rapporti di potere"

di Enrico Nardelli

L’informatica costituisce una vera e propria rivoluzione per l’umanità, che io chiamo la “terza rivoluzione dei rapporti di potere”.

Le prime due sono state quella della stampa e quella industriale.

L'invenzione nel quindicesimo secolo della stampa a caratteri mobili ha provocato una rivoluzione nella società sia di tipo tecnico, perché ha reso possibile produrre testi in modo più veloce e più economico, sia di tipo sociale, perché ha reso possibile una più diffusa circolazione della conoscenza. In ultima analisi, ciò che è accaduto è stata la prima rivoluzione nei rapporti di potere: l’autorità non era più legata alla parola, al dover essere in un certo luogo in un certo momento per poter sapere ed apprendere dalla viva voce del maestro. La conoscenza rimane sempre un potere, ma questo potere non è più confinato alle persone che lo posseggono o a coloro che possono essere vicine ad esse nel tempo e nello spazio. La replicabilità del testo ha implicato la replicabilità della conoscenza in esso contenuta a distanza di tempo e di spazio. Tutti coloro che sapevano leggere potevano avere adesso accesso alla conoscenza. Questo ha messo in moto cambiamenti sociali epocali: la diffusione della conoscenza scientifica, giuridica e letteraria hanno dato un enorme impulso all’evoluzione della società, che è diventata sempre più democratica.

Nel giro di due secoli e mezzo, quasi ottocento milioni di libri stampati in Europa hanno messo in moto un irreversibile processo di evoluzione sociale. La conoscenza scientifica, rivoluzionata dal metodo galileiano, proprio grazie alla stampa si diffonde in tutta l’Europa e costituisce uno dei fattori abilitanti della successiva rivoluzione, quella industriale, che io individuo come la seconda rivoluzione nei rapporti di potere.

Questa, avviatasi nel Settecento è stata altrettanto dirompente: la disponibilità di macchine ha in questo caso reso replicabile il lavoro fisico delle persone. Le braccia umane non sono più necessarie perché la macchina opera al loro posto. Si ottiene una rivoluzione tecnica, perché si replicano più velocemente i manufatti. Le macchine possono produrre giorno e notte senza stancarsi, possono addirittura produrre altre macchine, amplificano e potenziano le capacità fisiche degli esseri umani. Si ottiene una rivoluzione sociale: si abbattono limitazioni fisiche al movimento e all'azione. Una singola persona può spostare enormi montagne di terra con una ruspa, spostarsi velocemente con un’automobile, parlare con chiunque nel mondo con un telefono. L'evoluzione ed il progresso della società umana vengono quindi ulteriormente accelerati grazie alla possibilità di produrre oggetti fisici più velocemente e più efficacemente, per non parlare delle conseguenze in termini di trasporto di persone e cose. Il potere che viene messo in discussione in questo caso è quello della natura: l’umanità assoggetta la natura e ne supera i limiti. Si possono attraversare velocemente i mari, solcare i cieli, imbrigliare acqua e fuoco, spostare montagne.

La rivoluzione della stampa aveva dato una marcia in più all'umanità sul piano immateriale dell’informazione, la rivoluzione industriale ha fatto altrettanto per la sfera materiale. Il mondo si popola di "artefatti fisici" (cioè macchine) che iniziano ad incidere in modo esteso ed approfondito sulla natura del pianeta.

Poi, a metà del Novecento, dopo circa ottocento miliardi di macchine, si avvia lentamente la terza rivoluzione nei rapporti di potere, quella dell’informatica.

All’inizio sembra essere niente altro che una variante evoluta dell’automazione prodotta dalla rivoluzione industriale, ma dopo qualche decennio si comincia a capire che è molto di più di questo, perché incide sul piano cognitivo e non su quello fisico. Non si tratta più di replicare la conoscenza statica dei libri e la forza fisica di persone e animali, ma quella “conoscenza in azione” che è il vero motore dello sviluppo e del progresso.

Col termine “conoscenza in azione” intendo quel sapere che non è soltanto una rappresentazione statica di fatti e relazioni ma un processo dinamico e interattivo di elaborazione e di scambio dati tra soggetto e realtà. Grazie alla rivoluzione informatica, questa “conoscenza in azione” (“actionable knowledge”, direbbero in inglese, cioè conoscenza pronta ad essere messa in azione) viene riprodotta e diffusa sotto forma di programmi software, che possono poi essere adattati, combinati e modificati a seconda di specifiche esigenze locali. È cambiata la natura degli artefatti, delle macchine, che produciamo. Non sono più artefatti fisici, sono “artefatti cognitivi dinamici” (o macchine della conoscenza o macchine cognitive), azione congelata che viene sbloccata dalla sua esecuzione in un computer e genera conoscenza come risultato di tale esecuzione. La conoscenza statica dei libri diventa conoscenza dinamica nei programmi. Conoscenza in grado di produrre automaticamente, senza l’intervento umano, nuova conoscenza. Abbiamo una rivoluzione tecnica, cioè l’elaborazione più veloce dei dati, ma anche una rivoluzione sociale, cioè la generazione di nuova conoscenza. Il potere che viene scardinato, in questo caso, è quello dell’intelligenza umana. Certe attività cognitive non sono più dominio esclusivo dell’umanità: lo vediamo in tutta una serie di giochi da scacchiera (dama, scacchi, go, …) un tempo unità di misura per l’intelligenza e nei quali ormai il computer batte regolarmente i campioni del mondo. Lo vediamo in tutta una serie di attività lavorative un tempo appannaggio esclusivo delle persone e nelle quali sono ormai abitualmente utilizzati i cosiddetti “bot”, sistemi informatici basati su tecniche di apprendimento e deduzione automatica (“machine learning” e “artificial intelligence”).

Ci sono però due caratteristiche distintive di queste “macchine cognitive” che le rendono differenti dal modo di operare dell’essere umano: la flessibilità e l’adattabilità. Le persone sono intrinsecamente in grado di apprendere ciò che non sanno (mentre le macchine della conoscenza possono apprendere solo ciò per cui sono state progettate) ed hanno imparato, attraverso milioni di anni di evoluzione, ad adattarsi flessibilmente a cambiamenti imprevisti nell’ambiente (mentre le macchine cognitive possono – ancora una volta – adattarsi solo ai cambiamenti previsti).

Pertanto, mentre questi artefatti cognitivi dinamici basati sull’intelligenza artificiali sono certamente utili al progresso della società umana, e si diffonderanno sempre di più mentre le persone cambieranno il tipo di lavoro che fanno (come d’altro canto è accaduto in passato: nell’Ottocento più del 90% della forza-lavoro era impiegata nell’agricoltura, adesso è meno del 10%) è della massima importanza che ogni persona sia appropriatamente istruita e formata nelle basi concettuali della disciplina scientifica che rende possibile la costruzione di tali macchine.

Solo così l’umanità potrà continuare a dirigere e governare il proprio futuro.

--
Ripreso dal capitolo "Informatica: dal coding al computational thinking", dello stesso autore, pubblicato nel libro "Per un'idea di scuola", della casa editrice Lisciani Scuola, in corso di pubblicazione.

lunedì 25 febbraio 2019

Informatica e coding: facciamo chiarezza

di Enrico Nardelli

È risaputo che per far presa sulle persone bisogna comunicare usando messaggi semplici. Tuttavia ciò che è semplice non sempre fornisce una chiave di lettura adeguata per la realtà. Un esempio attuale è quello relativo al coding, la programmazione informatica, di cui si sente parlare sempre più frequentemente. Nella sfera mediatica molti parlano dell’importanza di insegnarlo a tutti gli studenti, descrivendolo come il linguaggio indispensabile per operare nella società digitale: «il coding è il nuovo inglese». Messaggio certamente semplice, ma che rispetto agli obiettivi da conseguire è inadeguato e fuorviante.

È inadeguato perché dovrebbe riferirsi all'apprendimento dell'informatica e non del solo coding, cioè della programmazione informatica, che è la parte più immediata e operativa. Ed è per questo fuorviante, perché se preso alla lettera, senza collocarlo nel giusto scenario, rischia di creare i nuovi proletari del futuro.

Entrerò adesso nel dettaglio della mia osservazione critica, che non vuole affatto svilire il coding ma inserirlo in una corretta prospettiva.

L'informatica è la disciplina scientifica che spiega i meccanismi base del funzionamento e della costruzione di quelle macchine digitali che sono ormai parte integrante della nostra vita. Come ben noto in qualunque settore tecnologico, la realizzazione di un macchinario, tranne il caso di dispositivi semplici o sia all’opera un creatore geniale, non avviene semplicemente cominciando a mettere insieme dei pezzi. L'esperienza di secoli ha mostrato che è necessario conoscere le basi scientifiche del dominio in cui si vuole creare la macchina, poi sapere come elaborare un progetto ingegneristico che porti alla specifica delle caratteristiche di ciò che si vuole ottenere ed alla definizione di come può essere fabbricato; infine, si passa alla realizzazione. Non c’è proprio altra strada poi, se si vuole industrializzare questo processo produttivo e renderlo ripetibile e di qualità garantita.

Parlare solo di coding è come dare scatoloni di sbarre, bulloni e piastre di ferro a qualcuno e poi dirgli di costruire qualcosa. Finché questo "qualcosa" è piccolo e semplice non ci sono problemi, ma se si vuole edificare un vero ponte serve qualcosa di più che la semplice abilità nel mettere insieme i pezzi.

Con la programmazione informatica, cioè il coding, si hanno a disposizione gli equivalenti digitali di sbarre, bulloni e piastre di ferro e non ci sono problemi nel costruire cose piccole e semplici. Anzi, è molto più facile che per ogni altra macchina, sia perché questi componenti di base sono immateriali, non pesano e non sono ingombranti, sia perché c'è a disposizione un gran numero di componenti anche abbastanza sofisticati che possono essere combinati senza sforzo. Negli ambienti moderni di coding, qualunque bambino può - ad esempio - realizzare applicazioni che adesso sono semplici ma che cinquant'anni fa erano alla portata solo di centri di avanguardia tipo la NASA: gli astronauti sono sbarcati sulla luna usando un sistema informatico di complessità inferiore a quelli che ci sono negli oggetti “smart” intorno a noi oggi. Nessun bambino, invece, può fabbricare da solo una Torre Eiffel, neanche oggi, pur avendo a disposizione tutte le sbarre, bulloni e piastre che vuole.

Vediamo adesso perché il semplice messaggio iniziale è fuorviante.

Perché da sempre, nella storia dell’umanità, il livello operativo della forza lavoro è stato quello più debole nei contrasti sociali e soggetto all’evoluzione tecnologica. Negli ultimi secoli, successivamente alla transizione da una società agricola ad una industriale, si è capito che l’istruzione è fondamentale per consentire a tutti una vita lavorativa soddisfacente nel tempo. Ed in effetti negli ultimi decenni, in tutti i Paesi avanzati, si insiste su durata e qualità della formazione scolastica e universitaria. Nell’Italia degli anni ’50 e ’60 i figli delle classi meno abbienti sono stati portati a studiare e laurearsi proprio in quest’ottica, che rimane quella corretta per la crescita sociale ed economica.

Siamo adesso nella fase di transizione da società industriale a società digitale. Le nuove macchine sono ben più sofisticate di quelle industriali, sono “macchine cognitive”, ma i problemi di base del lavoro rimangono. Anzi, con l’accelerazione del progresso tecnologico stanno già emergendo. La sofisticazione di quelle tecniche informatiche che vanno generalmente sotto il nome di “Intelligenza Artificiale” già rende possibile la produzione automatica di programmi informatici. Per ora questo accade in domìni ancora limitati in misura molto ridotta. Ma è una tendenza inarrestabile. È chiaro quindi che indicare solo il coding come obiettivo dell’istruzione in materia di competenze digitali rischia di mettere su una cattiva strada chi non conosce questi scenari. Senza fornire ai ragazzi una formazione a largo spettro sui vari aspetti dell’informatica, formeremo solo “operai digitali” che saranno i primi ad essere espulsi dal mercato del lavoro.

In quadro in cui questa visione strategica sia chiara si può benissimo parlare del coding, perché dopo tutto scrivere programmi informatici è un’attività fondamentale per imparare l’informatica. Così come saper fare le operazioni aritmetiche o calcolare l’area di figure geometriche sono passi fondamentali dell’apprendimento della matematica. Va quindi benissimo “fare coding”, soprattutto poi se questo aiuta ad avvicinare ragazze e ragazzi ad una materia che può dar loro molte soddisfazioni. Ma facciamo attenzione a come viene comunicato il messaggio!

È fondamentale insistere sull’importanza di una seria formazione scientifica sull’informatica fin dai primi anni di scuola. È la strada su cui diversi paesi avanzati si sono già avviati (p.es., USA, Regno Unito, Israele) e sulla quale la nostra comunità universitaria dell’informatica ha presentato al Ministero dell’Istruzione una proposta organica. Speriamo che il governo del cambiamento sia in grado di cogliere questa opportunità.

--
Versione originale pubblicata su "Il Fatto Quotidiano" il 20 febbraio 2019.

martedì 5 febbraio 2019

Una nuova politica dell’informatica nella Pubblica Amministrazione

di Enrico Nardelli

In questo articolo rifletto su uno degli elementi cruciali per la realizzazione di una Pubblica Amministrazione (PA) efficiente ed efficace. Si usa spesso a tal proposito il termine “trasformazione digitale”, che se da un lato ricorda l’urgenza di avere una PA adeguata alla società digitale, dall’altro ha secondo me il difetto di richiamare l’attenzione solo sul momento di transizione, mettendo in ombra la situazione a regime. Invece, come sarà più chiaro nel seguito, l’informatizzazione (termine che io preferisco) della PA, così come di ogni altra organizzazione, è un processo continuo, da affrontare in modo diverso da come fatto finora.

Vediamo perché. Venti anni fa, nel 1998, l’uomo della strada non usava né posta elettronica né reti sociali, e la tecnologia ci aveva dato il telefonino. Questo però non era niente altro che il caro buon vecchio telefono, solo che potevamo averlo sempre in tasca con noi dovunque andassimo.

Adesso è come se fossimo su un pianeta diverso, fatto di email, di tweet, di post, di password e di account e via storpiando la nostra bella lingua. Ma questa è solo la superficie. Sotto sotto, noi siamo sempre gli stessi esseri umani, tant’è che, “buoni” e “cattivi”, continuiamo a compiere le stesse azioni. I cattivi, soprattutto, hanno capito forse meglio dei buoni come fare le stesse cose in maniera più produttiva.

Invece, a livello di organizzazioni, questa esplosione della tecnologia digitale è stata enormemente più rivoluzionaria. Ha permesso di automatizzare funzioni un tempo alla portata esclusivamente del cervello umano, ma con il fondamentale tallone d’Achille di non avere la flessibilità e l’adattabilità dell’essere umano. Ho discusso altrove più in dettaglio questi aspetti.

Ciò che qui mi preme sottolineare è che una qualunque applicazione informatica è l’automazione di funzioni legate alle capacità cognitive della persona. Tipicamente, infatti, un’organizzazione acquisisce un sistema informatico per rimpiazzare, mediante un sistema automatico, facoltà cognitive precedentemente esplicate da una o più persone. Si individuano, una volta per tutte, quali sono le funzioni da automatizzare e queste vengono sostituite da un sistema informatico, cioè una “macchina cognitiva” che è la corrispondente, nella società digitale, alla macchina tradizionale della società industriale.

Questa sostituzione, come ogni automazione, avviene per migliorare la produttività, cioè aumentare l’output o diminuire i costi o entrambe le cose. Fin qui niente di male: l’automazione del lavoro è da secoli il fattore chiave che assicura un costante aumento di produttività.

Aver acquisito un sistema informatico vuol dire quindi aver sostituito ad una o più persone una o più “macchine cognitive”. Ma queste, senza capacità di adattamento, non sono in grado di evolversi per far fronte al mutare delle condizioni al contorno. Per questo l’acquisizione o lo sviluppo di un qualunque applicazione informatica deve seguire un percorso diverso.

È necessario cambiare prima di tutto il paradigma mentale con cui si affronta l’automazione informatica. Ogni organizzazione sa bene, quando assume un economista, un ingegnere, un legale o un contabile, che ciò che sa fare quella persona all’inizio non rimarrà immutato nel tempo, ma si evolverà, perché la persona imparerà sul campo tutta una serie di dettagli rilevanti per l’organizzazione stessa ed adatterà il proprio comportamento man mano che il suo scenario operativo si evolve. Ovviamente, all’inizio sotto la guida del suo responsabile, e poi sempre con maggiore grado di autonomia.

Se una parte di questo lavoro cognitivo viene trasferito a sistemi informatici, vengono meno questa flessibilità e capacità di evoluzione, che sono specifiche e caratterizzanti gli esseri umani. Non cambiare questo paradigma mentale vuol dire continuare a sprecare soldi con lo sviluppo di sistemi informatici.

Questo non accade perché la PA italiana sia particolarmente incapace. Gli USA sono spesso giustamente indicati come un modello di riferimento, ma la loro PA, rispetto alla realizzazione dei sistemi informatici è esattamente nelle nostre condizioni. Riprenderò questa situazione più avanti.

L’approccio quindi da usare è considerare l’acquisizione di un sistema informatico come l’acquisizione di una certa quantità di persone con certe competenze di base. Nessun selezionatore del personale si aspetta di trovare sempre “il candidato perfetto”, perché questa non è affatto la norma. Si cerca di trovare una persona col profilo sufficientemente buono per poter “scendere in campo” con efficacia e poi, da lì, evolversi.

Con i sistemi informatici bisogna adottare lo stesso approccio. Il che non vuol dire prendere il primo sistema che capita, ma far diventare parte del processo di acquisizione lo sviluppo incrementale e co-costruito (da utenti e sviluppatori, da committenti e fornitori) del sistema stesso. Esattamente come accade con i dipendenti. Tutti coloro che si occupano di queste problematiche sanno quanto sia complicato l’inserimento di una squadra di 10 dipendenti in un gruppo di 100, tanto più quanto maggiore è la componente cognitiva e non fisica delle attività svolte nell’organizzazione. Quando si digitalizza un processo aziendale si sta facendo sostanzialmente la stessa cosa. Perché dovremmo procedere in modo diverso? Se lo facciamo è perché non abbiamo capito che quella informatica è un’automazione radicalmente diversa da ogni altra e che richiede un approccio diverso.

Come si procede attualmente? Il tradizionale flusso di acquisizione di servizi e prodotti della PA italiana (ma in questo le PA sono sostanzialmente uguali in tutto il mondo) prevede una fase iniziale di definizione dei requisiti del servizio/prodotto necessario con la scrittura di specifiche di dettaglio, a fronte delle quali le aziende propongono offerte. La migliore (in base al costo più una componente di valutazione tecnica) vince ed il contraente inizia a realizzare quanto richiesto. Al termine, se il servizio/prodotto supera i test finali, si entra nella fase operativa.

Quali sono le conseguenze dell’attuale approccio? Sia nella PA italiana che nel resto del mondo, i programmi di sviluppo che prevedono la realizzazione di componenti software sono sempre quelli in maggior ritardo e con i maggiori sforamenti di costi. Recentemente, il direttore del Dipartimento Acquisti del Ministero della Difesa USA (il DOD), Will Roper, ha dichiarato che il sistema di acquisizione tradizionale usato per decenni per comprare navi ed aeroplani, “non funziona per il software” perché “un sistema software non è mai finito, è un processo continuo”.

Le aziende informatiche più innovative al mondo hanno da tempo capito che questo metodo non funziona. Se gli utenti vedono il software solo alla fine, è altamente probabile che non solo i requisiti inizialmente definiti non saranno stati soddisfatti ma anche che ciò di cui hanno bisogno è nel frattempo cambiato. Dalla collaborazione tra il mondo della ricerca e quello dell’industria è emerso da circa una ventina d’anni un approccio radicalmente diverso allo sviluppo del software, l’approccio cosiddetto “agile” (anche in inglese il termine è lo stesso, solo pronunciato diversamente), che è quello appunto usato dalle aziende informatiche all’avanguardia, perché consente loro di sviluppare servizi/prodotti di successo.

D’altro canto, se ci pensate bene, questo è quello che vediamo nelle App di successo che tutti noi usiamo ogni giorno. A noi sembrano sempre le stesse, ma dietro la facciata c’è un lavorìo continuo di aggiornamento ed evoluzione. Appunto, come accade con le persone che, dietro la facciata di un’organizzazione, ci forniscono i suoi servizi. Si evolvono al cambiare delle condizioni al contorno o in funzione di un’eventuale cambiamento deciso dalla direzione. Nel mio articolo di quasi dieci anni fa citato all’inizio avevo scritto, a proposito dello sviluppo dei sistemi informatici: “la manutenzione è la vera implementazione”.

È quindi necessario un radicale cambiamento di paradigma che, ripeto, dev’essere soprattutto un cambiamento mentale.

Da un punto di vista procedurale, l’acquisizione di sistemi informatici non dovrà più, quindi, essere basata sulla definizione iniziale di tutti i requisiti, ma andrà individuato un ristretto insieme di obiettivi e casi d’uso iniziali, sui quali un piccolo gruppo congiunto di sviluppatori e utenti inizierà a lavorare con il compito di produrre un primo nucleo funzionante nel giro di qualche settimana. Da lì in avanti si continua con questo approccio iterativo, che è appunto quello definito “agile”, imparando costantemente da successi ed errori sul campo ed aggiustando il tiro in funzione dell’evolversi degli scenari.

È un cambiamento epocale se si considera l’acquisizione di un sistema software alla stregua di un qualunque altro prodotto. È la soluzione naturale, se la guardiamo nell’ottica dell’acquisizione di personale.

È evidente che questo nuovo paradigma di acquisizione non potrà mai essere adottato dalla PA italiana se non è in accordo con il contesto legale di riferimento. Sarà quindi necessario cambiare l’intero apparato regolamentare che disciplina le procedure con le quali la PA acquisisce sistemi informatici. Qui è necessario uno sforzo fortemente interdisciplinare, perché vanno mobilitate tutte le competenze che entrano in gioco in questo processo: giuridiche, documentarie, informatiche, gestionali, psicologiche, sotto la guida – va da sé – di una politica che deve farsi carico in prima persona della risoluzione di problemi annosi.

Non è un processo breve, richiederà molti anni, ma potrebbe essere un progetto di legislatura volto a lasciare agli Italiani un Paese migliore.

Versione originale pubblicata su "Agenda Digitale" il 31 gennaio 2019.