App factory: crea software di qualità e migliora la User Experience
App factory: crea software di qualità e migliora la User Experience

App factory: crea software di qualità e migliora la User Experience

Autore: Gianluca Beritognolo

Lo sviluppo di applicazioni e la gestione dell’intero patrimonio software aziendale stanno vivendo una fase particolarmente entusiasmante. L’attuale disponibilità di soluzioni permette di gestire il ciclo di vita dell’intero patrimonio, adottando una trasformazione digitale che si focalizzi sui dati, sfruttandoli al meglio a prescindere dalla tecnologia implementata in azienda. 

Sfruttare le opportunità di oggi, aumentando i risultati economici e proiettando l’azienda nel futuro, richiede una serie di strumenti: si tratta di tecnologie da inserire in una strategia complessiva, che garantisca l’effettiva trasformazione in azienda Data-Driven

Una App Factory, o fabbrica del software, si occupa di realizzare questo flusso di trasformazione. L’analogia con la fabbrica diventa più chiara se pensiamo che la gran parte dei compiti dell’ICT, siano essi di sviluppo o di operations, possono essere automatizzati con strumenti opportunie in alcuni casi grazie all’intelligenza artificiale.  

La mancanza di una strategia complessiva, così come l’inadeguatezza degli strumenti usati in una qualsiasi delle fasi del ciclo di vita del software, porta facilmente a risultati non soddisfacenti e quindi a difficoltà di competizione con la concorrenza. Con i tempi incalzanti che viviamo, la visione strategica è oggi il discrimine tra successo e fallimento. 

Gli strumenti che una App Factory utilizza all’interno della sua strategia comprendono la UX/UI (User Experience/User Interface), l’approccio Agile, il ciclo di sviluppo DevOps e l’intelligenza artificiale. Il nostro nemico non è né tecnologico, né strategico, bensì culturale: per avere un software di qualità è indispensabile focalizzarsi sulle necessità e i bisogni degli utenti che andranno utilizzarlo, poiché saranno principalmente loro a definire il successo del software prodotto.

È complesso determinare a priori tutte le caratteristiche che questo software avrà una volta rilasciato, in quanto le esigenze potrebbero cambiare nel tempo. Ma se il software sarà in grado di rispondere alle necessità del business, sarà di facile utilizzo e in continuo aggiornamento, avremo, in tal caso, tutti gli ingredienti per un prodotto di successo. Vediamo ora nel dettaglio i vari elementi che costituiscono la nostra App Factory. 

 

La User Experience è la base 

Indipendentemente dalle tecnologie utilizzate, oggi le applicazioni devono guidare la specifica fascia di utenza in un viaggio semplice ma altamente produttivo. Coinvolgere i diversi gruppi di utenti nella raccolta dei requisiti porterà al successo del software, in quanto questo ultimo non sarà creato dal business per il business ma per i reali utilizzatori, che concorrono al successo aziendale. 

Sono quindi l’esperienza dell’utente (UX) e la relativa interfaccia (UI) il mezzo per raggiungere questo risultato. La User Experience nel processo di definizione di un prodotto viene addirittura ancora prima dell’architettura stessa. In un paradigma denominato UX-First, è infatti l’esperienza dell’utente a definire le tecnologie che andremo a utilizzare e non viceversa: la tecnologia è solo un mezzo per raggiungere i nostri scopi e non deve generare costrizioni nello sviluppo applicativo. 

Per questo motivo, 4wardPRO ha sviluppato un framework di Design Thinking denominato IMSA, acronimo di Interview, Mapping, Story Mapping & Action, grazie al quale l’utente finale è al centro già dalle prime fasi del progetto, in virtù dell’attenzione dedicata alla User Experience e User Interface (UX/UI). 

4wardPRO - Data Driven & AI Solutions

Grazie a workshop dedicati, il framework viene applicato concretamente alla realtà aziendale del cliente, mettendo in luce opportunità di innovazione non considerate fino a quel momento.  

 

Agile, una filosofia valida anche al di fuori del software 

Nel mondo dell’informatica il termine “Agile” è spesso utilizzato nell’ambito dello sviluppo e consiste in rilasci piccoli e iterativi che permettono al software di rispondere adeguatamente ai cambiamenti del business e del mercato. Questa filosofia può essere in realtà applicata a diversi contesti: avere un mindset Agile significa, infatti, rispondere rapidamente al cambiamento, senza temere il fallimento, dando il giusto valore ad ogni fase del percorso che porta all’obiettivo che si vuole raggiungere. 

Applicando questa metodologia alla nostra App Factory, viene sempre effettuata una prima iterazione (first sprint) in cui, applicando il Framework IMSA, emergono le esigenze del cliente e viene identificato il perimetro applicativo, che definisce il software, e i relativi costi.

Tecnicamente si chiama MVP, minimum viable product, ossia la migliore soluzione in grado di svolgere i compiti di base. A partire dall’MVP, successivi cicli di miglioramento permettono l’introduzione di nuove funzionalità, sfruttando le iterazioni native offerte dalle metodologie Agile

 

DevOps: codice migliore e miglior cultura 

Una volta il software veniva pensato per una specifica piattaforma e rilasciato in grandi release monolitiche. Il mercato non richiedeva, come invece accade oggi, un’evoluzione continua del software, o perlomeno non lo richiedeva con una frequenza tale da dover richiedere rilasci settimanali, se non giornalieri. 

Al giorno d’oggi, i repentini cambiamenti tecnologici e del mercato hanno portato alla luce la necessità di far evolvere i classici processi aziendali fino a eliminare ogni tipo di segregazione tra Operations e Developer. DevOps è per l’appunto l’unione di questi due ambiti, che riunisce sotto lo stesso cappello le competenze, la cultura, le discipline e gli obiettivi che consentono al ciclo di vita applicativo del software (Software Application Lifecycle Management) di diventare circolare in termini di raccolta requisiti, implementazione, test automatici, rilascio continuo e monitoring. 

L’approccio DevOps è centrale in una App Factory, in quanto l’automatizzazione dell’Application Lifecycle Management (ALM) permette di aumentarne qualità e velocità, sfruttando test automatici e integrazione continua, evitando downtime ed errori dovuti al lavoro manuale. 

 

AI: aspettative vs realtà 

L’adozione dell’Artificial Intelligence (AI) trova terreno fertile negli scenari applicativi che hanno come input dati che provengono da software, macchine, IoT, wearable o nell’implementazione di Bot a supporto dei processi aziendali. I dati grezzi non raccontano una storia, rappresentano solo fatti che sono accaduti e li cristallizzano in un formato ben definito. Il business però ha bisogno di informazioni, non di dati, e la mera trasformazione del dato in informazione è uno dei compiti dei sistemi di AI. 

Ecco che entrano in gioco le aspettative del business, che spesso non ha una visione completa dei dati a propria disposizione, e questo genera aspettative nell’AI che potrebbero venire disattese a causa della mancanza del set di dati necessario. Per fare un esempio concreto, se non registro il "colore" del materiale che ho venduto, non potrò avere dall’AI una risposta su quale sia il colore preferito dei miei clienti e di conseguenza prendere decisioni su nuove forniture. 

La cruda realtà è che l’intelligenza artificiale in quanto tale è sì una forma non biologica di intelligenza che è in grado di risolvere problemi complessi, ma ha bisogno della corretta quantità di dati di input per funzionare correttamente. Inoltre, questi dati devono essere ripuliti e riordinati e si tratta di un’attività per niente banale.  

È necessario che chi conosce le necessità (il business), chi gestisce i dati (DBA) e chi li elabora (team di sviluppo) lavorino in sinergia per poter far fronte a un progetto di questa importanza, così da avere una visione olistica su ciò che è possibile fare con i dati a disposizione e, di conseguenza, non entrare in un circolo vizioso di continue rielaborazioni che non portano al risultato desiderato. 

L’AI deve essere ben perimetrata e avere uno scopo ben definito per svolgere al meglio la propria funzione. Ecco perché le aspettative e la realtà vanno soppesate all’inizio di un progetto, così che il suo successo possa davvero portare all’azienda il vantaggio competitivo che cercava per differenziarsi sul mercato. 

 

L’azienda data-driven è oggi una realtà 

Le informazioni oggi veicolano i processi decisionali di un’azienda: essere pronti a rispondere al mercato in tempi brevi in risposta a determinate informazioni, è possibile solo grazie a un approccio Data-Driven

Se da un lato i dati giocano un ruolo fondamentale, dall’altra le applicazioni devono essere in grado di sfruttarli, valorizzandone il contenuto e rendendoli comprensibili a utenti di business che hanno come obiettivo quello di dominare il proprio mercato di riferimento. 

In conclusione, l’App Factory viene vista da 4wardPRO come una filiera di produzione in cui la qualità non è mai un’opzione. Tutta la filiera produttiva ruota attorno a requisiti, necessità e bisogni del cliente, che portano allo sviluppo di un prodotto moderno e resiliente, che si adatta all’evoluzione tecnologica. 


Beritognolo

Gianluca Beritognolo, Business Digital Innovation Director presso 4wardPRO

Gianluca Beritognolo, dopo una laurea in Informatica e Comunicazione Digitale, un’esperienza ventennale nello sviluppo software e oltre 12 come R&D Manager nella gestione di team di sviluppo, è stato per 2 anni direttore della BU Data&AI di 4wardPRO, prima di acquisire il ruolo di Business Digital Innovation Director, con lo scopo di guidare le aziende nel loro percorso di innovazione e Digital Transformation. 

 

Gianluca Beritognolo