Se si pensa ad un progetto di sviluppo applicativo come ad una serie complessa di attività è facile immaginare come la buona riuscita dipenda dall’accurata definizione degli obiettivi, dalla capacità di darsi tempi certi, dall’assegnazione di un budget e di un preciso riscontro sulle risorse disponibili.
Non si contano i progetti di sviluppo non conclusi, quelli che sono costati più del dovuto e di quanto preventivato e non si contano nemmeno quelli sulla carta conclusi ma che sul campo si rivelano inadeguati, oppure quelli in cui le applicazioni non soddisfano le aspettative per quanto riguarda le performance.
Spesso alla base di questi problemi ci sono le difficoltà di gestione dei progetti con metodi o strumenti poco efficaci. Nella migliore delle ipotesi operative, in ogni caso, servono una corretta gestione della struttura organizzativa e l’acquisizione di una metodologia di sviluppo software.
Servono quindi anche competenze e best practice nell’ambito del Project Management e un’ottima conoscenza delle soluzioni di Application Delivery Management. In questo scenario le soluzioni di Project Portfolio Management (PPM) aiutano a gestire il portafoglio di servizi e applicazioni aziendali, ma anche allineare i flussi richiesti dalla strategia per ottimizzare processi e governance. Spetta alle organizzazioni individuare un sistema di gestione agile, disciplinare i processi, attivare una vera e propria catena di produzione e verifica, per una perfetta governance complessiva e, nello specifico, per una governance accurata sulle performance applicative attraverso i Performance Testing Tools (PTT).
Performance applicativa, perché è importante
Si tratta di passaggi molto importanti, una recente ricerca Gartner infatti evidenza la difficoltà delle aziende a soddisfare le aspettative per quanto riguarda le prestazioni delle applicazioni, in particolare per velocità, scalabilità e qualità delle stesse. Spesso la problematica è imputabile a difetti architetturali, ma la risoluzione di queste problematiche è complessa e rimediare “dopo” comporta costi elevati.
Non solo, le sfide legate ai problemi prestazionali non possono essere risolte semplicemente affidandosi ai test che spesso non tengono conto della reale esperienza degli utenti sul campo. In questo senso Gartner stessa raccomanda alle aziende l’adozione di una strategia proattiva su questo specifico tema con lo studio di casi specifici di testing e l’integrazione dei test nei processi CI/CD, per un vero approccio bimodale, oltre all’implementazione di strumenti per sfruttare le informazioni sulle reali prestazioni dell’app in produzione e quindi con dati di utenti reali. Entriamo nei dettagli.
L’adozione di un approccio DevOps evoluto già entro quest’anno spingerà le aziende ad implementare test continuativi sulle app basandosi su framework e strumenti open source. Mentre il bisogno di gestire i processi aziendali sfruttando gli strumenti digitali nel 2021 porterà le aziende a monitorare il comportamento del 20% delle applicazioni aziendali con le suite APM. La percentuale nel 2017 era appena del 5%, ma chi avrà adottato un approccio ingegnerizzato per lo studio delle prestazioni si troverà a constatare un vantaggio competitivo rispetto ai concorrenti e riscontrerà una maggiore soddisfazione anche da parte dei suoi clienti.
La qualità delle applicazioni è misurabile
Contrariamente a quello che si potrebbe pensare, la qualità applicativa è “misurabile”. Si tratta di una nozione che include l’esperienza utente, la qualità del servizio, la disponibilità e le prestazioni. Lo standard internazionale per misurare la qualità del software è ISO/IEC 25010 che fornisce i benchmark e i criteri di verifica e include quelli sull’efficienza prestazionale. Alle aziende manca ancora però la prospettiva olistica sul tema; esse si limitano all’analisi dei requisiti funzionali (e spesso nemmeno letti in modo inadeguato), ma questo non basta. Sono proprio le prestazioni invece a rappresentare una caratteristica “non funzionale” critica, perché mentre i limiti funzionali sono relativamente più veloci da rimediare, rimediare a difetti prestazionali significa intervenire su diverse componenti. Per questo è corretto parlare di “ingegneria delle prestazioni”. L’approccio olistico invece prevede, secondo Gartner:
- Definizione dei requisiti di prestazione
- Design ottimizzato per le prestazioni
- Codifica pensando alle prestazioni
- Test delle prestazioni continui come parte del processo CI
- Test in produzione
- Monitoraggio delle prestazioni, incluso il monitoraggio degli utenti reali (RUM)
Queste best practices si riveleranno benefiche e aiuteranno anche lo studio dell’esperienza dell’utente finale, importante per fasare a tutto tondo gli scenari di test di carico e i parametri generali. Solo l’insieme di questi studi abilita quella che Gartner definisce una virtuosa toolchain DevOps.
Dai requisiti di prestazione sarà possibile definire le specifiche di progettazione e le specifiche tecniche per una corretta comunicazione ai team di sviluppo, in modo da lavorare su presupposti condivisi e chiari.
Si tratta anche di arrivare a condividere aspetti progettuali importanti. Per esempio pensare alle prestazioni necessarie in relazione agli utenti simultanei che utilizzeranno un’app, con un preciso tempo di risposta, di elaborazione. Sono questi evidentemente attributi non funzionali eppure critici. Inizialmente un’applicazione potrebbe rivelarsi “efficiente” per poi deludere con il crescere del volume di utenti, ma anche semplicemente delle righe di codice. Da questo punto di vista, Gartner sottolinea quanto non sia sufficiente delineare specifiche generiche ed invece sia importante definire in modo esplicito i dettagli: servono numeri e tempi. Per esempio, indicando quanti utenti simultanei potrebbero inviare quanti ordini al secondo, e i tempi di risposta, le percentuali di errori tollerabili, quanti record si potrebbe trovare ad elaborare l’applicazione in batch e così via.
Le prestazioni stesse devono rientrare tra gli obiettivi di progettazione. Più il lavoro tra il team che cura il progetto e gli altri dipartimenti aziendali sarà concertato, meno difficoltà si incontreranno poi.
Continuous Performance Testing
Dati questi presupposti è facile comprendere l’importanza di test prestazionali lungo tutto il ciclo di sviluppo, non solo a fine processo. Posticipare i test alle fasi più avanzate del ciclo di sviluppo (SDLC) servirà solo a spendere più tempo e risorse per rimediare ai problemi. Mentre per gli errori funzionali, come accennavamo, basta spesso modificare il codice, le deviazioni dagli obiettivi per quanto riguarda le prestazioni – non analizzate subito – possono impedire di evidenziare problemi architetturali seri. Gli esperti quindi auspicano un approccio “shift left” come virtuoso che permetterà poi di procedere anche in modo più spedito. Un testing precoce può rassicurare anche sulla qualità del codice ed aiutare a prendere decisioni informate.
Questa tipologia di testing non richiede semplicemente di utilizzare strumenti di verifica, richiede anche l’automazione dell’intero processo, inclusa la configurazione dei dati di test, l’esecuzione degli stessi, la creazione di report, gli analytics. Per questo Gartner consiglia di affidarsi a strumenti completi (tra cui in testa le soluzioni Micro Focus e LoadRunner). Gartner sottolinea inoltre come, in questo ambito, i motori di configurazione automatica inneschino i giusti meccanismi di verifica appena dopo l”avvio” del codice. Si dovrà quindi avere l’accortezza di affidarsi più alle indicazioni dei trend che dei singoli test, in grado – i primi – di fornire indicazioni affidabili e precoci. Così come sarà interessante per esempio confrontare su diversi gruppi di server le performance tra diverse stesure di codice.
Shift Left e Shift Right
Anche per questo serve “automatizzare” il più possibile, creare processi di test sulle prestazioni specifici attivabili a piacere e controllabili in modo automatizzato attraverso la registrazione e l’analisi delle metriche. Torniamo al tema iniziale infine relativo ai benefici, in fase di testing, dei circuiti di feedback.
Se il test delle prestazioni come parte del processo CI/CD resta elemento fondamentale per una buona pratica non è tuttavia sufficiente. Oltre all’approccio Shift Left, quindi, Gartner consiglia anche l’adozione di una strategia Shift Right, lo studio del comportamento delle applicazioni suisistemi in produzione, nell’utilizzo concreto da parte dell’utente finale, anche per una migliore regolazione delle prestazioni in relazione ai carichi effettivi. Si tratta di funzionalità solitamente incluse sia nelle tecnologie APM sia negli strumenti di monitoring. La tendenza di mercato attuale è oggi quella di aggiungere funzionalità in questo senso facilitando il controllo su tre dimensioni funzionali principali:
- Digital experience monitoring (DEM) – Quindi il monitoraggio degli utenti reali (RUM) e monitoraggio sintetico delle transazioni (STM) sia per utenti Web che da mobile.
- Individuazione, tracciabilità e diagnostica delle applicazioni (ADTD): un insieme di processi incentrati principalmente sulla risoluzione dei problemi.
- Intelligenza artificiale per operazioni IT (AIOps) per applicazioni: con il rilevamento automatico di modelli di prestazioni ed eventi e rilevamento della fonte (o causa principale) delle anomalie delle prestazioni.
In questo modo sarà più facile valutare la capacità prestazionale delle applicazioni a tutto tondo nel mondo reale.
Non perdere tutti gli approfondimenti della room Micro Focus Powering Digital Transformation
© RIPRODUZIONE RISERVATA