martedì 26 febbraio 2019
Informatica: la terza rivoluzione "dei rapporti di potere"
(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
(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
(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
(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
(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.