ABSolution by Datatex. Il plug-in rivoluzionario per software e applicazioni
Intervista a Roberto Mazzola – Datatex IT Chief Technology Officer & Product Manager ABSolution by Datatex
Creato dal laboratorio Datatex di Milano, ABSolution è uno strumento che consente – in tempi rapidi e con budget contenuti – di analizzare, tradurre, aggiornare e modernizzare software e applicazioni. Si tratta di un prodotto molto interessante per Software House e per aziende finali con un dipartimento IT che sviluppa software interno, e che vogliono sviluppare applicazioni pure Web affidabili, scalabili, deployabili in ambienti on-premise, cloud, ecc., anche senza avere competenze specifiche nelle nuove tecnologie.
A quale target si rivolge ABSolution? Quali sono i suoi punti di forza rispetto alle altre soluzioni RAD (Rapid Application Development) presenti sul mercato?
Cerchiamo di ripercorrere a grandi linee la storia di Datatex, dal punto di vista dei prodotti, per capire perché alla fine abbiamo deciso di investire in un nostro tool proprietario, invece che avvalerci di tools disponibili sul mercato.
Datatex ha avuto storicamente come prodotto di punta – negli anni Ottanta e Novanta – il software gestionale “TIM”: un prodotto tradizionale, di grande successo sul mercato, sviluppato in linguaggio RPG su mainframe IBM. Stiamo parlando quindi di sistemi S38, S36 e AS/400, sistemi che molto probabilmente le nuove generazioni non hanno mai sentito nominare (con l’eccezione di AS/400, che nelle sue nuove edizioni “IBM i” ha ancora oggi molti estimatori nelle aziende, grazie agli alti livelli di stabilità e di sicurezza che da sempre garantisce).
Poi, negli anni Novanta, la programmazione ad oggetti ha iniziato ad affermarsi come il paradigma dominante delle software house moderne, e non solo: la portabilità del software sulle diverse piattaforme (quindi, anche per noi, non più soltanto su sistemi IBM) è diventata in quel momento un fattore decisivo per potersi presentare con successo sul mercato e per essere in grado di cogliere delle nuove opportunità di business.
Per queste ragioni Datatex, alla fine degli anni Novanta, e dopo aver iniziato a “sperimentare” su piccoli progetti linguaggi come Java, C, C++, ecc., ha deciso di modernizzare il proprio ERP dando vita all’ambizioso progetto “NOW ERP”.
Nello stesso periodo anche IBM ha promosso una soluzione “java based”, ad oggetti più mission-critical business per ambienti legacy. Stiamo parlando del framework IBM San Francisco, che rappresentava ai tempi un obiettivo molto ambizioso, da portare avanti coinvolgendo anche gli ISV nello sviluppo e nella crescita del prodotto, per costruire componenti applicativi di base già testati e pronti all’uso (come la contabilità o la definizione dei clienti) ma pronti per essere “estesi” per implementare soluzioni finali.
IBM stessa, peraltro, aveva come obiettivo di usare tale framework anche per la riscrittura delle ACG (Applicazioni Contabili Gestionali), che ai tempi erano i software gestionali più venduti in Italia. Una ristretta cerchia di software house era stata selezionata allo scopo da IBM, e Datasys Network e Datatex erano parte attiva di questo gruppo di lavoro. Questo coinvolgimento diretto ci ha permesso di condividere esperienze con IBM stessa, e ci ha dato la possibilità di prendere sempre più confidenza con i “design pattern” (a questo proposito segnalo un libro molto interessante: “San Francisco Design patterns” – SanFrancisco Design Patterns. Blueprints for Business Software by James Carey, Brent Carlson, and Tim Graser. Addison-Wesley 2000 ISBN 0-201-61644-0).
Sfortunatamente il framework IBM San Francisco non ha avuto il successo sperato, e il progetto si è arenato, lasciandoci però in eredità molte conoscenze e idee di base per approcciare le nuove soluzioni. San Francisco non era pronto per il mondo “web”: erano quasi dieci anni che il World Wide Web era nato, e il Board di Datatex aveva capito da tempo che inevitabilmente avrebbe rappresentato il futuro anche per le applicazioni tradizionali. Allora a quel punto ci siamo detti: “così non va…guardiamo oltre… facciamo nel nostro piccolo una rivoluzione, e pensiamo subito al web come client”. Il nostro lavoro si basa su investimenti a lungo termine, e non possiamo rischiare di essere già obsoleti: scommettiamo sul web e scommettiamo su Java e sulla portabilità, secondo lo slogan “Write Once, run everywhere / anywhere”.
Abbiamo deciso dunque di puntare su Java Enterprise (a suo tempo J2EE – Java 2 Platform, Enterprise Edition). La “E” è importante: dire “Enterprise”, cioè “impresa”, “azienda”, significa che la tecnologia J2EE viene incontro alle esigenze aziendali, alla progettazione e allo sviluppo di applicazioni che devono rispondere a criteri di affidabilità e di robustezza in un contesto distribuito, e viene anche incontro alle esigenze di sviluppo di applicazioni B2B e B2C, tramite un approccio di sviluppo a livelli, e l’utilizzo di servizi che vengono messi a disposizione dai diversi container.
Benissimo, ma a quel punto una domanda ce la siamo posta: quante persone presso i nostri laboratori conoscono bene Java e il Web (che a suo tempo era anche abbastanza limitato e complicato…)? Risposta: pochi, poche persone (stiamo parlando, peraltro, di oltre vent’anni fa…). Quante conoscenze applicative abbiamo del nostro settore, e quante risorse dovremmo convertire alle nuove tecnologie? Risposta: tantissime, ma avranno voglia? Saranno in grado? Quanto ci costa? E quanto tempo abbiamo, dato che tutto sta evolvendo molto rapidamente?
Dobbiamo considerare che per i nostri capo progetto e per i nostri sviluppatori, ai tempi OO, Java, Pattern, ecc., erano “arabo”. Avevamo bisogno dunque di qualcosa di semplice e più business oriented, qualcosa che ci permettesse di “mascherare” la tecnologia e renderla fruibile alla massa. Le persone che lavoravano da anni con noi, conoscendo alla perfezione i processi di business del settore tessile, erano la nostra risorsa più importante, ed è grazie a queste persone, e alle loro competenze applicative, che Datatex era ed è ancora oggi la software house leader per il settore tessile. Bisognava dunque fare in modo che, anche senza grosse competenze sui nuovi linguaggi, le persone di Datatex riuscissero a supportare la transizione mantenendo la qualità del software, con dei livelli di standardizzazione e di qualità elevati, di buona produttività, documentabili, ecc.
Abbiamo fatto quindi una software selection, avendo anche esperienza nel nostro gruppo di “Case Tool” (Computer Aided Software Engineering Tool) e RAD vari, ma ognuno aveva dei pro e dei contro e nessun tool ci dava sicurezza sul futuro. Considerando la nostra spiccata propensione alla “generalizzazione” delle componenti anche sui sistemi tradizionali, già portata in parte su altre nostre business unit, ci siamo guardati in faccia e a quel punto ci siamo detti: “ beh, molte cose possiamo automatizzarle, i design pattern ci hanno aperto ancora di più gli occhi, abbiamo tutte le competenze, e dunque un tool – anche se non ‘bello’ come un tool commerciale – ad uso interno possiamo svilupparlo noi, e adattarlo alle nostre esigenze”. Anche perché l’adattamento di un Case Tool di terze parti alle proprie esigenze non è sempre possibile, e inoltre la dipendenza dal fornitore diventa a quel punto un fattore di criticità per il progetto, specialmente quando si gtratta di progetti a lungo ciclo di vita come un ERP.
Quindi, mi chiedevi del target a cui si rivolge ABSolution: programmatori inesperti di nuove tecnologie, questo era il nostro target iniziale. Ma oggi non è più solo questo, e peraltro abbiamo nel frattempo assunto nuovo personale più avvezzo a Java e al Web. In ogni caso il tool da noi progettato dà notevoli vantaggi in termini di “go-to-market”, e permette di concentrare lo sviluppatore sulla logica applicativa di business invece che sugli aspetti tecnici. Inoltre consente di uniformare le soluzioni e di renderle più aderenti a degli standard qualitativi che ci si è prefissati, oltre ad agevolare le migrazioni verso nuove specifiche (dovete considerare che siamo partiti a fine anni Novanta con questa transizione, e Java, o meglio JakartaEE, oggi – passando da J2EE, JavaEE – ha subito evoluzioni e modalità di scrittura diverse del codice).
Per i nostri programmatori tutto questo è stato assolutamente trasparente, perché ABSolution maschera il tutto tramite un nostro meta-linguaggio di programmazione.
Non solo dal punto di vista del codice “back-end”, ma anche per la user interface (UX): abbiamo variato varie volte l’interfaccia grafica della nostra soluzione semplicemente “switchando” a livello “core” del nostro modulo base la GUI, e anche questo in modo trasparente per il programmatore.
Il paradigma di base è il famoso MVC (Model View Controller), e i nostri programmatori si devono concentrare sulla componente “Model”, e in parte “Controller”.
ABSolution è un ambiente di sviluppo che si basa su un metalinguaggio inventato dal laboratorio Datatex e battezzato come “Scenario Language”. Di cosa si tratta tecnicamente? Puoi parlarci di come il laboratorio Datatex ha creato il prodotto?
Per portare avanti la nostra idea di astrarre la tecnologia dalla logica di business, e per non essere vincolati ad un linguaggio e ai relativi “programming model”, avevamo bisogno di inventarci una nostra sintassi, che poi il nostro “generatore” fosse in grado di riconoscere e convertire secondo le specifiche tecniche (ora JakartaEE 8 ma chissà…in futuro in un nuovo linguaggio X…).
Quindi abbiamo pensato di creare un linguaggio “discorsivo”, che fosse facile da imparare appunto come parlare una lingua straniera nuova (ma con meno complessità). Con una sua sintassi, una sua grammatica e delle regole.
Abbiamo utilizzato la library “JavaCC” (BSD License 2.0)
[ JavaCC (Java Compiler Compiler) è un generatore di parser che fa uso del sistema di parsing LL(k) per il linguaggio di programmazione Java. JavaCC è simile a Yacc poiché genera un parser per una grammatica fornita nella notazione BNF, solamente che il codice sorgente in output è in Java.
Nel 1996, la Sun Microsystems rilasciò un generatore di parser chiamato Jack, gli sviluppatori responsabili di Jack crearono una loro compagnia chiamata Metamata e cambiarono il nome di Jack in JavaCC. Metamata alla fine divenne parte di WebGain e dopo che WebGain chiuse le sue attività, JavaCC venne spostato nella sua corrente home. – Cit. Wikipedia]
Nello studio della nostra grammatica siamo partiti analizzando come un Analista potesse passare le specifiche ad un programmatore: come gli direbbe a voce ad esempio “recupera il cliente con codice 123”? Questa è una operazione comune in qualsiasi sviluppo, ma nella pratica bisogna “accedere” al database e quindi gestire in modo corretto le connessioni (e chiuderle!!), le transazioni, i lock per la concorrenza, ecc. In inglese si potrebbe dire (usando qualche keyword già usata in altri linguaggi old-style): “fetch Customer using 123”. La nostra sintassi e nostra grammatica è molto simile, non abbiamo usato “fetch” ma in SL (Scenario Language) è retrieve Customer using “123” as key. Come potete vedere è molto “English like”. Sarà poi responsabilità del nostro “plug-in parser – generatore” di convertire tale sintassi in Java puro in accordo alle specifiche JakartaEE utilizzando i servizi offerti dalla piattaforma tecnologica.
Questo approccio ci ha consentito inoltre di rendere semplice lo sviluppo “agile”, consentendo ai vari team coinvolti di eseguire brevi iterazioni sulle attività specifiche, e consentendo nel contempo di avere dei prototipi della soluzione in tempi brevissimi.
Ma poi avviene la delivery della soluzione, e anche questa è integrata nel nostro tool per consentire un deploy sul cliente in modo semplice, certo e sicuro, indipendentemente dalla piattaforma in uso dal cliente (sia per il deploy di hot fix che per installazioni nuove o upgrade).
Come editor per il programmatore abbiamo deciso di basarci sulla piattaforma Eclipse che è un sw IDE distribuito sotto licenza “Eclipse Public License”; Eclipse è un ambiente multipiattaforma (importante per noi), che può essere facilmente esteso ed integrato. Su tale piattaforma abbiamo sviluppato il nostro “plugin”, che consente appunto l’editing del nostro metalinguaggio e dà la possibilità di gestire tutte le fasi del ciclo di vita del software.
Molte aziende, anche di dimensioni importanti, basano il proprio lavoro su applicazioni e software obsoleti. Quando si parla di programmazione e di sviluppo software che cosa significa oggi essere innovativi e al passo con i tempi? Quali caratteristiche deve avere oggi l’ERP ideale?
L’integrazione, la collaborazione e l’interoperabilità tra i diversi processi aziendali sono oggi degli elementi fondamentali, ovviamente rispettando tutti i canoni di sicurezza.
Un ERP deve poter evolvere insieme all’azienda, sia da un punto di vista applicativo sia dal punto di vista del workload.
Non è necessario far partire immediatamente tutti i moduli, va benissimo poter andare per step. Ma è chiaro che se la mia azienda cresce e si espande incrementando il volume delle transazioni, devo avere la possibilità in maniera semplice di “scalare” anche la mia soluzione software.
Sulla base della nostra esperienza nel mondo produttivo, abbiamo anche notato che spesso una soluzione ERP (con l’eccezione della parte contabile e finanziaria), ha successo solo se ha la possibilità di adattarsi all’azienda cliente, e questo per vari motivi, che vanno dalla scarsa flessibilità di alcuni clienti nell’adattarsi ad un qualcosa di diverso (ma allora perché cambiano? Forse per l’inaffidabilità del precedente fornitore…) all’effettiva varietà ed eterogeneità dei modelli di business.
Anche parlando soltanto di aziende tessili, parliamo di realtà diverse tra di loro e anche di integrazione con dipartimentali molto specifici. Quindi per noi è fondamentale aver progettato le nostre soluzioni perché potessero adattarsi alle esigenze del cliente nel modo più indolore e flessibile possibile, preservandole da nuovi rilasci del laboratorio.
Ora poi si parla di Cloud, di soluzioni SaaS invece che del classico modello on-premise, soluzioni con pro e contro a seconda delle caratteristiche dell’azienda, delle sue capacità interne, pianificazioni costi, struttura (pensiamo per esempio alle tendenze generate dall’attuale pandemia, che ha incrementato il ricorso a forme di smart-working). Avere una soluzione che si può sposare con tutti questi scenari è ideale non solo per noi, come produttori di software, ma anche per il cliente stesso, il quale può stare tranquillo perché sa che “domani” può cambiare agevolmente – e quando vuole – la propria infrastruttura, senza nessun impatto negativo sulla gestione dell’azienda e sul business.
Bisogna considerare, peraltro, che normalmente le soluzioni SaaS sono poco “personalizzabili” (se non tramite setup), e questo potrebbe essere visto dai clienti anche come un aspetto positivo per standardizzare i processi aziendali (ad esempio durante fusioni, incorporazioni, ecc.). Ad ogni modo nel caso di Datatex e del nostro prodotto “NOW ERP”, parliamo di un software proprietario, che è nostro ed è gestito da noi, e quindi siamo noi direttamente a fornire la soluzione SaaS, e possiamo apportare qualsiasi personalizzazione di prodotto.
Automazione, AI, ML e Big Data stanno oggi fornendo un fortissimo valore aggiunto ad un ERP, e la cosa interessante è che le applicazioni sviluppate tramite ABSolution non si devono “adattare” a questi diversi scenari, ma nascono proprio per soddisfarli, grazie alla piena conformità delle specifiche JakartaEE. Oggi poi noi tutti usiamo smartphone e tablet, e avere la facoltà di rendere immediatamente fruibili le applicazioni su questi device è un altro punto di forza fondamentale delle nostre soluzioni. Qui poi si dovrebbe entrare nello studio di usabilità e di UX, per rendere il servizio all end-user veramente utilizzabile: questo è fondamentale indipendentemente dal device, e Datatex con ABSolution consente in modo semplice di “cucire addosso” all end-user le videate, con la garanzia di continuità con i nuovi rilasci del prodotto. La felicità dell’end-user è spesso sintomo di successo della soluzione adottata.
Il concetto di ERP negli anni è cambiato, e se inizialmente era incentrato sulla gestione delle “Risorse” e sulla “Pianificazione”, oggi si deve considerare l’ERP come qualcosa di molto più ampio ed olistico, e se vogliano possiamo utilizzare, a questo proposito, il termine – coniato da Gartner – “EBC” (Enterprise Business Capabilities).
Datatex investe ogni anno più del 10% del proprio fatturato in ricerca e sviluppo, ed è oggi l’azienda leader internazionale in soluzioni ERP per l’industria tessile. Puoi raccontarci quali sono stati, in 35 anni – dalla fondazione di Datatex nel 1987 ad oggi – le principali innovazioni di prodotto e i maggiori successi del laboratorio Datatex di Milano?
Ovviamente il nostro più grande successo è rappresentato dall’ERP, prima TIM, e oggi NOW, che è l’ERP verticale per l’industria tessile più venduto nel mondo, con aziende clienti in 45 nazioni. L’apprezzamento dei nostri clienti, e la fiducia che questi ripongono in noi da decenni (anche con le migrazioni da TIM a NOW), sono dei riconoscimenti importanti. Spesso i nostri competitor si chiamano SAP, Oracle JD Edwards, e parliamo quindi di realtà con una dimensione molto diversa dalla nostra e con delle disponibilità di risorse infinita rispetto a noi. Se siamo ad oggi leader mondiali nel settore tessile, lo dobbiamo alle capacità di innovazione e alla lungimiranza del nostro Board nel credere con fiducia negli investimenti a lungo termine. Investimenti anche su più fronti, per capire nel tempo quale si rivelerà la scelta migliore, con la consapevolezza che si tratta anche di costi, ma costi necessari per poter proporre alla nostra clientela una soluzione stabile ma allo stesso tempo flessibile e moderna.
Ma è sbagliato soffermarsi esclusivamente sugli aspetti tecnologici, che sono solo un mezzo per raggiungere l’obiettivo. Rappresentano un grande successo del laboratorio di Datatex anche le innovazioni applicative e di copertura delle esigenze funzionali che sono nate recentemente (penso per esempio a tutte le nuove esigenze legate alla centralità che ha assunto oggi il tema della sostenibilità). Il mercato ci ha richiesto e ci richiede spesso delle soluzioni a corollario di NOW, e abbiamo dunque investito anche nello sviluppo di APP vere e proprie, compatibili con device Android e iOS.