Salta al contenuto
artea.blog
  • artea.com
  • Articoli
  • artea.com
  • Articoli

Make or Buy: strategia e tattica per costruire il motore di ricerca aziendale

Dalla neonata startup alla multinazionale quotata, tutte le aziende a un certo punto si trovano davanti alla fatidica scelta del “make or buy”: che sia il nuovo sistema HR, un CRM, uno dei componenti che sostituiscono la proposizione aziendale, il manager si trova a decidere se il nuovo software è da costruire (“make”), o comprare (“buy”).

Mentre in alcuni casi questa decisione è piuttosto ovvia, nessuno si metterebbe mai a farsi un suo foglio di calcolo o un suo sistema operativo, in altri diventa il campo di battaglia fra chi farebbe sempre tutto da zero, e chi non viene mai sfiorato da questo pensiero.

Dietro a questa diatriba c’è effettivamente la difficoltà dietro a ogni scelta strategica: da una parte ci sono costi di licenza, costi di integrazione, il rischio dell’effetto vendor lock-in (i.e., sostituire un domani il venditore è talmente costoso che la scelta diventa insostituibile e il venditore ottiene una forte posizione di controllo), la complessità nel lavorare con tecnologie proprietarie, il maggior costo per le personalizzazioni.

Dall’altra parte invece seguire la filosifica del make costringe il manager a prendersi una responsabilità importante: cosa succede se il progetto fallisce? Cosa succede se il software costruito non fa quello che dovrebbe? Chi posso chiamare se qualcosa non va?

Quindi è meglio il make o il buy? Come ogni domanda mal posta, l’unica risposta possibile è: dipende.

Per aiutare a rispondere è però indispensabile approfondire meglio il concetto di “make”. Comunemente, il make lo si immagina come la volontà di re-inventare la ruota partendo da zero e andando a scrivere ogni componente e ogni funzione. In alcuni casi può essere vero, in altri è un’estremizzazione assolutamente poco ragionevole.

Per spiegarvi meglio questa complessità, permettetemi di prenderla alla lontana con un esempio.

Quasi tutte le aziende hanno un problema in comune, legato a una delle necessità primordiali dell’uomo, ossia come fare per gestire la conoscenza. Era un problema per i sumeri, che inventarono la scrittura cuneiforme per condividere la conoscenza sui confini dei campi dei diversi contadini. Era un problema durante il medioevo, dove i poemi medioevali avrebbero dovuto sopravvivere ai personaggi reali o di fantasia di cui narravano le gesta. Era un problema per il mondo pre dot-com revolution, dove un progetto nato in ambito militare era diventato il mezzo fisico per condividere la conoscenza. Era un problema parzialmente risolto subito dopo, dove quelli che sarebbero diventati le nuove super-potenze capirono che dietro alla complessità della strutturazione della conoscenza solo una ricerca testuale e poco vincolata avrebbe potuto governare questo nuovo mondo. E allora Yahoo, i fratelli Lycos, Google, tutti colossi nati negli anni 90, battezzarono la nascita di una nuova era.

Oggi nessuno si pone più il problema di chi abbia ragione su un dato argomento: ricordo ancora quando ero piccolo, quando a tavola una discussione diventava troppo animata, mia madre andava a prendere l’enciclopedia per sancire chi avesse ragione. Oggi basta “googlarlo” o cercarlo su wikipedia.

Quindi nel mondo comune l’idea di un singolo motore di ricerca che ci da accesso a tutta la conoscenza disponibile è talmente scontato che nessuno si immagina di vivere senza.

Ma perché non si può dare per scontato lo stesso servizio all’interno dei perimetri aziendali?

Immaginiamo un’azienda manifatturiera che vive della genialità e capacità dei suoi reparti di ingegneria e ricerca e sviluppo. Quanto sarebbe comodo per loro avere un motore di ricerca che contiene tutti i documenti progettuali, tutti i Cad o il codice sorgente, i capitolati, le presentazioni, i manuali, i ticket dei bug aperti, le distinte base, i dati sui fornitori, i dati sui clienti, le informazioni delle linee di produzione, la tracciabilità. E’ un desiderio utopico?

E’ in questo contesto specifico che la scelta make or buy diventa ancora più sottile: esistono sistemi “off-the-shelf” con connettori per collegarsi ai più comuni software di mercato e con tantissime features mirabolanti, dalla ricerca nelle immagini, alla similarità fra documenti, alla ricerca testuale. Ma poi “il sistema di PLM (product lifecycle management) ha una serie di customizzazioni”, “quelle altre informazioni le teniamo su un excel”, “per avere questo devi prendere le mail”, “ci sono poi dei documenti pdf da elaborare per estrarre il cartiglio”, “attenzione, il nome del prodotto è il nome del file”, … spesso seguendo pedissequamente l’idea del buy per “evitarsi grane” ci si porta solo a casa una complessità e inefficienza molto grande. Quindi vediamo sistemi che sono veramente avanzati e completi, come Cadenas, portarsi a casa tantissime funzionalità pronte per l’uso, ma faticare a portarsi a casa quell’ecosistema complesso di software, soluzioni, regole, abitudini sedimentate che spesse volte rappresentano le vere sfide nelle grosse realtà industriali.

“Allora no, voglio fare tutto io” potrebbe balenare nella testa del manager: “costruisco l’indice”, “costruisco il mio OCR“ (software per riconoscere il carattere nelle immagini), “costruisco il mio connettore a Teamcenter” (uno dei prodotti più diffusi nel mondo della PLM). Sarebbe molto bello, ma quanto costa? Quanto tempo ci vuole? Chi mi garantisce che sarà compliant con tematiche normative come quelle legate ai dati e alla GDPR? Quale strategia scegliere? La scelta migliore è probabilmente il make and buy, ottenibile con un approccio molto semplice:

  • Disegno l’architettura e la soluzione
  • Identifico i componenti logici utili per realizzare la soluzione
  • Componente per componente
    • Valuto quanto mi costi farlo
    • Valuto quanto mi costerà mantenerlo
    • Valuto quanta personalizzazione mi servirà

Tornando al nostro problema, la gestione della conoscenza, servirebbe:

  • Un componente per estrarre i testi da qualsiasi tipo di file (immagine, cad, pdf, excel, documento, …)
  • Una serie di connettori per estrarre i file dai vari sistemi legacy
  • Un contenitore che ospiti il processo e faccia si che l’estrazione sia incrementale (ogni giorno voglio solo i file nuovi, non tutti i file ogni volta)
  • Un engine che permetta di indicizzare questi testi
  • Un’applicazione web che permetta di interrogare questo engine con un’esperienza utente il più vicina a quella che è abituata ad avere (text-box di google ad esempio)

Connettori e logiche probabilmente trovandoci davanti a sistemi custom ha molto senso costruirseli, così come una semplice applicazione web. Engine di indicizzazione molto meno, esiste uno standard de facto open source di nome Lucene, disponibile vanilla o attraverso varie distribuzioni (come Azure Search).

L’estrazione dei testi, che sembra quasi la parte meno importante, diventa vitale: la sola idea di coprire qualsiasi casistica di formato scoreggerebbe anche il più accanito sostenitore del make. Che soluzioni esistono sul mercato per questa “nicchia”? In realtà non moltissime. Sicuramente Aspose è un sicuro candidato per questo ruolo (soluzione che alla fine abbiamo adottato in ogni nostro progetto/prodotto), per via sia della copertura notevolissima dei possibili formati, che per la possibilità di utilizzare qualsiasi tipologia di linguaggio di programmazione. Di fatto è l’unica soluzione che copre sia la parte puramente “office” che formati più complessi come i vari CAD. Anche se a prima vista potrebbe non sembrare un prodotto “economico”, andando a vedere la quantità effettiva di feature offerte, nel momento in cui c’è la possibilità di ri-utilizzarlo su più progetti e quindi ripartire il suo costo, la scelta diventa veramente semplice da fare. In questo momento ci sta permettendo, oltre all’estrazione del testo da qualsiasi formato file (e parliamo anche di cose assolutamente esoteriche come i QAF, formati mai sentito prima di incontrarlo in un progetto), di fare in maniera semplice e intuitiva le thumbnail di preview del documento (feature molto apprezzata dagli utenti che utilizzano il motore di ricerca tailor made sulle loro esigenze).

Quindi… scegliere tra make or buy non è mai una scelta banale e scontata, che viene resa più semplice trovando prodotti “primi della classe” (best of breed) come Aspose, in grado di accelerare progetti complessi e far si che sia possibile fare focus sulle parti applicative delegando una grossa complessità alle sue librerie.

Ti interessa scoprire come applicare potenti e innovativi modelli predittivi per calcolare il rischio?

Compila il form in basso per richiedermi una consulenza gratuita.







    AccettoNon accetto


    AcconsentoNon acconsento


    • 7 Lug, 2020
    • (0) Commenti
    • By Florindo Palladino
    • Big Data, Finanza e Credito, Intelligenza Artificiale, Machine learning, News, Opportunità

    Il futuro della sanità e dell’imprenditoria raccontato dal COVID-19 e dall’AI

    “Coronavirus, Alibaba: l’intelligenza artificiale esegue il test in 20 secondi”.

    È il titolo di un recente articolo pubblicato su la Repubblica che mi ha dato modo, ancora una volta, di riflettere su quanto importante sia l’intelligenza artificiale per aziende, governi e, senza dubbio, per ciascun individuo.

    Mi spiego.

    In artea.com, l’azienda per la quale ricopro il ruolo di CEO, ci occupiamo di intelligenza artificiale.

    Sviluppiamo soluzioni tecnologiche in grado di estrarre le informazioni utili dai dati, al fine di utilizzarle per insegnare a delle macchine a predire qualcosa che è interessante per il business dei nostri clienti.

    È esattamente quanto fatto da Alibaba per aiutare il proprio paese nella lotta contro l’emergenza sanitaria che sta, ormai, interessando i popoli di tutto il mondo.

    Il metodo di Alibaba per combattere il COVID-19

    La Damo Academy, istituto della multinazionale cinese, si apprende dal sopracitato articolo, ha sviluppato un algoritmo, ovvero un procedimento informatico capace di risolvere un problema sulla base dei dati disponibili, in grado di diagnosticare casi di COVID-19 in soli 20 secondi, distinguendoli da quelli di comuni polmoniti.

    Ma non è solo l’impressionante velocità di diagnosi a colpirmi: questo metodo ha un livello di accuratezza del 96%!

    Qual è il segreto dell’istituto di ricerca cinese che ha sviluppato questo metodo?

    È semplice. La disponibilità di una grande mole di dati e, ovviamente, la capacità di utilizzarli al meglio.

    “Il nuovo metodo, spiegano dall’istituto di ricerca cinese, sfrutta complessi sistemi di analisi basati sul machine learning e addestrati con i dati campione di oltre 5 mila casi confermati, secondo le linee guida delle ultime ricerche effettuate sull’epidemia che negli ultimi mesi si è rapidamente diffusa a livello globale.”

    Quali sono i vantaggi del metodo Alibaba?

    I medici che si trovano oggi in prima linea nella lotta contro la pandemia possono contare su una tecnologia capace di aggregare, in poche frazioni di secondo, tante informazioni che molto difficilmente un uomo potrebbe apprendere e valutare.

    È quindi possibile prendere delle precise scelte su ogni paziente in pochi secondi, aumentando il numero di visite giornaliere, rassicurando i pazienti non infetti, isolando quelli infetti e riducendo drasticamente la possibilità di contagio sulla popolazione sana.

    Il valore del risultato finale è talmente grande da non essere misurabile in termini economici e sociali.

    E il nostro Sistema Sanitario?

    In Cina, tutto questo è stato possibile grazie alla disponibilità di una grande massa di dati (l’articolo parla di 5000 test di soggetti positivi al COVID-19 per “allenare” l’algoritmo a identificare il virus su nuovi pazienti).

    Immagina quali incredibili risultati potremmo raggiungere se disponessimo di un’unica banca dati organizzata, contenente tutti i test fatti sui pazienti.

    Per prima cosa, probabilmente potremmo perfezionare il già strabiliante risultato del 96% di accuratezza raggiunto da Alibaba nella diagnosi del COVID-19.

    Ma i campi applicativi resi possibili da una banca dati organizzata sono pressoché infiniti.

    Proviamo, allora, a fare un ragionamento più ampio.

    Riflettiamo sul numero dei dati sanitari che un individuo genera dal momento della sua nascita. Sin dal nostro primo giorno di vita, incontriamo medici decine di volte.

    Ora, ipotizziamo che ognuno di noi abbia una sua area personale sulla quale viene registrata qualsiasi informazione sulla sua storia clinica e sulla sua nutrizione e sulla quale trasmette i suoi dati fisiologici giornalieri attraverso wearable (dispositivi indossabili come gli smartwatch).

    Mi rendo conto che ciò possa sembrare uno scenario da Grande Fratello, oltre che difficile da realizzare.

    Ma immagina che ognuno di noi possegga i propri dati sanitari e che possa scegliere di condividerli con il Sistema Sanitario Nazionale per condurre studi e ricerche, quali grandi vantaggi potrebbe trarre l’intera società da uno strumento del genere?

    Potremmo fare delle analisi su larga scala. I dati trasmessi al mondo della ricerca avrebbero un livello di dettaglio e una quantità mai vista prima.

    Si parla sempre per ipotesi, ma gli insights che si otterrebbero dalle analisi di così tante persone, probabilmente, ci permetterebbero di approcciare diversamente una serie di patologie che affliggono oggi l’umanità e il benessere di ognuno di noi.

    Il tema della prevenzione, analizzando i vari cluster di pazienti, potrebbe diventare una realtà ben più grande di quanto non lo sia oggi. E, forse, anche l’insorgere delle epidemie, come quella del COVID-19, potrebbe essere gestita diversamente per ogni cluster di popolazione.

    È quindi possibile basare tutto sull’AI?

    I mezzi per realizzare un sistema di questo tipo ci sono e, di fatto alcuni governi hanno fatto i primi passi sulla via della digitalizzazione del proprio sistema sanitario. Un esempio ne sono i paesi scandinavi che ne hanno letto le opportunità sia per i pazienti che per la ricerca medica.

    La base di tutto è un sistema centrale che raccoglie ordinatamente e con logiche da Big Data tutte le fonti dati in un unico Hub.

    Se volessimo quindi organizzare la nostra sanità secondo un sistema d’analisi e predittivo simile, dovremmo seguire questi tre passi:

    1. dovremmo dotarci di mezzi tecnologici (hardware e software) per raccogliere tutti i dati necessari in modo ordinato;
    1. successivamente, occorrerebbe disporre o implementare una architettura efficiente che dia struttura ai dati.
    2. infine, per poter poi trarre il massimo vantaggio, occorrerebbe affidarsi agli algoritmi di AI che, sapientemente “istruiti”, dovrebbero elaborare i dati e, allo stesso tempo, apprendere autonomamente il modo di utilizzarli per restituirci informazioni utili al miglioramento delle performance del nostro sistema sanitario.

    L’alleato dell’uomo, in ogni settore

    Credo fermamente che l’intelligenza artificiale abbia le carte in regole per divenire un valido e fidato alleato dell’uomo in ogni campo della nostra vita.

    Usciamo dal campo sanitario e prendiamo ad esempio una realtà imprenditoriale.

    Grazie all’intelligenza artificiale, ogni azienda ha l’occasione di risolvere alcune classi di problemi difficilmente risolvibili con approcci tradizionali.

    Come avviene con l’algoritmo prodotto da Alibaba, che permette di accorciare i tempi di diagnosi sui pazienti, gli algoritmi di Machine Learning, allenati per fare analisi computazionali che a noi esseri umani richiederebbero troppo tempo, possono essere utilizzati in ambito aziendale ottenendo risultati ad alto valore economico.

    Attenzione però a non pretendere di risolvere tutti i tuoi problemi con l’Intelligenza Artificiale!

    Come già indicato nel mio precedente articolo dal titolo “Machine learning per non addetti ai lavori: cos’è e a che ti serve?”, un’accurata collezione di tutti i dati generati e raccolti in ogni dipartimento della tua azienda ( COVID-19 docet! ) è condizione indispensabile per poter successivamente testare e valutare i modelli di ML che meglio rispondono alle esigenze del tuo business.

    Concludendo, la centralità del paziente, in un sistema capace di raccogliere e gestire tutti i suoi dati senza vincoli, è analoga alla centralità della tua Azienda con i suoi dati.

    Quindi, la possibilità di avere o meno un sistema capace di gestire e organizzare questa mole di dati e interagire con differenti entità (nel caso del paziente con le strutture sanitarie, nel caso dell’Azienda con differenti fonti di dati e/o sedi) è la base di partenza fondamentale.

    Su questa struttura vanno testati e “innestati” i modelli di Machine Learning con le dovute cautele di approccio, prendendo in considerazione le peculiarità di ogni ambito applicativo, perché, non mi stancherò mai di dirlo, non esistono soluzioni pronte all’uso per tutti!

    Vuoi scoprire le opportunità che puoi cogliere grazie all’Intelligenza Artificiale?

    Compila il form in basso per richiedermi una consulenza gratuita.







      AccettoNon accetto


      AcconsentoNon acconsento


      • 26 Mar, 2020
      • (0) Commenti
      • By Lorenzo Brambilla
      • Big Data, Intelligenza Artificiale, News, Opportunità

      Il Mangiabidoni

      Oggi ti parlo di una “creatura”, capace, in sole 300 righe di codice, di spazzare via, per performance, stabilità e costo, tutti i mostri sacri del mondo ETL. Tutti!

      Il suo nome è Mangiabidoni e, per lavoro, estrae, trasforma e carica grandi quantità di dati, come nessuno ha mai fatto fino ad ora.

      Il suo nome può sembrarti buffo ma, ti prego, non lo prendere in giro.

      Ha una missione estremamente importante e merita rispetto: rende facilmente disponibili grandi quantità di dati. Velocemente!

      Sì, perché oggi la competitività di tutte le aziende, compresa la tua, dipende dalla capacità di elaborare agilmente i tuoi dati. Ogni decisione strategica va presa sulla base di informazioni precise e non è consentito indugiare, aspettando infiniti tempi tecnici.

      Occorre agire prima dei concorrenti e, per poterlo fare, per costruire solide basi per il futuro della tua azienda, hai bisogno di un sistema di archiviazione dati affidabile, sostenibile e a bassa, se non nulla, manutenzione, tutte caratteristiche difficilmente riscontrabili in tutte le soluzioni ETL disponibili sul mercato.

      In decenni di carriera, le ho provate tutte: Attunity, Talend, Mulesoft, Denodo, Azure Data Factory, Apache Flume e TIBCO, per citare quelle più quotate sul mercato.

      Nessuna soluzione ETL ha mai soddisfatto in pieno le mie esigenze e quelle delle aziende per le quali ho lavorato.

      È per questo che ho creato il Mangiabidoni, un software scritto in C#, a dire il vero, piuttosto semplice, che guardi funzionare e pensi “come ho fatto fino ad ora senza?”.

      Finalmente è possibile Implementare un sistema Big Data e organizzare il trasferimento continuo ed efficiente di dati eterogenei senza mal di testa, senza limitazioni e, perfino, senza costi di licenza.

      Ma prima di svelarti come funziona il Mangiabidoni, seguimi nel racconto di tutte le inefficienze nelle quali questa meravigliosa “creatura” ti evita di incappare quando costruisci un Sistema Big Data.

      Vuoi perdere tempo, soldi e opportunità?

      Bene. Allora, la prossima volta che devi costruire un sistema Big Data, adotta un approccio destrutturato, improvvisato e attivati solo per rispondere alle immediate esigenze o, peggio, urgenze, del tuo business o di quello dei tuoi clienti.

      In questo modo, puoi starne certo, il tuo progetto è destinato al fallimento perché incapace di crescere nel tempo.

      È questo il punto: il tuo repository, y deve essere talmente bene organizzato da poter evolvere organicamente con te e la tua azienda. Altrimenti, periodicamente, sei costretto a reinvestire da zero in tecnologie e ore uomo.

      Un esempio di cattiva prassi sono le estrazioni puntuali provenienti dalle basi dati applicative, fatte su richiesta e prodotte in formato CSV, Excel o testuali. La produzione continua di questi file tende a popolare Il sistema Big Data in maniera piuttosto disordinata fino a raggiungere la totale inutilizzabilità dei dati.

      La chiave è l’omogeneità!

      L’esigenza di elaborare Big Data richiede una capacità di archiviazione importante, oltre che la necessità di parallelizzare i processi di elaborazione e di computo.

      Ciò è possibile solo se possiedi un repository di dati omogenei, anche se provenienti da tante fonti diverse, che non coincide con un database relazionale o colonnare.

      Con dati eterogenei, invece, risulta complicato costruire un sistema “Big Data” funzionante e duraturo e le insidie nelle scelte tecniche che vanno fatte per estrarre i dati dalle fonti legacy sono sempre dietro l’angolo.

      Vuoi peggiorare la situazione?

      Generalmente, per costruire un sistema Big Data, viene utilizzata una raccolta, di framework e utility software open source, presa dalla fondazione Apache. Questo per risolvere problemi che implicano l’elaborazione di enormi quantità di dati.

      Tuttavia, queste suite di framework, si presentano come una pletora di sistemi e utility che dovrebbero cooperare insieme per rendere possibile la realizzazione di un sistema scalabile “Big Data”, ma la realtà è diversa da come viene prospettata.

      Il fatto che il framework sia realizzato come agglomerato di tanti progetti open source differenti rende la curva di apprendimento all’uso poco inclinata, tanto tempo impiegato per poco apprendimento. Spesso le soluzioni architetturali che si ottengono assomigliano a veri e propri bazar delle tecnologie.

      Come si risolve sto casino?

      Non c’è dubbio: punta sempre alla costruzione di un’infrastruttura semplice e minimale.

      Sostanzialmente hai bisogno di 2 sole componenti importanti, necessarie e implementabili in tempi relativamente “normali”:

      • Hadoop Distributed File System (HDFS) che ti permette di implementare un File System Distribuito, detto solitamente Data Lake, deputato a essere il contenitore di tutte le informazioni aziendali. In questo modo, ti garantisci un accesso ad alta velocità ai file e ai dati, con costi di storage molto bassi, più bassi di qualsiasi altra scelta tecnologica.
      • Apache Spark che implementa il motore di calcolo generale per i dati su HDFS e fornisce un modello di programmazione parallela, relativamente semplice ed espressivo, che utilizza il paradigma “Map-Reduce” con diversi linguaggi e si presta a una vasta gamma di applicazioni, tra cui Machine Learning ed elaborazione di flussi e calcolo.

      Quindi il segreto è puntare su un Data Lake?

      Sì!

      Il repository ideale per un sistema Big Data è un Data Lake, ovvero un File System generico e non un database tradizionale, perché fornisce l’opportunità di trattare e organizzare i dati in maniera aperta e avulsa da formati proprietari, attraverso un’operazione chiamata serializzazione.

      La serializzazione dei dati consiste nel leggere le informazioni da fonti diverse, interpretarle secondo le strutture contenute su di esse e riportarle sul Data Lake in un formato testuale strutturato e comprensibile, generalmente Json, XML o CSV. Per esempio, le tabelle di un database relazionale vengono lette all’origine e scritte sul Data Lake come file flat, in formato testo.

      È su questi dati serializzati che successivamente vengono organizzate le logiche di elaborazioni massiva e parallela dei processi con Apache Spark.

      La soluzione è Il Mangiabidoni

      Il famoso Mangiabidoni nasce per mangiare agnosticamente sorgenti dati e copiarle su Data Lake in maniera incrementale.

      È un software molto semplice, scritto in C#, che permette la connessione ai DB, utilizzando native clients, a Salesforce, con le sue API, a qualsiasi log testuale, con una classe di parser dedicata, e a Sharepoint, con la capacità di ricorrere tutti i siti e ottenere il contenuto di tutti i documenti. E, ancora, a Teamcenter, Jira, SAP, passando dal layer DB, file pdf, zip che possono essere scaricati da Fornitori di informazioni, cartelle di rete con presentazioni e immagini e ERP basati su mainframe.

      La nascita del Mangiabidoni

      Ero a lavoro presso un importante cliente quando ho dovuto affrontare la sfida di dover realizzare un sistema di serializzazione per un Data Lake basato su HDFS.

      Mi sono messo, quindi, a vagliare le possibili strategie offerte dai tanti prodotti sul mercato, senza, però, trovare nulla di soddisfacente.

      L’esigenza del cliente, una multinazionale del manufacturing italiana, era quella di creare in sistema in grado di attingere i dati da diverse fonti, File Log Testuali provenienti dalle linee di produzione, tabelle di database nei vari MES di fabbrica, tabelle di database provenienti dal CRM SAP DB2 e messaggi provenienti da eventi di diversa natura, con lo scopo di serializzarli sul Data Lake.

      I principi che regolano il Mangiabidoni

      I principi che si è deciso di seguire per creare una corretta architettura di importazione e serializzazione dei dati provenienti da diverse fonti sono i seguenti:

      • agente software multipiattaforma;
      • non necessita di database o altri sistemi di supporto;
      • configurazione centralizzata su Data Lake;
      • lettura e scrittura, in modalità streaming, a basso consumo di memoria;
      • serializzazione Json con formato dato che si auto-descrive;
      • auto-riparazione in caso di interruzione accidentale del processo;
      • log di esecuzione centralizzati su Data Lake;
      • sincronizzazione dei dati per differenza (change data capture – CDC – pattern).

      Le sfide. Ecco perché non lo avevano ancora inventato

      Le sfide più grandi che ho dovuto superare sono state:

      • l’assenza di un Datawarehouse;
      • l’implementazione di un pattern CDC:
        1. senza poter modificare il layer applicativo delle sorgenti dati;
        2. dovendo lavorare con stratificazioni software che in alcuni casi nascevano negli anni 90 (mi è capitato più di un PC su linea produttiva con sopra windows 95) e senza poter fare affidamento sulla corretta compilazione delle tabelle;
        3. senza poter arricchire le tabelle con colonne di cambio stato;
      • l’organizzazione sensata del Data Lake, battagliando con giovani e baldanzosi Data Scientist pieni di idee molto creative e poco tecniche;
      • disegnare una soluzione sicura, GDPR compliant, e farla accettare al gruppo CyberSecurity, al gruppo infrastrutture e al gruppo network e firewall;
      • garantire la compliance JSOX;
      • convincere il top management che non fosse il tool la chiave di volta, il punto non era scegliere soluzioni best of breed come TIBCO o Mulesoft, ma la forte spinta verso un’architettura software enterprise per la gestione di questi flussi;
      • garantire l’assenza del vendor lock-in.

      Tutti questi 7 punti sono stati molto interessanti da affrontare, qualcuno di questi merita sicuramente un approfondimento.

      La prima sfida si è rivelata cruciale: l’assenza di un Datawarehouse, quindi del tentativo di fare questo lavoro in modo strutturato negli ultimi 30 anni, mi ha dato l’opportunità di partire da un terreno vergine per costruire.

      A questo scopo si è rivelato cruciale, per convincere il top management, un famoso report di Gartner che spiegava come, nel caso in cui l’azienda non avesse ancora un Datawarehouse, il loro consiglio fosse di partire con la creazione di un Data Lake come single point of truth e di riversarlo a batch time sul Datawarehouse che sarebbe nato di lì a poco.

      Il Mangiabidoni e la sua estrazione incrementale

      La parte tecnicamente più sfidante è stata la creazione di un pattern di estrazione incrementale.

      Tutto è partito dalla definizione di un insieme pieno: i dati possono essere o log (quindi dati scritti in modalità append only e con una colonna che ne rappresenta la cronosequenza) o dati di tipo anagrafici (quindi dati scritti con tutti e tre i verbi del SQL, insert, append e delete).

      Definito questo insieme pieno, ho creato due strategie:

      • una strategia che andasse bene con i dati di log, definendo di volta in volta una condizione “where” dedicata;
      • un’altra che andasse bene con le anagrafiche, similmente a quello che fa github quando deve mergiare due commit.

      Il lasciapassare del team di Cybersecurity

      La soluzione disegnata doveva essere validata dal team di Cybesecurity, motivo per il quale l’attenzione dedicata alle tematiche di security è stata molta.

      Per quanto su questo punto stiamo ancora lavorando, alla fine del rilascio attuale la soluzione sarà al 100% compliant col GDPR, tracciando tutti gli spostamenti dei dati e garantendone la cifratura, e sarà anche compliant col JSOX, garantendo che nessuno abbia modificato dei dati at rest e che ogni processo venga tracciato e curato a dovere.

      Gli ultimi due punti in realtà collassano in uno. I problemi organizzativi sono stati:

      • questa soluzione non è stata implementata da una top 4 e non è stata neanche validata da una top 3 (anche se Microsoft, Databricks e Gartner sono state inchiestate e tutte e 3 le aziende hanno confermato l’assoluta innovatività e validità della soluzione)
      • questa soluzione non utilizza quello che Gartner avrebbe messo in alto a DX – quello che dico sempre io è che “se l’ha scritto Gartner in un suo quadrante, non è abbastanza innovativo”; 😀
      • non voglio legarmi mani e piedi a un fornitore software – come già fatto in passato;

      Il Mangiabidoni – non ha costi di licenza!

      Per convincere il top management, la scelta concordata con il referente interno è stata quella di proporre una soluzione senza costi di licenze.

      Si hai capito bene: l’architettura che gestisce circa 250M di inserimenti e update al giorno non ha costi di licenze. Da una parte, l’utilizzo sapiente di alcuni servizi PAAS di Microsoft ha permesso di creare un cost model che scalasse coi dati (quindi niente stime esoteriche del numero di core da comprare). Dall’altra, un make di qualità sulle sfide più complicate ha permesso di andare oltre i migliori tool di mercato.

      File excel. Un esempio applicativo

      Una specializzazione particolare è stata fatta verso i file excel, che su questo cliente svolgono compiti svariati: dal supporto alle funzioni finance, al metodo con cui vengono valutate le gare del purchasing, passando per la gestione applicativa dei KPI del manufacturing come OEE e OLE.

      Il connettore mangiabidoni excel riesce infatti a estrarre dati da qualsiasi versione di excel, dal 97 in poi, superare fogli protetti da password – senza bucarli ma sapendo la password 😀 – gestire macro, connessioni OLE DB con database, leggere da remoto e fare copie di valori per evitare lock.

      I competitor del Mangiabidoni

      Ecco.

      A questo punto, avrai capito che non esistono veri competitor per questo software e che non è il suo nome a essere buffo, ma piuttosto i tanti limiti delle altre soluzioni ETL.

      Con la semplicità predicata dall’approccio KISS (keep it simple, stupid), 300 righe di codice hanno battuto mostri sacri come:

      1. Attunity, per via della sua configurazione non ottimale;
      2. Talend che litiga con le tabelle senza chiavi primarie;
      3. Mulesoft, dal costo per core elevato e dalla complessità di implementazione molto alta;
      4. Denodo, non essendo chiaro quale componente ospiti i processi di integrazione;
      5. Azure Data Factory che richiede un lock-in molto forte verso Microsoft;
      6. Apache Flume che non riesce a gestire il CDC senza entrare nel merito della tabella e utilizzando il pattern CDC della colonna di stato;
      7. TIBCO, visto i costi progettuali.

      In più, il Mangiabidoni garantisce un tempo di configurazione che varia dalle 4 ore ai 5 giorni, per integrare una nuova sorgente: difficile da battere con qualsiasi tool di mercato.

      Ti interessa scoprire se anche tu e la tua azienda potete sfruttare l’unico software in grado di “mangiare bidoni di dati” a una velocità impressionante?

      Compila il form in basso per richiedermi una consulenza gratuita.







        AccettoNon accetto


        AcconsentoNon acconsento


        • 23 Mar, 2020
        • (0) Commenti
        • By Florindo Palladino
        • Big Data, Machine learning, News, Opportunità

        I sei errori da evitare quando lavori con i dati

        “Eureka! I dati non mentono:

        possiamo investire tutte le risorse della nostra azienda in questo progetto!”

        Sei (tristi e caotici) mesi dopo, la stessa azienda fallì.

         

        Come è possibile che i dati possano portarci a compiere cattive decisioni?

        Sono numeri e dovrebbe essere facile interpretarli con le tecnologie disponibili sul mercato e promosse dalle big della consulenza.

        Il punto è che non esiste nessuna tecnologia “pronta all’uso” che possa garantirti di scoprire il “Sacro Graal” nascosto nei dati della tua azienda o di quella dei tuoi clienti.

        Dipende tutto dalle capacità delle persone che prendono in carico l’analisi e l’elaborazione dei tuoi dati.

        Allora, dato che si sente sempre più spesso parlare di strategie e approcci Data Driven e che questa è diventata una delle aree di maggior investimento delle aziende, anche in Italia, è arrivato il momento di fare luce sulle principali cause che portano all’errata interpretazione dei dati.

        Sono “Lo Scienziato”, ogni giorno aiuto imprenditori e manager a prendere decisioni informate e ad acquisire concreti vantaggi competitivi, e oggi ti parlerò dei 6 errori che, troppo spesso, vedo compiere.

        Leggi con attenzione quanto segue perché è facile gridare “Eureka” per poi accorgersi di aver semplicemente preso un abbaglio.

         

        1) Anche se hai odiato l’esame di statistica, conoscerla è fondamentale!

        Che tu sia il professionista che conduce l’analisi o il manager che gestisce il gruppo di data scientist, le conoscenze sono tutto quando maneggi i dati.

        Ad esempio, la differenza tra media e mediana e il tipo di filtro che entrambe introducono sui dati sono delle nozioni elementari che ti permettono di evitare errori grossolani.

        Facciamo un esempio.

        Immagina che la tua azienda voglia calcolare l’efficienza dei suoi corrieri per premiare i più meritevoli: quello che verrebbe in mente è di cercare un valore significativo che rappresenti l’efficienza di un corriere e studiarne l’evoluzione nel tempo.

        Sicuramente, andresti alla ricerca di un sistema per tenere traccia dell’istante in cui viene fatta ogni consegna: una prima intuizione, ragionevole e corretta, potrebbe essere quella di utilizzare il tempo intercorso tra due consegne come indicazione del tempo di consegna.

        Potresti voler “normalizzare” questo valore in base alla distanza percorsa, tenendo conto del traffico: ti troveresti così davanti a una serie di tempi normalizzati sicuramente interessanti.

        Ora, la tentazione di calcolare la media, magari giorno per giorno, è sicuramente forte. In questo modo, forse, potresti rispondere prontamente alla richiesta di ottimizzazione dei processi dei corrieri. Ma è l’approccio giusto?

        Andando a studiare i dati così raccolti e messi a sistema (in media), quello che si noterebbe è che c’è una consegna ogni giorno che dura un’ora più delle altre (quella fatta a cavallo dell’ora di pranzo) e un’altra che dura ben 14 ore più delle altre (quella di fine giornata).

        In più, probabilmente, ogni giorno, potresti incorrere nell’errore di calcolare 2-4 consegne che, in realtà, non avvengono mai (una per ogni pausa del corriere).

        In questo caso-esempio la mediana avrebbe risolto il problema, essendo un filtro particolarmente efficace nell’eliminazione di outlier sistematici (valori anomali).

        Prendendo infatti quel valore che divide a metà i tempi di consegna e non quel valore che li somma tutti, andresti a cancellare quei pochi cicli poco significativi (fasce orarie nelle quali i poveri corrieri che stai valutando erano in pausa o, addirittura, a casa con moglie e figli).

         

        2) Non confondere la causalità con la casualità!

        Alcune volte, potresti notare che c’è una fortissima correlazione fra due tipologie di eventi.

        Attenzione! Esistono tantissimi esempi famosi di variabili che sono fortemente correlate ma senza nessun legame di causalità.

        Si tratta di fortunati o sfortunati casi che complicano la vita quando si lavora coi dati. Quindi, prima di generare dei falsi insight (quindi giungere a conclusioni errate), è necessario prendere il giusto tempo per riflettere su quanto trovato.

        Ma come farlo in maniera “scientifica”?

         

        3) Prima di cominciare, decidi come ti valuterai!

        Valutare quello che stai facendo o sapere come il tuo gruppo di lavoro si valuterà è di fondamentale importanza.

        Facciamo un altro esempio.

        Immagina di trovarti davanti a una classe di ingegneria informatica di 100 persone e di voler prevedere il sesso delle stesse conoscendo l’altezza e il peso: niente di più semplice, penserai. Statisticamente, è molto probabile che le persone più alte e pesanti siano uomini e, viceversa, le altre saranno donne.

        Bene. Cosa accadrebbe se ti dicessi che in questa classe ci sono 99 aspiranti ingegneri e una sola aspirante ingegnera?

        Un algoritmo che dice sempre “uomo” avrà un’efficacia altissima: indovinerà il 99% delle volte (si può, quindi, parlare di precisione). Avrà però una scarsissima capacità di riconoscere le donne (definita recall@donna), riconoscendone lo 0%.

        Allo stesso modo, un algoritmo che massimizza invece la capacità di riconoscere le donne (recall@donna) sarà quello che dice sempre donna, non riconoscendo la presenza di neanche un uomo.

        Insomma, non esiste IL modo per classificare un algoritmo in assoluto.

        Esiste solo IL modo migliore rispetto al problema che la tua azienda o i tuoi clienti stanno cercando di risolvere con il modello utilizzato.

        Ogni volta che il tuo modello commette un errore, l’azienda ne pagherà le conseguenze a livello economico (come mancato incasso, come mancata previsione di un guasto, …).

        Insomma, quando lavori con i dati o affidi questo compito a uno specialista, devi sempre calcolare il costo economico di ogni errore e cercare di ottimizzare il modello per minimizzarlo.

         

        4) Se ottieni un risultato troppo buono al primo colpo, hai sbagliato qualcosa!

        Ottenere una precisione del 99% al primo colpo può voler dire due cose (entrambe non entusiasmanti):

        – hai uno sbilanciamento fortissimo fra le due classi che vuoi prevedere (vedi l’esempio precedente);

        – hai codificato alcune informazioni del dataset di test nel dataset di training e il modello, trovando situazioni che già conosce, ti restituisce sempre la risposta “giusta”.

        Questa situazione, definita tecnicamente “leaking”, è estremamente complessa da riconoscere: infatti, quando succede bisogna entrare nel merito applicativo di come sono state estratte e poi combinate le features.

         

        5) Hai tante frecce al tuo arco. Sai come utilizzarle?

        L’hype sulle nuove tecnologie è altissimo.

        Dal mondo del deep learning con complesse architetture di rete, ad algoritmi ottimizzati su hardware: le nuove possibilità sono infinite e, non lo nego, eccitanti.

        Il punto, però, è che ci sono tante conoscenze e modelli del mondo tradizionale che spesso vengono deliberatamente ignorate.

        Ad esempio, se devi pulire i dati da un segnale periodico, la scelta migliore è quella di lavorare sul piano delle frequenze, utilizzando una trasformata di Fourier, un filtro a spillo e un’antitrasformata di Fuorier.

        Inutile cercare soluzioni più complesse, solo perché “alla moda”!

        Allo stesso modo, se hai due distribuzioni di campioni da confrontare, il mondo dei test d’ipotesi può tornarti molto utile.

        Infatti, se ti aspetti un segnale Gaussiano ma, dopo una prima analisi, dovessi ritrovartene uno appartenente ad altre distribuzioni, potresti trovarti di fronte a un problema di carattere sistematico che non stai considerando.

         

        6) Ci sono conoscenze tecniche di dominio che vanno sempre ricordate!
        Ancora una volta, devi fare sempre attenzione verso quello che stai facendo.

        Se devi lavorare su segnali elettrici, ricordati di togliere il rumore di rete.

        Se devi lavorare con un segnale continuo, ricordati il teorema di Shannon che ci insegna infatti che bisogna campionare un segnale con una frequenza pari al doppio della massima frequenza presente nel segnale (+1).

        Ovviamente, se non conosci la frequenza massima, campiona alla massima frequenza che fisicamente sei in grado di campionare. Così, potrai calcolare la frequenza massima presente e poi utilizzare questa informazione per scegliere la frequenza di campionamento.

        Se devi lavorare con un’immagine, ricordati sempre di partire applicando un filtro gaussiano.

        Se devi lavorare con del testo, rimuovi con cura le stop word e ricordati che ogni dominio ha le sue stop word.

        Vuoi scoprire come costruire un modello di analisi perfetto, senza commettere errori che potrebbero costare caro a te e alla tua azienda?

        Compila il form in basso per richiedermi una consulenza gratuita.







          AccettoNon accetto


          AcconsentoNon acconsento


          • 25 Feb, 2020
          • (0) Commenti
          • By Lo Scienziato
          • Big Data, Machine learning, News, Opportunità

          Machine Learning per non addetti ai lavori: cos’è e a che ti serve?

          Questo articolo ha un obiettivo preciso.

          È per te, imprenditore o manager, che senti da troppo tempo parlare di Trasformazione Digitale, Intelligenza Artificiale e Machine Learning e vorresti, una volta tanto, sentire la voce di chi, come te, non ha un background tecnico e piuttosto che utilizzare incomprensibili termini informatici, parla di concrete applicazioni in ambiti aziendali.

          Voglio superare ogni barriera terminologica e presentare con chiarezza vantaggi e rischi legati all’adozione di queste tecnologie nella tua azienda.

          Così, alla fine di questo articolo, avrai chiaro come e se ha senso, anche per la tua azienda, investire in questo ambito per accrescere la tua competitività.

          Pronto?

          Big data: tanti dati, tante opportunità ma anche tanta confusione

          Probabilmente sarà capitato anche a te di sentire l’ormai celebre frase “i dati sono il nuovo petrolio del 21° secolo”.

          Certo, la disponibilità di grandi masse di dati (Big Data) consente di ottenere informazioni indispensabili per poter prendere importanti decisioni di business.

          Per poter trarre il massimo vantaggio, occorre affidarsi a delle macchine che, sapientemente “istruite”, elaborano i dati e, contemporaneamente, apprendono autonomamente il modo di utilizzarli per restituire informazioni utili al miglioramento delle tue performance aziendali.

          Si parla quindi di Machine Learning, ovvero di macchine programmate per imparare a fare operazioni computazionali che a noi esseri umani richiederebbero troppo tempo.

          Questo articolo potrebbe finire con questa frase:

          il segreto per investire in modo sostenibile in quest’area di innovazione coincide con la capacità (dei professionisti ai quali ti affidi) di organizzare, strutturare e gestire i tuoi dati, prima di scegliere di adottare delle tecnologie.

          Insomma, non esistono “soluzioni di mercato” funzionanti, ovvero subito pronte e buone per tutti. Quello che conta veramente è partire dalle tue necessità e dalle caratteristiche della tua azienda e, solamente dopo, investire in quest’area.

           Andiamo avanti.

          Che cosa significa e a cosa serve il Machine Learning?

          Troppo spesso vengono utilizzati termini complessi che rischiano di confondere le idee.

          Ecco un tipico caso di incomprensibile tecnichese sul quale proverò a fare un po’ di chiarezza.

          A molti esperti di Machine Learning piace utilizzare frasi come questa:

          “un esperimento di Machine Learning consiste nell’estrarre le features dal dataset disponibile e utilizzarle per fare il training di un modello in grado di predire il valore del tuo target.”

           

          Ma cosa significa?

          Io preferisco spiegare lo stesso concetto in questo modo:

          “un esperimento di Machine Learning consiste nell’estrarre le informazioni utili dai dati e nell’utilizzarle per insegnare alla macchina come predire qualcosa che è interessante per il tuo business.”

          Ti sembra più chiaro?

          Ok. Passiamo a un’altra questione.

          A cosa serve il Machine Learning?

          Il Machine Learning permette di andare oltre i limiti umani, legati a memoria e tempo, nel leggere ed elaborare grandi masse di dati.
          È così che la tua azienda può trovare un perfetto alleato per risolvere alcune classi di problemi difficilmente risolvibili con approcci tradizionali.

           

          Modelli di machine learning

          Una volta che hai individuato l’ambito di applicazione di soluzioni di Machine Learning, ovvero il problema che intendi risolvere nella tua azienda, devi scegliere quali tra le due macro-tipologie di modelli fa al tuo caso.

          Supervisionato: quando il modello di ML che adotti viene “allenato” a partire da un dataset noto, ovvero un insieme di dati già in tuo possesso.

          Non supervisionato: quando il modello di ML che adotti viene “allenato” senza conoscere preventivamente l’entità del valore (risultato) da predirre.

          Come avrai già compreso, gli ambiti di applicazione di questi 2 modelli sono veramente tanti ma ciò non significa che tutti i tuoi problemi in azienda siano risolvibili dal Machine Learning.

          È importante tenere ben in mente che l’innovazione contempla anche delle possibilità di insuccesso.

          Quindi, sapere come valutare un modello è fondamentale per capire l’affidamento che gli si può riconoscere e l’utilità che si può trarre.

           

          Come puoi scegliere il miglior modello di ML per la tua azienda?

           Prima di tutto, hai già tutti i dati a tua disposizione per “allenare” e, di conseguenza, valutare preventivamente un particolare modello di ML?

          Mi spiego meglio: prima di scegliere il modello di ML al quale affidare la gestione di un tuo problema aziendale, devi essere sicuro di avere dei dati facilmente gestibili.

          Ricorda: è dalla capacità di rendere fruibile i tuoi dati che devi, prima di tutto, scegliere a chi affidare l’implementazione di soluzioni di ML nella tua azienda.

          Soddisfatta questa condizione, puoi andare avanti suddividendo i tuoi dati in due parti:

          • una prima parte utilizzata per “allenare” il modello fino a quando non viene confermato il modello atteso, ovvero quando si arriva ai risultati attesi;
          •  una seconda parte sulla quale, successivamente, si applica il modello già confermato e che, di conseguenza, verrà trattata più efficientemente.

           

          ML nella tua azienda: approccio e costi

          Riassumendo, a questo punto dopo averti parlato di cosa si intende per ML, a cosa serve, quali sono le principali tipologie di modelli e come si valutano quest’ultimi, manca l’ultimo tassello:

          Come puoi approcciare un progetto di ML efficacemente e limitando i costi?

          Il miglior approccio per valutare preventivamente se la soluzione innovativa risponde ai requisiti necessari per la tua azienda consiste nella creazione di un Prototipo (“Proof of Concept”), prima di sviluppare l’intero processo.

          Solitamente viene utilizzata la cosiddetta metodologia “agile” (contrapposta al modello a cascata: “waterfall”) attraverso la formazione di piccoli team di sviluppo polifunzionali che interagiscono continuamente con le persone che nella tua azienda sono interessate dal processo di sviluppo.

          Lo sviluppo del prototipo viene suddiviso in più “sprint” della durata di due settimane.

          In sintesi, a ogni “Sprint”, viene valutato lo stato di avanzamento e vengono definite le azioni necessarie per procedere nello sviluppo.

          Sono due i vantaggi principali di questo approccio per la tua azienda:

          – il tempo necessario viene ridotto a 6/8 settimane, contro i molti mesi/anni necessari allo sviluppo di un progetto complessivo;

          – l’investimento richiesto è di gran lunga inferiore.

          La creazione di un Prototipo permette quindi di valutare i risultati già durante le primissime fasi di sviluppo.

          In questo modo, puoi decidere se proseguire o meno nell’applicazione di un particolare modello in un ambito più ampio, sviluppando quindi l’intero progetto, con indubbi ritorni in termini di tempi e costi.

            

          Quindi, ti conviene investire in ML?

          A scanso di equivoci, alla fine di questo mio articolo, voglio sintetizzare ciò che, per te, conta di più.

          Utilizzare il nuovo oro nero, i dati, puoi darti dei vantaggi competitivi enormi ma, prima di investire in soluzioni di Machine Learning, devi essere sicuro di seguire il giusto approccio.

          Non esistono soluzioni pronte all’uso buone per tutti.

          Se intendi, come probabilmente molti dei tuoi competitor, seguire questa strada, devi prima di tutto iniziare a collezionare tutti i dati generati e raccolti in ogni dipartimento della tua azienda.

          Solo a quel punto, puoi investire, certo di trarre il massimo valore, con soluzioni custom e testate prima della loro completa implementazione.

          Vuoi scoprire le opportunità che puoi cogliere grazie al Machine Learning?

          Compila il form in basso per richiedermi una consulenza gratuita e parlarne non in tecnichese







            AccettoNon accetto


            AcconsentoNon acconsento


            • 17 Gen, 2020
            • (0) Commenti
            • By Lorenzo Brambilla
            • Big Data, Intelligenza Artificiale, Machine learning, Opportunità, Per non addetti ai lavori
            Sfoglia le pagine

            La nostra azienda
            Termini e Condizioni
            Politica sulla riservatezza
            Politica sui cookie

            Mettiti in contatto

            artea.com s.r.l.

            Via Matteo Bandello, 5
            20123 – Milano -Italy
            P.IVA 10477590961

            Tel:(+39) 02 365 995 59
            info@artea.com

            Iscriviti alla newsletter

            Rimani aggiornato per nuove uscite. Inserisci la tua email e iscriviti alla nostra newsletter.

            Sottoscrivi

            Sottoscrizione alla newsletter




              AccettoNon accetto


              AcconsentoNon acconsento


              © artea.com All right reserved