
Il mondo che viviamo è un insieme sempre più complesso di dati che descrivono fenomeni e modelli matematici. Per questo nel corso del tempo anche le figure di riferimento si sono evolute e specializzate nei vari rami dello sviluppo software.
Ad esempio avrai sentito sempre più spesso termini come “front-end developer” ovvero quei professionisti specializzati nello studio e nella creazione di interfacce semplici ed intuitive da visualizzare sia su applicazioni web che su applicazioni mobili, oppure “web developer”, e via dicendo.
Ma che dire del mondo dei dati?
Anche nel mondo dei dati, stiamo assistendo alla nascita di figure sempre più specializzate. Per questo forse avrai sentito anche parlare di “data engineering” e di “data science”.
Ma a cosa ci riferiamo con questi due termini? E soprattutto: perché la cosa dovrebbe interessarti?
Beh, ti dirò subito il motivo per cui dovresti continuare a leggere questo articolo: avere ben chiaro cosa fanno queste due figure professionali ti permetterà di partire con il piede giusto per la realizzazione della tua infrastruttura e soprattutto eviterà che tu perda tempo e risorse nella realizzazione di qualcosa non adatto alle tue esigenze.
Insomma: affidarti alla figura giusta al momento giusto veramente potrà garantire il successo del tuo progetto.
La pipeline dei dati: dall’estrazione all’analisi
Come ho analizzato nel mio libro “Why your data matter” (non l’hai ancora letto? Vai alla pagina “il mio libro” e richiedi la tua copia gratuita!), noi tutti per prendere decisioni abbiamo bisogno di informazioni, ma quei pochi numeri che garantiscono a te una visione corretta della realtà (e del futuro) in realtà hanno alle loro spalle un processo assai complesso.
Potremmo sintetizzare questo grosso processo in alcuni passi fondamentali, ovvero:
- Estrazione dei dati (ETL, Data Mining, ecc.…)
- Caricamento di questi ultimi in un “magazzino” di tua proprietà
- La loro lavorazione secondo i tuoi processi produttivi
- La loro analisi e relazione con modelli matematici che possano “predire il futuro” oppure darti una visione istantanea del presente
Il primo passo, l’estrazione dei dati
Quando si parla di ETL e mining dei dati ci si riferisce alla realizzazione di uno strato di software (processi, applicazioni, ecc.…) che vada a reperire i dati da una fonte. Ad esempio, generalizzando molto, questo potrebbe significare leggere ciclicamente i dati produttivi di una macchina industriale, ma anche eseguire operazioni di web-scraping (analizzare pagine web per estrarne i dati contenuti) per andare a leggere ad esempio i prezzi medi degli affitti riportati da un’agenzia immobiliare. Oppure ancora collegarsi in modo automatico a servizi web esistenti per scaricare i post degli utenti relativi ad un prodotto o ancora copiare i dati da altre basi dati esistenti.
Le applicazioni pratiche sono veramente infinite perché ognuna di esse si basa sull’esigenza specifica ed è difficile se non impossibile pensare di acquistare un prodotto che tramite alcune configurazioni possa adattarsi a tutte le casistiche.
In effetti questa prima parte richiede delle forti competenze ingegneristiche non solo per lo sviluppo del codice in sé, ma anche per l’architettura generale che dovrà essere progettata per essere sicura, affidabile e prestante (vuoi mica attendere ore per qualcosa che potresti fare in pochi secondi? Oppure rischiare di perdere dati? O altro ancora…)
Ebbene proprio come un sistema di approvvigionamento merci, i tuoi dati hanno bisogno di essere “puliti” e “stoccati” in un magazzino sufficientemente flessibile e grande.
I dati sono come i grassi: non tutti sono buoni, quindi fai pulizia!
Infatti, una volta recuperati i dati non possiamo attenderci di “stoccarli” così come sono: devono essere “puliti” e normalizzati. Esistono vari approcci, ma il punto è che prima di utilizzare un dato nei tuoi processi, devi assicurarti che sia buono, ovvero valido! Faccio un esempio? Se stai acquisendo i dati di una macchina industriale… supponiamo un avvitatore automatico che deve garantire la massima precisione in termini di coppia torcente, velocità, angolo della vite, ecc., davvero possiamo pensare di prendere tutti i dati di lavorazione e prenderli per “buoni”? No! Perché ogni singolo strumento è affetto da una somma di errori chiamato errore relativo ed errore assoluto! Quindi nel momento in cui si hanno un buon numero di misurazioni è sempre buona norma ad esempio eliminare i valori estremi e lontani dalla media, questo perché si suppone che siano degli errori.
Se misurassimo il tempo di percorrenza del treno alta velocità sulla tratta Roma-Firenze su 100 misurazioni la maggioranza si attesterà intorno all’ora e mezzo. Per cui potremmo prendere per buoni valori di un’ora e venti o di un’ora e quaranta, ma se trovassimo un valore di 10 minuti totali o di 4 ore, li considereremmo valori “validi” da poter utilizzare nei nostri processi? No! Penseremmo ad un errore sul misuratore o ad un guasto treno, ma sicuramente toglieremmo di torno questi estremi.
Validazioni di questo tipo e altre di tipo più o meno formale vengono nuovamente realizzate da un altro strato di software che prima di “stoccare” il dato, lo valida e lo pulisce.
Altro tipico esempio sono i post: spesso sono scritti in lingue diverse: ecco perché molte volte prima di “stoccarli” vengono eseguite delle traduzioni automatiche per normalizzare tutti i post in una unica lingua.
Anche questo passo di conseguenza è strettamente legato all’ingegneria: realizzare del software affidabile, che produca risultati corretti e che completi i task in tempi record…
Ma andiamo oltre: un volta acquisiti i dati… dove li mettiamo?
Il passo successivo – il loro “stoccaggio”: non tutti i magazzini sono uguali tra loro
Ma ora che li abbiamo puliti dobbiamo “stoccarli”, e nuovamente ci chiediamo: dove? Data Lake? Database relazionale? Database documentale o NOSQL? Un buon data architect (quindi una figura sempre ingegneristica) è vitale per realizzare e progettare la giusta struttura. Se questo non è una persona debitamente qualificata il rischio è quello di veder cadere come un castello di carte i tuoi sforzi fatti fino ad ora: anche perché questo incide fortemente sui costi delle tue infrastrutture. Hai davvero bisogno di un professionista e che anche in questo caso sia legato ad un approccio ingegneristico.
Ci siamo quasi – adesso puoi usare i tuoi dati per i tuoi processi in qualsiasi momento
Di seguito abbiamo parlato della lavorazione dei dati: ovvero i processi che mandano avanti il tuo business e si basano su quei dati saranno un nuovo ingranaggio del tuo sistema che trasformerà i dati, vi eseguirà dei calcoli e questo sarà cucito su misura per il tuo business: di nuovo parliamo di ingegneria e sviluppo software.
Molte realtà si appoggiano su processi scritti nei linguaggi di programmazione più differenti come SQL, python, C#, Java, ecc… Ma alla base c’è sempre una forte competenza tecnica.
Un ultimo passo – l’analisi
Eccoci adesso siamo vicini alla fine: abbiamo recuperato i nostri dati, li abbiamo puliti e validati, li abbiamo poi stoccati in un magazzino e lavorati per portare avanti i tuoi processi aziendali (e quindi creare ricchezza). Ma adesso vogliamo analizzarli, aggregarli, studiarli per avere una visione di quello che sta succedendo al presente (business intelligence) ed anche metterli in relazione con modelli matematici per poter predire il futuro (data science).
Ebbene in questo caso non abbiamo bisogno solo di un approccio volto allo sviluppo software ma soprattutto di poterci basare su solide basi matematiche e statistiche che permettano di scegliere i modelli giusti per l’occorrenza. Avremo inoltre bisogno di “mostrare” i dati in modo intuitivo, facile ed immediato da comprendere (data visualization).
Abbiamo bisogno in effetti di prendere tutti i dati che sono stati prodotti e preparati fino ad ora e studiarli per estrarne delle informazioni: queste ti aiuteranno a decidere… ma a patto che tutta la parte sommersa di questo mostruoso iceberg sia corretta, sicura e performante.
Ben arrivati a destinazione!
Ecco quindi che siamo arrivati in fondo al viaggio dei dati, o come si chiama in gergo, della pipeline dei dati. E tu puoi accedere alla tua applicazione web, guardare la tua dashboard e i tuoi report e dormire sonni tranquilli.
Ma ecco la domanda: visto che questi step hanno bisogno di essere progettati ed implementati dalla figura giusta… a chi rivolgersi?
Nella seconda parte di questo articolo andrò a rispondere finalmente alla domanda posta nel titolo.
Ti prego di scusare questa introduzione molto prolissa, ma era necessaria per arrivare al dunque dell’argomento!
Alla prossima informazione!