Intelligenza artificiale : soluzioni in cerca di problemi

Recentemente siamo stati invitati ad un evento organizzato per fare incontrare aziende operanti nel settore IT e clienti. Ci hanno chiesto di parlare della nostra esperienze nell'utilizzo della Intelligenza artificiale.

Diapositiva02.jpg

Quest'anno MyTI ha festeggiato i 10 anni. Siamo nati e cresciuti nel peggior periodo economico della storia della IT, senza appoggiarci ad alcun grande vendor ma offrendo solo ed esclusivamente il nostro lavoro e la nostra competenza.

Dalle nostre parti, le Piccole e medie imprese guardano alla Intelligenza Artificiale come ad una soluzione in cerca di problemi.  Molto se ne parla, i grandissimi la usano ormai in modo strutturale ma i piccoli e medi ancora non capiscono come e dove applicarla.

Il nostro approccio a queste tecnologie é quello pragmatico dell'utilizzarle quando servono, se servono e solo dopo averle valutate insieme ad altri approcci.

Siamo giunti a fare un progetto di Intelligenza Artificiale  all'interno di uno dei nostri percorsi di innovazione condivisi con il cliente.

Myti e i percorsi di innovazione

Diapositiva03.jpg
Presentazione Myti 2017_Iefficiency_redesign-1.jpg

la realizzazione di software è principalmente un processo di condivisione

Abbiamo imparato ad avere un approccio  che ci consente di condividere gli obbiettivi del cliente e i limiti imposti (economici, tecnici, organizzativi), mediante un project management "morbido" che consente la crescita di tutto il gruppo coinvolto, fornendo anche competenze di sviluppo, scouting delle migliori tecnologie oltre che interaction design “strutturale” al progetto.

Un esempio: il percorso verso un configuratore di prodotto basato su Intelligenza Artificiale

Presentazione Myti 2017_Iefficiency_redesign-1.jpg

"Vorremmo

un sistema che consenta ai nostri clienti B2B di configurare il prodotto prima di metterlo in ordine”

Questa la richiesta che ci ha fatto una azienda che era già nostro cliente (per la quale stavamo gestendo il portale B2B).

La azienda che è una delle più importanti del Triveneto, si occupa della realizzazione di una gamma completa di soluzioni per l'industria Oil & Gas su ambito mondiale. E' una azienda LEAN completa ed ha un comparto IT di elevata cultura e competenza.

Come tale si era già preparata un piano di produzione del sistema per la configurazione .

Di seguito gli assunti base:

... i prodotti acquistabili sono divisi in parecchie famiglie e i criteri di selezione degli attributi dipendono da formule fisiche e chimiche complesse

... il numero di opzioni richieste all'utente sono molto variabili da prodotto a prodotto.

... le competenze per la configurazione sono derivanti da anni di esperienza e risiedono in poche persone, i tecnici ci laboratorio,  dello staff .

... le configurazioni possono cambiare nel tempo ed affinarsi man mano che si eseguono test di laboratorio sui prodotti

E questo il piano di progetto in pillole : 

... bisogna scrivere un programma per ogni prodotto

… dobbiamo conivolgere pesantemente i tecnici di laboratorio nello sviluppo del software

… ci vorranno 12-18 mesi per i primi 4 prodotti

… alla fine avremo 2/3 programmatori a tempo pieno per la manutenzione e la aggiunta continua di tutti i prodotti

Il cliente ci ha quindi chiesto se avevamo sviluppatori da fornirgli.

"Certo - abbiamo detto - ma forse c'è un approccio migliore..."

Il percorso condiviso

Diapositiva08.jpg
Questa la nostra proposta alternativa:
"Questo è un problema “standard” di intelligenza artificiale.
Coinvolge la branca della I.A. che definisce i Sistemi Esperti
Esistono molte tecnologie di Sistemi Esperti sul mercato.
Ne proviamo qualcuna?"

Siamo partiti dalla individuazione di tecnologie di configurazione dei prodotti, per capire che esistono parecchi approcci al problema.

Configuratori basati su vincoli, Configuratori sequenziali, Configuratori basati su relazioni: sono tutti sistemi che partono dall'ipotesi che il prodotto finale della configurazione sia dato dalla combinazione di opzioni o componenti preesistenti alla configurazione. Caso differente di quello che dovevamo risolvere.

Nel caso del nostro cliente, la necessità era quella di dimensionare il prodotto oltre che di comporlo.

Per questo, concordemente con il cliente abbiamo compreso che la migliore rappresentazione del problema fosse quella del configuratore di prodotto basato su regole.

La scelta di Drools come motore di regole è stata fatta successivamente allo sviluppo di un prototipo di validazione su un caso complesso e caratteristico della configurazione.

Diapositiva09.jpg

Il gruppo di lavoro

In qualunque percorso di innovazione che funzioni, la definizione del gruppo di lavoro è fondamentale.

In questo caso il gruppo ha coinvolto, oltre a noi, un tecnico di laboratorio del cliente e uno sviluppatore junior che ha imparato con noi a scrivere le regole.

Un progetto di Intelligenza Artificiale che si basi sui sistemi esperti richiede anche la definizione di una metodologia che consenta ad un esperto della materia di comunicare ai tecnici che scrivono le regole le sue conoscenze. Così da poter istruire il sistema.

La definizione delle modalità di comunicazione tra i componenti del gruppo é stato fondamentale. Per semplificare il tutto ci si è basati su fogli excel che rappresentassero il funzionamento delle regole e flowchart a matita. 

Schermata 2017-10-29 alle 11.21.08 AM.jpg

Alla fine del progetto in 6 mesi (contro i 18) avevamo configurato 15 prodotti (contro i 4) e creato un gruppo funzionante che comprendeva l'impegno di 1 gg la settimana di un tecnico e uno sviluppatore interno del cliente.

Il cliente é ora totalmente autonomo nella redazione di nuove configurazioni.

Qui potete vedere il risultato del progetto, che ovviamente, ora è un prodotto: MyTI Sizer

Qui ne avevamo già parlato