COS’E`L’INFORMATICA?

Fabio Zappa
#COMEFUNZIONAINTERNET
8 min readJun 27, 2020

--

Cos’è l’informatica?

Ci sono varie definizioni di questo termine, quella che più si addice al nostro contesto indica l’origine della parola come una contrazione di due parole Informazione e Automatica, possiamo quindi intenderla l’automatizzazione della gestione delle informazioni. Molti dei software (anche le app sono software) che utilizziamo si occupano principalmente di gestire delle informazioni che arrivano da una o più fonti. Vengono archiviate in una forma ordinate e ripresentate in differenti forme a seconda della richiesta che arriva.

Quand’ero bambino e frequentavo la Biblioteca comunale i libri erano divisi per genere (letteratura, storia, romanzi, manuali, cucina,…), ogni scaffale ospitava uno o più generi e i libri normalmente erano posizionati in ordine alfabetico sullo scaffale.

Un organizzazione assolutamente funzionale a soddisfare la stragrande maggioranza delle richieste però presenta alcune lacune, se un libro appartiene a due generi dove lo metto (ad esempio libro giallo con risvolti horror). Il secondo problema poteva essere individuare tutti i libri di un autore che stavano sparsi in giro per gli scaffali oppure trovare tutti i libri che affrontano un certo argomento. Si potrebbe quindi pensare di riorganizzare i libri sulle mensole per differenti criteri ma alla fine qualunque sia il criterio è soltanto uno e saranno sacrificati gli altri. Queste problematiche erano risolte dal migliore calcolatore che esista al mondo: il cervello! In questo caso era il cervello del Bibliotecario che conosceva a memoria l’organizzazione dei libri ed era in grado di far fronte ad ogni richiesta. Inoltre questa organizzazione poneva la biblioteca nella condizione di dover periodicamente riorganizzare gli scaffali perché se lo spazio destinato ai libri fantasy non era più sufficiente a contenerli tutti si doveva creare nuovo spazio in quel settore spostando altri libri.

Vediamo invece un approccio ad una libreria con metodo informatizzato. Ogni libro che viene acquistato dalla libreria viene etichettato con un codice progressivo (il primo libro avrà il numero 1, il secondo il numero 2, …) e viene posto sullo scaffale/mensola in ordine di arrivo. Sulla prima mensola avremo ad esempio i libri da 1 a 100, sulla seconda quelli da 101 a 200 e così via, non c’è il rischio che possano aumentare i libri su una mensola perché se ne arriva uno nuovo avrà un numero superiore all’ultimo inserito e quindi sarà in un altra mensola. Passiamo ora alla fase di ricerca del libro, quando un libro viene acquistato oltre all’assegnazione del codice viene compilata una scheda tecnica nel software di gestione per cui il bibliotecario dovrà inserire ad esempio:

libro: 2320

autore: rossi

genere:horror/giallo

titolo:Bel libro

argomenti:misteri,investigazione,mostri,paura,coraggio

e altre informazioni (Per completezza che queste informazioni non sono più trascritte a mano ma vengono importate in automatico in base al codice ISBN del libro e quindi un ulteriore livello di automatizzazione dell’informazione).

Quando mi presento in biblioteca e voglio un libro posso sfogliare il catalogo per nome, per autore, per genere (nell’esempio precedente troverò il ‘Bel libro’ in due generi) oppure posso fare una ricerca e richiedere tutti i libri Horror (300 risultati), escludere quelli che ho già letto e che al momento non sono disponibili (restano 200 libri), riduco la lista a quelli che parlano di mostri ma che non affrontano il tema della paura (50 libri), voglio solo quelli pubblicati negli ultimi 20 anni (10 libri) e ora che ho una scelta limita e filtrata posso leggere il retro di copertina dei 10 libri e prendere i tre che voglio, li seleziono e il computer mi dirà libro 16, libro 12 e libro 79. E anche senza conoscere la struttura della biblioteca dovrei essere perfettamente in grado di individuarli. Se nella scheda del libro fosse salvato in forma digitale anche il testo del libro potrei anche voler vedere quali sono i libri che contengono la parola ‘omicidio’ e il sistema sarebbe in grado di individuarli.

Negli ultimi anni ci sono stati ulteriori progressi nello sviluppo dei software per cui è anche possibile che se voglio un libro al momento non disponibile il software mi avvisa con un SMS/Mail quando è di nuovo disponibile e lo tiene bloccato per qualche giorno.

Addirittura il calcolatore conosce le mie preferenze in fase di lettura, è in grado di valutare quali sono i libri più letti da chi ha letto i miei stessi libri e con tutta probabilità quando accedo al software sarà lui a propormi dei libri da leggere basati sui miei gusti e sui trend del momento.

Immagino che vi siate trovati in questa situazione già molte volte, non è un ragionamento diverso da quello che fanno siti di commercio elettronico o social network.

OFF-TOPIC: C’è un discorso era-informatico che va affrontato, quello che ho appena descritto è efficiente, veloce, pratico e aiuta ad essere più veloci, al momento però non è in grado di sostituire le sensazioni che si provano davanti ad una bella libreria piena di libri, scorrere i titoli con l’indice, estrarre quello che ci attrae di più, toccarlo con mano, sfogliarlo, leggere magari i primi paragrafi. Quindi quando si automatizza troppo qualcosa bisogna ricordarsi che si rischia di perdere qualcos’altro.

Fatta chiarezza su cos’è l’informatica e le possibilità che offre dobbiamo capire come prende le decisioni un calcolatore.

COME DECIDE UN CALCOLATORE

Un calcolatore non ragiona, non può farlo a meno che non venga introdotta qualche forma di Intelligenza Artificiale ma questo è tutt’altro genere di argomento.

Un calcolatore ha una serie di regole scritte all’interno del software che gli dicono cosa fare quando si verifica una certa situazione, decide con una logica di 1/0, vero/falso, si/no, bianco/nero non esistono le sfumature di grigio. Le regole possono essere complesse, avere mille eccezioni, una marea di casi particolari impostati ed essere complicate all’inverosimile (come vedremo poi) ma alla fine il risultato è sempre 0 o 1.

Negli anni passati ho assistito ad una lotta a colpi di post, messaggi, video e foto tra un gruppo di utenti del più diffuso social network in Italia e le regole con cui è programmato, una battaglia che ricorda le battaglia contro i mulini a vento di Don Chisciotte.

Il SocialNetwork ha una regola impostata che fa sottoscrivere al momento della registrazione nella quale dice che non accetta foto di nudi pubblicate all’interno dei suoi contenuti (non stiamo a disquisire il perché e il per come se no dovremmo scrivere un trattato di filosofia web), limitiamoci a prendere per buono che il software contiene questa regola.

Una celebre Fotografa (a mio avviso una delle migliori al mondo nel suo genere) ha pubblicato una foto di se stessa completamente svestita, molti dei suoi ammiratori l’hanno apprezzata e condivisa, io stesso ho visto la foto ed è estremamente delicata, molto artistica e mai avrei pensato a qualcosa di volgare ma… il software che analizza le foto non ha senso del pudore. Dell’estro artistico e della creatività se ne frega allegramente, quando è stato il momento di verificare la foto ha individuato un nudo ed ha censurato la foto, fine della storia.

Gli utenti, essendo persone dal sangue caldo e non freddi calcolatori, sono andati su tutte le furie vedendosi censurati e hanno ripubblicato la foto, il software l’ha censurata di nuovo, e così via per un po’ di volte (con evidenti mal di stomaco e arrabbiature) poi ha bloccato gli utenti per un po’ di giorni, finito il blocco questi hanno ricominciato e allora li ha bloccati per qualche giorno in più, non sò a che punto è finita la storia ma è probabile che le persone si siano stufate prima del software.

Questo serve per capire che il software non si arrabbia, non si mette a discutere, non fa scenate, ha una regola che dice più o meno: Se la foto contiene nudi eliminala. Se un utente pubblica 5 foto di nudi nel giro di una settimana bloccalo per tre giorni la prima volta, per sei giorni la seconda volta, per nove giorni dalla terza volta in poi . Se un utente viene bloccato per tre volte in un mese chiudi l’account. E la applica. Punto. Fine del ragionamento che si può fare con il calcolatore.

Si può caso mai ragionare con chi ha preso questa decisione e chiedere di gestire alcune eccezioni, allora il software sarà modificato e la foto accettata.

Ci sono anche celebri casi di errore del programma di valutazione dei nudi che censura il David di Michelangelo o la Venere di Botticelli ritenendoli dei nudi.

Questo ci fa capire come il software sia insensibile a qualsiasi argomentazione umana… e anche quanto siano bravi Michelangelo e Boticelli nel realizzare le loro opere.

Ho voluto fare questo esempio perché sono certo che una situazione più o meno analoga possiate averla vissuta direttamente o indirettamente.

Veniamo ora ad un caso meno filosofico ma molto più reale e concreto che, con qualche piccola variante, capita sovente.

Un azienda con centinaia di agenti offre un premio di 100.000€ equamente diviso tra tutti gli agenti che nel mese di gennaio stipulano contratti per un valore di almeno 10.000€.

Finisce il mese e il software analizza i dati.

Agente 1 vendite 98.000€

Agente 2 vendite 25.000€

Agente 3 vendite 12.000€

Agente 4 vendite 10.000€

Agente 5 vendite 9.999€

Aggiungiamo come notizia al di fuori dei conteggi che Agente 5 i mesi precedenti e i mesi successivi ha venduto più degli altri, è il migliore Agente della Società ed ha avuto la sfortuna di perdere un euro perché ha regalato un prodotto del costo di 20€ a fronte di un contratto da 50.000€ firmato il mese successivo.

Il software assegna 25.000€ ai primi 4 agenti e li avvisa con una bella email, l’Agente 5 va a lamentarsi in direzione (diciamo che fa ricorso :-) ) e la sua richiesta viene accolta.

Ora l’azienda può decidere se scalare 5.000€ agli altri 4 agenti (e se conosce i commerciali sapete che non la prendono bene, e la cosa potrebbe anche creare qualche litigio), oppure rimetterci dei soldi e dare il premio anche anche al quinto agente modificano il budget a disposizione. E l’agente 6 che ha fatto anche lui 9.999? E il 7 che ha fatto 9.998? Fino a che percentuale vale il ricorso?

Se il premio fosse stato per i primi 4 classificati sarebbe cambiato tutto, perché anche per un centesimo c’è un quarto e un quinto ma a livello motivazionale non avrebbe retto perché se a competere con me ci sono anche solo 7/8 fuori classe con più esperienza so già che non posso vincere e quindi non sono stimolato a metterci più impegno.

Un idea potrebbe essere quella di non dividere in parti uguali ma ripartire il premio in proporzione a quanto venduto da tutti, così chi ha fatto 98.000€ prende molti più soldi di chi ha fatto 100€ ma in questo caso è una regola completamente differente.

Questi esempi banali hanno il puro scopo di far capire la logica che stà dietro ad un software e mi servono per dire che la cosa più difficile quando si sviluppa un software è stabilire le regole di comportamento, poi l’interfaccia può essere più o meno intuitiva, l’elaborazione lenta o veloce e via dicendo.

Le regole non le stabilisce quasi mai il programmatore, al massimo può dare delle idee, ma chi commissiona il prodotto. Ed è questa la persona che decide come ragiona il software. Il programmatore si occuperà di ‘insegnare’ al software la regola con tutti i suoi risvolti.

Molto spesso capita che queste regole si sviluppino nel tempo e con continue rielaborazioni di dati, e analisi dei risultati. Si applica la prima versione della regola, si analizzano i risultati, si modificano eventuali aspetti della regola, si rianalizzano i dati e così via fino al raggiungimento della perfezione. Quando si programma è importante capire tutte le direzioni che può prendere il software e quando si decide bisogna tener presente che ogni modifica impatta su tutti i dati.

Tanto per avere un dato puramente tecnico di cosa può succedere c’è una regola che stò sviluppando da oltre 4 anni che è lunga 410.505 caratteri disposti su 7.516 righe e continuerà a crescere. Ogni tanto viene riscritta da zero per essere ottimizzata e poi riprenderà a crescere. Quando questa regola viene modificata i suoi effetti si ripercuotono, attualmente, sulla busta paga di più di 6000 persone e quindi è estremamente importante prendere le decisioni e programmare le modifiche con estrema attenzione.

--

--