Pagine

venerdì 15 marzo 2019

Trasformazione digitale e sviluppo dell'Italia

di Enrico Nardelli

(english version here)

Un tema fondamentale su cui molto si discute è quello dell'informatica (anche se adesso è di moda dire "digitale") come strumento fondamentale per ridare competitività ed efficienza al sistema produttivo del Paese ed alla sua Pubblica Amministrazione. Vorrei esporre in merito alcuni spunti di riflessione.

La Pubblica Amministrazione è drammaticamente indietro in termini di comprensione di come l'informatica possa dare efficienza ed efficacia alle sue azioni. Da un lato vi sono le normative alle volte troppo rigide nel rispetto della forma perché ossessionate dal binomio corruzione/sprechi quando invece sarebbe necessario un radicale cambiamento di approccio, inadeguato alla realtà dello sviluppo dei sistemi informatici.

Dall'altro pesa una carenza culturale dei suoi dirigenti nel capire le implicazioni dell’usare l'informatica nelle organizzazioni. Il mio collega universitario Paolo Coppola nella precedente legislatura ha guidato la commissione parlamentare d'inchiesta sulla digitalizzazione della PA che ha messo in luce, durante le sue audizioni, come in molti, troppi, ministeri ed enti pubblici si sia rimasti fermi ad una visione dell’informatica come automazione “a silos” di singole funzioni di elaborazione dati, slegate da una visione globale e di processo delle relazioni tra l’organizzazione in sé, le sue interfacce nella rete della PA e i cittadini. Il tutto complicato da una visione “tradizionale” dell’automazione, che assume che una volta che l’esecuzione di una funzione sia stata affidata ad una macchina, il problema si possa considerare risolto. Nel caso dell’informatica non è così, la vera informatizzazione dei servizi è sempre in fase di manutenzione, perché è la realtà ad essere in continua evoluzione. Ma se non si hanno “in casa” le persone in grado di realizzare questa manutenzione, se si deve ricorrere continuamente al fornitore esterno, costi e tempi lievitano in modo intollerabile.

Purtroppo la nostra classe politica si è spesso riempita la bocca del digitale, ma non ha mai messo in gioco la sua influenza e il suo peso per far cambiare davvero le cose. Nei vari partiti ci si limita ad inseguire i termini più alla moda nella sfera del digitale (ieri il cloud e i big data oggi l’intelligenza artificiale e la blockchain) senza affrontare alla base un tema fondamentale per il nostro futuro. Come ha scritto magistralmente Morozov qualche anno fa (I signori del silicio) “per un partito di massa odierno, non curarsi della propria responsabilità sul digitale equivale a non curarsi della propria responsabilità sul futuro stesso della democrazia”. Adesso la ministra Bongiorno vuole spingere l’acceleratore sulla trasformazione digitale della PA, ma temo che nominare generali senza dotarli di adeguati eserciti non servirà a molto. In assenza di un significativo numero di assunzioni di diplomati e laureati in informatica, efficienza ed efficacia della PA non riusciranno a migliorare.

Un atteggiamento parallelo, ma con diverse motivazioni, lo ha tenuto il sistema produttivo. Questo in Italia è costituito essenzialmente da micro e piccole imprese, che non usano il digitale o lo usano poco non perché – come dice qualcuno – sono pervase dal familismo amorale o non ne hanno capito il potenziale di vantaggio competitivo, ma perché sistemi informatici troppo rigidi costituirebbero la melassa che li ucciderebbe rapidamente. Il tipico industriale italiano – per niente stupido e che della flessibilità e velocità di cambiamento ha fatto la sua arma strategica – l'ha intuito ed è rimasto un po' a guardare: primum vivere!

Anche questo atteggiamento deriva da una carenza culturale, ovvero dal non aver capito che l'unica informatica buona è quella "personalizzata" che accompagna l'azienda in modo flessibile, come se fosse una persona, ma che è in grado di lavorare senza stancarsi e senza sbagliare, come purtroppo accade alle persone. E questo non si può ottenere semplicemente comprando soluzioni “chiavi in mano”, come è avvenuto per le precedenti innovazioni tecnologiche. Mentre gli imprenditori sono sempre stati agili nel modernizzare le linee produttive ogni qualvolta hanno intravisto un’opportunità di mercato, nel caso dell’automazione digitale, capendo il pericolo della sua rigidità, gli imprenditori, dovendo mettere in gioco i loro capitali, sono prudentemente rimasti alla finestra, senza sprecare risorse economiche.

È un problema culturale, ma anche politico. La spesa pubblica di Impresa 4.0 è certamente positiva, ma se poi questa serve a comprare soprattutto macchinari e soluzioni estere, è difficile che possa contribuire al rilancio del Paese. Andrebbe attuato un massiccio programma di supporto alla formazione dei lavoratori attivi, che non può limitarsi alle pur necessarie competenze digitali dell’utente finale. Gli USA lo hanno capito benissimo tanto da istituire l’anno scorso il “Consiglio Nazionale per il Lavoratore Americano” con l’obiettivo di migliorare istruzione e formazione professionale dei lavoratori, in modo da renderli competitivi nel sistema industriale, sempre più pervaso di digitale, che ci aspetta in futuro.

La sfida per capire l'informatica è comprendere che, da soli, hardware e software sono soluzioni migliorative solo sul breve periodo. A medio e lungo termine serve avere le persone che siano in grado di adattare queste soluzioni digitali (che io chiamo “macchine cognitive”, perché sono costituite da intelligenza umana cristallizzata in forma di meccanismo) alle mutare delle esigenze al contorno. Gli scenari di business cambiano quasi settimanalmente, il software non è in grado di adeguarsi, servono le persone in grado di farlo. Serve anche incentivare la crescita di un settore italiano dell'informatica, in grado di sviluppare e far evolvere soluzioni appropriate per la nostra società.

I politici del cambiamento riusciranno a cambiare questo stato di cose?

--
Versione originale pubblicata su "Agenda Digitale" il 7 marzo 2019.

martedì 26 febbraio 2019

Informatica: la terza rivoluzione "dei rapporti di potere"

di Enrico Nardelli

(english version here)

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.

lunedì 25 febbraio 2019

Informatics and coding: making things clear

by Enrico Nardelli

(versione italiana qua)

It is well known that to connect with people, one must communicate using simple messages. However, simplicity does not always provide an adequate lens through which to understand reality. A current example concerns coding,a term we hear about more and more frequently. In the media sphere, many talk about the importance of teaching it to all students, describing it as the essential language for operating in the digital society: «coding is the new English». Certainly a simple message, but one that is inadequate and misleading in relation to the goals to be achieved.

It is inadequate because it should refer to learning informatics, not just coding, i.e. computer programming, which is its most immediate and operational part. And for this reason, it is misleading because if taken literally, without placing it in the proper context, it risks creating the new proletariat of the future.

I will now go into the details of my critical observation, which is by no means intended to belittle coding, but to put it into the correct perspective.

Informatics is the scientific discipline that explains the basic mechanisms of how those digital machines, now an integral part of our lives, function and are built. As is well known in any technological field, building a machine – except in the case of simple devices or when a genius inventor is at work – does not simply involve starting to put pieces together. Centuries of experience have shown that it is necessary to understand the scientific fundamentals of the domain in which you intend to create the machine, then know how to develop an engineering design that leads to specifying the characteristics of what you want to achieve and defining how it can be manufactured; finally, construction begins. There really is no other way, especially if you want to industrialize this production process, making it repeatable and of guaranteed quality.

Talking only about coding is like giving someone large boxes of bars, bolts, and iron plates and then telling them to build something. As long as that "something" is small and simple, there's no problem, but if you want to build a real bridge, you need something more than just the skill to put pieces together.

With computer programming, i.e., coding, you have the digital equivalents of bars, bolts, and iron plates at your disposal, and there's no problem building small, simple things. In fact, it's much easier than with any other kind of machine, both because these basic components are immaterial – they have no weight and take up no space – and because a vast number of components, even quite sophisticated ones, are available to be combined effortlessly. In modern coding environments, any child can, for example, create applications that are simple today but were within the reach of only cutting-edge centers like NASA fifty years ago: astronauts landed on the moon using a computer system less complex than those found in the "smart" objects around us now. No child, however, can build an Eiffel Tower on their own, even today, even with all the bars, bolts, and plates they could want.

Now let's see why the simple initial message is misleading.

Because throughout human history, the operational level of the workforce has always been the weakest in social conflicts and the most subject to technological evolution. In recent centuries, following the transition from an agricultural to an industrial society, it became clear that education is fundamental to enabling everyone to have a satisfying working life over time. And indeed, in recent decades, in all advanced countries, there has been a strong emphasis on the duration and quality of school and university education. In Italy during the 1950s and 1960s, children from less affluent classes were encouraged to study and graduate precisely with this in mind, which remains the correct approach for social and economic growth.

We are now in the transition phase from an industrial society to a digital society. The new machines are far more sophisticated than industrial ones; they are "cognitive machines," but the basic problems of labor remain. In fact, with the acceleration of technological progress, they are already emerging. The sophistication of those computing techniques generally grouped under the name "Artificial Intelligence" is already making the automatic production of computer programs possible. For now, this happens in still limited domains and to a very small extent. But it is an unstoppable trend. It is clear, therefore, that pointing to only coding as the goal of education in digital skills risks leading those unaware of these scenarios down the wrong path. Without providing young people with a broad-spectrum education on the various aspects of informatics, we will only train "digital laborers" who will be the first to be pushed out of the job market.

In a context where this strategic vision is clear, we can certainly talk about coding, because after all, writing computer programs is a fundamental activity for learning informatics. Just as knowing how to do arithmetic operations or calculate the area of geometric shapes are fundamental steps in learning mathematics. So "doing coding" is perfectly fine, especially if it helps to get young people interested in a subject that can bring them a lot of satisfaction. But let's be careful about how the message is communicated!

It is essential to insist on the importance of a solid scientific education in informatics from the early school years. This is the path that several advanced countries have already taken (e.g., the USA, the United Kingdom, Israel) and on which our academic informatics community has submitted a comprehensive proposal to the Ministry of Education. Let us hope that the government of change is able to seize this opportunity.

--
The original version (in italian) has been published by "Il Fatto Quotidiano" on 20 February 2019.

Informatica e coding: facciamo chiarezza

di Enrico Nardelli

(english version here)

È 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

A new informatics policy for the Public Administration

by Enrico Nardelli

(versione italiana qua)

In this article I reflect on one of the crucial elements in achieving an efficient and effective Public Administration (PA). The term "digital transformation" is often used in this context, and while it conveys the urgency of having a PA that is fit for a digital society, it has, in my view, the drawback of drawing attention only to the moment of transition, while obscuring the steady-state situation that follows. As will become clearer below, the computerisation (the term I prefer) of the PA — as of any other organisation — is a continuous process, and one that must be approached very differently from how it has been handled so far.

Let us consider why. Twenty years ago, in 1998, the average person used neither email nor social networks, and technology had given us the mobile phone. But this was nothing other than the good old telephone — simply one we could now carry in our pocket wherever we went.

Now it is as if we were on a different planet, one made up of emails, tweets, posts, passwords, and accounts — mangling our beautiful language as we go. But this is only the surface. Beneath it, we are the same human beings we always were, and "good" and "bad" alike, we continue to do the same things. The bad actors, in particular, have perhaps understood better than the good ones how to do the same things more productively.

At the level of organisations, however, this explosion of digital technology has been enormously more revolutionary. It has made it possible to automate functions that were once the exclusive preserve of the human brain — but with the fundamental Achilles' heel of lacking the flexibility and adaptability of human beings. I have discussed these aspects in greater detail elsewhere.

What I want to emphasise here is that any software application is the automation of functions tied to the cognitive capacities of a person. Typically, an organisation acquires a computer system in order to replace, by means of an automatic system, cognitive faculties previously performed by one or more people. The functions to be automated are identified once and for all, and are then replaced by a computer system — a "cognitive machine" which is, in the digital society, the counterpart of the traditional machine in industrial society.

This replacement, like all automation, takes place in order to improve productivity — that is, to increase output, reduce costs, or both. So far, nothing objectionable: the automation of work has for centuries been the key factor ensuring a steady rise in productivity.

Having acquired a computer system means having replaced one or more people with one or more "cognitive machines." But these machines, lacking any capacity for adaptation, are unable to evolve in response to changing surrounding conditions. This is why the acquisition or development of any software application must follow a different path.

First and foremost, the mental paradigm with which we approach informatics automation must change. Every organisation knows full well that when it takes on an economist, an engineer, a lawyer, or an accountant, what that person knows how to do at the outset will not remain static over time — it will evolve, because the person will learn on the job a whole range of details relevant to the organisation itself, and will adapt their behaviour as their operational context evolves. Initially, of course, under the guidance of their manager, and then with an ever-increasing degree of autonomy.

If part of this cognitive work is transferred to computer systems, the flexibility and capacity for evolution that are specific and defining characteristics of human beings are lost. Failing to change this mental paradigm means continuing to waste money on software development.

This is not because the Italian PA is particularly incompetent. The United States is often rightly held up as a model, yet its own PA, when it comes to the implementation of computer systems, is in exactly the same situation as ours. I will return to this point later.

The approach to adopt, therefore, is to treat the acquisition of a computer system in the same way as the recruitment of a certain number of people with certain core competencies. No recruiter expects to find the "perfect candidate" every time, because that is simply not the norm. The aim is to find someone with a sufficiently strong profile to hit the ground running effectively, and to develop from there.

The same approach must be applied to computer systems. This does not mean taking whatever happens to be available, but rather making the incremental, co-constructed development of the system itself — by users and developers, by clients and suppliers — an integral part of the acquisition process. Exactly as happens with employees. Everyone who works in this field knows how complicated it is to integrate a team of 10 new staff members into a group of 100, and all the more so the greater the cognitive, as opposed to physical, component of the activities carried out within the organisation. When a business process is digitalised, essentially the same thing is happening. Why should we proceed any differently? If we do, it is because we have not understood that informatics automation is radically different from all other forms of automation and requires a different approach.

How does the process currently work? The traditional procurement workflow for services and products used by the Italian PA — though in this respect public administrations are broadly the same the world over — involves an initial phase of defining the requirements for the necessary service or product, with the drafting of detailed specifications against which companies submit bids. The best bid (on the basis of cost plus a technical evaluation component) wins, and the contractor begins to deliver what was requested. At the end, if the service or product passes the final tests, the operational phase begins.

What are the consequences of this approach? Both in the Italian PA and elsewhere in the world, development programmes involving software components are invariably those that run furthest behind schedule and most significantly over budget. Recently, the director of the Acquisitions Department of the US Department of Defense (the DoD), Will Roper, stated that the traditional procurement system used for decades to buy ships and aircraft "does not work for software," because "a software system is never finished — it is a continuous process."

The world's most innovative technology companies have long understood that this method does not work. If users only see the software at the end, it is highly likely that not only will the initially defined requirements not have been met, but that what they actually need will have changed in the meantime. From collaboration between the research community and industry, a radically different approach to software development has emerged over the past twenty or so years: the so-called "agile" approach, which is precisely the one used by leading-edge technology companies, because it enables them to develop successful products and services.

If you think about it, this is exactly what we see in the successful apps that all of us use every day. They always seem the same to us, but behind the façade there is a constant process of updating and evolution. Just like the people who, behind the façade of an organisation, provide us with its services — evolving as surrounding conditions change, or in response to decisions taken by management. In my article from almost ten years ago, cited at the outset, I wrote, with reference to the development of computer systems: "maintenance is the real implementation."

A radical paradigm shift is therefore necessary — one that, I repeat, must above all be a shift in mindset.

From a procedural standpoint, the procurement of computer systems must no longer be based on the upfront definition of all requirements. Instead, a limited set of initial objectives and use cases should be identified, on which a small joint team of developers and users will begin working, with the task of producing a first functioning core within a matter of weeks. From that point on, the process continues with this iterative — or "agile" — approach, learning constantly from successes and mistakes in the field, and adjusting course in response to evolving scenarios.

This is an epochal shift if one considers the procurement of a software system in the same way as any other product. It is the natural solution if one views it through the lens of hiring staff.

It is clear that this new procurement paradigm can never be adopted by the Italian PA unless it is compatible with the relevant legal framework. It will therefore be necessary to overhaul the entire regulatory apparatus governing the procedures by which the PA procures computer systems. This will require a strongly interdisciplinary effort, mobilising all the competencies involved in this process — legal, documentary, informatics-related, managerial, and psychological — under the guidance, naturally, of a political leadership that must take personal responsibility for resolving long-standing problems.

It is not a quick process — it will take many years — but it could be a legislative-term project aimed at leaving Italians with a better country.

--
The original version (in italian) has been published by "Agenda Digitale" on 31 gennaio 2019.

Una nuova politica dell’informatica nella Pubblica Amministrazione

di Enrico Nardelli

(english version here)

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.

mercoledì 5 dicembre 2018

Sicurezza informatica: questa sconosciuta

di Enrico Nardelli

Ha fatto scalpore la notizia del ministro della sicurezza informatica giapponese che ha recentemente ammesso di non aver mai usato un computer. Ma sinceramente mi preoccupa di più il fatto che nella pubblica amministrazione italiana – come ha dimostrato l’indagine della commissione parlamentare d’inchiesta presieduta dal collega Paolo Coppola, prestato nella scorsa legislatura alla politica – in moltissimi ministeri ed organi della PA centrale sia scandalosamente assente la consapevolezza del ruolo dell’informatica come strumento di controllo e di supporto al governo dell’organizzazione (“pensare al digitale come qualcosa di relativo all’acquisto di tecnologia, funzionale e secondario alle decisioni strategiche”, stigmatizzava la relazione come l'atteggiamento dominante nella PA italiana).

Tornando al caso specifico, penso che i ministri debbano soprattutto essere dei politici e non dei tecnici. Il ministro della Sanità non deve necessariamente essere un medico, né quello dei lavori pubblici un ingegnere, o quello della giustizia un avvocato o un giudice. Certamente la conoscenza tecnica del settore potrebbe aiutare, ma considerare un ministro come il massimo riferimento tecnico del suo settore fa perdere di vista l’impatto sociale delle decisioni del suo ministero. Vi possono essere molte soluzioni tecniche per affrontare uno stesso scenario sociale: nessuna è quasi mai la soluzione ottimale sotto ogni punto di vista, perché queste scelte impattano sulla società, nella quale ci sono classi tra loro in conflitto.

Compito squisitamente politico di un ministro è trovare la sintesi tra queste differenti esigenze, nell’interesse generale dello Stato e dei cittadini. Tale sintesi non può mai essere condotta soltanto sulla base di elementi tecnici, che ovviamente devono essere tenuti presenti ma non possono essere i soli a determinare la decisione finale, proprio perché non si tratta di una scelta tecnica. La soluzione dei conflitti sociali è compito della politica: quando essa abdica a favore della tecnica, la democrazia viene pugnalata alle spalle.

Insomma, il ministro giapponese della sicurezza informatica non conosce la tecnologia digitale, però – se è un persona che ha avuto responsabilità di organizzazioni nel governo – saprà ben comprendere le problematiche della sicurezza informatica. Perché in fin dei conti, al di là del fatto che avvengano in un contesto tecnicamente molto sofisticato, queste sono soprattutto problematiche legate al fattore umano e il loro elemento critico è sempre l’uomo.

Sempre di più nella società digitale il flusso dei dati è la linfa vitale di ogni organizzazione, fattore essenziale per l’efficienza e l’efficacia di ogni attività. Lo è sempre stato, come sanno tutte le persone con responsabilità strategiche o direttive sia nel pubblico che nel privato, ma nella società digitale – come gli ultimi scandali legati a trattamenti troppo “distratti” dei dati hanno provato in modo eclatante – è diventato il nuovo “oro nero”. Invece, non comprendere questo ruolo fondamentale dei dati e delle informazioni per la vita di ogni organizzazione, come il loro trattamento automatico attraverso l’approccio rivoluzionario reso possibile dall’informatica sia l’elemento essenziale per determinare il successo o il fallimento di un’organizzazione, è un problema di cui sono molto preoccupato.

I partiti dovrebbero capire che i sistemi informatici introdotti in modo sinergico con la realtà organizzativa e i suoi processi decisionali sono la chiave per realizzare una pubblica amministrazione efficiente ed efficace. Quando sono al governo, questi aspetti dovrebbero esser parte essenziale del loro programma e della loro agenda, e per l’opposizione dovrebbero essere elemento di critica continua e implacabile.

Purtroppo la rivoluzione dell’informatica, diversamente dalla rivoluzione industriale, è avvenuta nel giro di una stessa generazione. Ricordate il 1993? Nella vita dell’uomo della strada non c’erano i social, nelle aziende si iniziava a usare la posta elettronica, giornali e televisioni erano ancora i signori incontrastati dei media. Venticinque anni dopo queste situazioni sono completamente cambiate, mentre l’essere umano è sempre lo stesso, non ha organi di senso per essere direttamente in contatto col mondo digitale in cui si trova però improvvisamente immerso fino al collo.

A questa mancanza si può rimediare solo con un’educazione capillare sull’informatica, la scienza che ha reso possibile la società digitale: che venga attuata verso tutti i cittadini e che inizi per le nuove generazioni sin dai primi anni di scuola, perché ne va di mezzo il futuro della democrazia. Dovrebbe essere un tema condiviso tra maggioranza e opposizione, perché gli studenti di oggi sono il nostro futuro. Il governo del cambiamento sarà in grado di fare la differenza?

--
Versione originale pubblicata su "Il Fatto Quotidiano" il 11 novembre 2018.

lunedì 8 ottobre 2018

Coding and informatics: what's the issue?

by Enrico Nardelli

(versione italiana qua)

My previous article, Coding or informatics, that is the question, sparked quite a debate on social media. I was "told off" for supposedly pitting coding against informatics. In reality, not only is that not what I wrote, it was never my intention. I simply wanted to clarify the relationship between coding and informatics. Coding is certainly part of informatics, but framing the teaching of coding as the solution for making schools digital is reductive. The subject that needs to be taught in schools is informatics, as evidenced by the curricula proposed or already in place in the USA, the UK, and France, to name just a few countries.

I will now elaborate on my position, which I have already expressed in several other articles. Some recent examples can be found here, here, and here.

Let me start with an observation that may seem obvious, but is nonetheless useful: words do not have meanings assigned by some higher authority. They take on whatever meaning we give them in practice.

"Coding" until a few years ago had one meaning only: writing computer code, that is, the activity of computer programming. More recently, there has been a push to reinterpret the term as something new and distinct from informatics, with this distinction being repeatedly emphasised.

Arguing that "coding is not informatics" and trying to prove that coding is something separate from it stands in the way of the ultimate goal: having informatics taught in schools as a subject in its own right, recognised and fully regarded as a "science" on a par with mathematics, physics, and biology.

I believe this is a serious strategic mistake, for several reasons.

First of all, history tells us that "coding" is associated with writing code (i.e. computer programs), which is only one part of informatics as a whole and does not even cover the entire software development process. Granted, educational innovators and pioneers invest the term with a broad and noble meaning. But society at large, politicians, and the media do not perceive it that way. The "low", operational interpretation risks winning out. Have you ever come across the criticism that goes: "what's the point of teaching my child to write code — before long, AI systems will be writing all the software anyway"?

Furthermore, in Italy — and not only there, though that is no consolation — people will openly say "I've never been able to get my head around maths," while no one would dare admit "I don't know Italian." Against this bleak backdrop for the sciences, where we also rightly lament that our schools produce students with very little knowledge of our artistic and musical heritage (unique in the world!), I do not think it is wise to use a term with such a hands-on, applied connotation when referring to a school subject. It does not bode well.

Finally, the world and society are now increasingly defined by digital activities and interactions, underpinned by a technology that shapes and permeates more and more of what we do and how we relate to one another — think, for instance, of the issues surrounding privacy and fake news. The notion of being a "digital citizen" has become part of everyday conversation. And yet, for that it is not enough to have grown up surrounded by digital devices we learned to use before we could even speak, nor is it enough to learn how to programme them. What is needed is an education, from the earliest years of schooling, in the science that makes all of this possible. Learning informatics is essential for understanding, participating in, shaping, and contributing to the democratic development of society. It is fundamental to being the authors, rather than mere spectators, of one's own future.

I strongly urge everyone to read carefully the international research on informatics education and the national school curricula proposed in countries such as the USA, the UK, and France. These speak of computing or computer science as the discipline taught in schools, while coding — where used at all — refers to the activity of computer programming.

It is clear that when informatics is used in a "cross-disciplinary" way — that is, in the context of other subjects, to explore and understand related phenomena (which is essentially what happens in coding practice) — it can seem as though something entirely new is taking place. I can understand the enthusiasm of those who feel they have discovered a new continent, but it is informatics all the same.

When mathematics is used in medicine or literary studies, it is still called mathematics, because it is the same discipline regardless of the purpose it is applied to. The scientific power of informatics — equal in this respect to that of mathematics — and its great beauty lies precisely in this cross-disciplinary quality.

One can certainly use the term "coding" to convey this cross-disciplinary application; I have no objection to that, as long as it is made clear that we are still talking about informatics.

Let us keep our eyes on the strategic goal: getting informatics taught in schools. Let us not place coding outside the realm of informatics, and let us not get drawn into semantic squabbles. Let us try to be constructive — our country needs it.

--
The original version (in italian) has been published by "Il Fatto Quotidiano" on 5 October 2018.

domenica 30 settembre 2018

Schools need more than just coding

by Enrico Nardelli

(versione italiana qua)

Italian schools do not need coding alone — as if coding, together with devices and connectivity, were all it takes to bring them into the modern age. Infrastructure is undoubtedly essential: computer labs with working machines and fast networks are a must. But it is not enough to add "we will teach students coding because it is the new English that everyone needs". That kind of statement is wrong on two counts.

The first is talking about teaching coding (i.e. "computer programming") instead of teaching informatics. It is much the same mistake as confusing multiplication tables with the teaching of Mathematics. The times table is a practical tool through which children develop a feel for arithmetic operations, which in turn provide a conceptual key for understanding the world in quantitative terms. The subject taught in schools is Mathematics, of which arithmetic is just one area.

The second is that informatics is not a language in the strict sense. One might say it is, in the figurative way that Galileo said "the universe is written in the language of mathematics." But comparing it to English creates deep conceptual misunderstandings. Here is why.

To begin with, the languages used to write computer programs — the instructions that computers execute — are a far cry from natural languages. Programming languages have neither the flexibility nor the endless richness of reference to lived experience that spoken language possesses. Using the same word for both is like mistaking a mannequin for a living person.

Moreover, using the term "language" means overlooking the fact that informatics has established itself as an autonomous scientific discipline over several decades, with deep and wide-ranging concepts that have led some to describe it as a fourth great domain of scientific knowledge, alongside those of non-living matter, living matter, and human society.

Finally, talking about a "new English" reduces informatics to a mere tool that requires other skills to be of any real use. It is obvious to everyone that knowing English is not enough to become a successful entrepreneur, any more than it is enough to write as well as Hemingway.

Learning informatics is therefore significantly more than learning to program. It means, for example, understanding how the Internet works and what distributed computing involves. Or grasping how to analyse data and their relationships — both direct and derived — while also being aware of the implications of such analyses for individuals and for society. All of this should be part of every student's cultural toolkit, even if they never write a single line of code in their lives, because they will nonetheless be living in an increasingly digital world. It is also worth noting, en passant, that there is early experimental evidence suggesting that studying informatics at school helps improve performance in other subjects as well.

This is why it is essential to introduce a solid informatics education that enables Italian schools to align their educational mission with the demands of a digital society. In this regard, CINI (the National Inter-University Consortium for Informatics) had already submitted to MIUR (the Ministry of Education, Universities and Research) a detailed proposal, several months ago, for introducing the teaching of informatics into schools from primary level onwards. The proposal was developed by the community of university informatics lecturers, in collaboration with educationalists and school teachers.

In the meantime, the country has undergone significant political changes. The hope is that the new "government of change and of the internet" will grasp the importance of equipping students to be effective digital citizens. Learning informatics is essential for understanding, participating in, shaping, and contributing to the democratic development of society. It is essential to being the authors, rather than mere spectators, of one's own future.

This is a generational educational challenge, one that can only be met through the input and dialogue of all the stakeholders involved — and one that could also create real opportunities for economic growth in Italy. Not least because the informatics sector, known as computing in the USA, has been the leading sector there for new jobs since 2016 (see figure) and since 2017 has surpassed the manufacturing sector in terms of workforce demand.

But also because a "sophisticated" use of informatics — one that does not simply mean buying off-the-shelf solutions (which often work poorly and require constant tweaking) or relying on outside suppliers (who are generally behind schedule and over budget) — can give our productive system a real competitive edge.

Italian production, across most sectors, is characterised by a unique combination of quality and flexibility. In many fields we are among the best because we are able to track closely the shifting demands of the market while consistently maintaining very high quality standards. To continue excelling in this way, it is now essential to incorporate this sophisticated use of informatics into our production processes. That will only be possible if our universities produce a sufficient number of graduates — thereby also helping to reduce the significant gender gap that exists in this field.

None of this will be achievable without an adequate understanding, built up from the very first year of primary school, of what informatics is and of its "great beauty".

--
The original version (in italian) has been published by "Agenda Digitale" on 21 September 2018.

venerdì 28 settembre 2018

Coding or informatics: that is the question

by Enrico Nardelli

(versione italiana qua)

At the start of this year, the European Commission launched an ambitious Digital Education Action Plan. Starting from the entirely sound premise that "education and training are the best investments in Europe's future," it proposes, in order to bring education and training in line with the digital age, to act along three lines of action:

  1. making better use of digital technology for teaching and learning;
  2. developing relevant digital competences and skills for the digital transformation;
  3. improving education through better data analysis and foresight.

There is nothing to object to in the first line: it is well established that a well-calibrated use of digital technologies can improve both teaching and learning. The challenges all lie in getting that calibration right, but I trust that the new political leadership at MIUR and the experience of our teaching profession — among the finest in the world — will be able to identify and find the right solutions.

The third line is also highly valid: we live in the age of data, which we collect at every level. When properly analysed, data can tell us a great deal about the current state of affairs, at a level of granularity never before achieved. Here too, the devil is in the details: on one side, the need to guarantee people's privacy; on the other, the awareness that there is always a gap between what we measure and reality — a gap that must never be forgotten. Generals who have confused the map with the territory have never distinguished themselves in military campaigns.

I would like to say a few words about the second line, because for its implementation — beyond the accompanying measures relating to awareness-raising, communication, and closing the gender gap (all of them critically important!) — the concrete action proposed is to "introduce programming classes in all schools." Here, "programming" means "computer programming," that is, what the English call coding, a term that by now enjoys considerable currency in Italy too. I have already written (here and here) about why I do not think it wise to use the English term, but I will use it throughout the rest of this article for the sake of brevity.

My central argument is that this approach by the European Commission — centred on teaching coding rather than teaching informatics — is reductive. I draw a comparison between teaching coding and teaching informatics because teaching coding is, to use an engineering analogy, like teaching someone to build a bridge, whereas teaching informatics means teaching someone to design and build the bridge.

Designing means working within a space of needs and constraints and "creating" the solution — inventing a synthesis between competing requirements. This calls for a body of knowledge that goes well beyond what is needed simply to build. As someone trained as an engineer, I know this from experience. Two years of my university education were spent studying mathematics, physics, chemistry, and other foundational subjects that had no direct application to the construction of any complex artefact. Any doctor or lawyer will readily confirm that what sets the designer apart from the operative is precisely the breadth and depth of their foundational training.

Building means following a more or less defined plan that someone else has created. There is no requirement to know much beyond that, because someone else is handling — or has handled, or will handle — everything else. Talking only about "teaching coding" is therefore a reductive approach, because it focuses solely on the final, operational stage of a much more complex design process. It amounts to training a technically sophisticated workforce that will nonetheless remain a working class, subject to the directions of those who decide what to build, for whom, and when.

I note in passing — because this takes us into a political and social dimension that certainly deserves attention, but not here — that history (now more than ever magistra vitae) has shown that the basic levels of the labour force are the first to be replaced by machines. If we want our young people to acquire skills that will serve them throughout their working lives, it is better to train them as designers, not merely as executors.

I do not deny that programming can be a highly creative activity. But if we are talking about mass education, and if we teach only programming without educating young people about all the other aspects that make informatics the rich and multifaceted discipline it is, then we genuinely risk producing nothing more than an army of workers — one that will be easily sidelined by technological advances or turned into an "industrial reserve army."

For young people to have a real chance of finding a fulfilling path in the digital society — within a constantly evolving world of work — they need to be introduced from the outset to the scientific ideas underpinning the digital world, so that they can grasp its full significance.

One might object that there are many examples of successful start-ups born from the ideas of young people who had certainly never studied informatics formally. But if you look at the overall numbers, these are merely the exceptions that prove the rule. For a start, while the founder of Facebook was certainly not a computer science graduate, Google was born from the ideas of two Stanford informatics PhD students — one of the great cathedrals of computing research. Furthermore, for every start-up that makes it, there are at least a thousand that go nowhere, and so at a macroeconomic level — that is, in terms of growing a country — betting everything on start-ups is not a sensible strategy (another development policy debate worth having).

Similarly, there is a tendency to treat exceptions as if they were the norm. When it comes to programming, people cite geniuses like Linus Torvalds (creator of Linux) or Guido van Rossum (creator of Python), who single-handedly produced true masterworks. First of all, genius is an extremely rare quality, and what works for a genius cannot be used as a teaching method for mass education. Second, even those who are genuinely gifted still design: they do it in their heads, and very rapidly, as they develop — but the design phase is there all the same. Third, it is obvious that every project, at the point where it is expressed, requires a language through which to express it — which represents the "encoding" of the project. But this does not mean that the most appropriate term for someone who designs is "coder," or that the word "coding" encompasses the entire area of software design and development.

Let me be clear: incorporating informatics education into schools matters for every citizen's formation, regardless of whether they go on to become doctors or lawyers, musicians or writers. The digital society is here. Failing to teach in schools the science underlying its mechanisms would be like teaching children that babies are found under cabbage leaves, that the plague is spread by poisoners, and that stones move by horror vacui.

What makes a country great in the long run is not its exceptional talents, but the quality of its mass education. Europe's digital development requires the teaching of Informatics in schools, starting from primary level. This is the path that the United Kingdom has begun to follow; these are the trends in many advanced countries, both East and West; and this is what we have proposed as European associations of computer scientists.

--
The original version (in italian) has been published by "Il Fatto Quotidiano" on 17 September 2018.