Per decenni, IBM i si è guadagnata la reputazione di piattaforma solida come una roccia. Tuttavia, nell'attuale panorama di sviluppo in rapida evoluzione e orientato al cliente, la stabilità non è più sufficiente. Le applicazioni devono anche essere rapidamente adattabili, sicure e resilienti, senza compromettere la qualità. Questa aspettativa introduce nuove pressioni per i team di sviluppo, in particolare per quelli che si affidano ancora a pratiche legacy.
Un ambito in cui questa tensione si fa sentire più acutamente è il testing. Da quando ho memoria, ho osservato molti clienti sottovalutare o relegare i test seri alle fasi finali della distribuzione. Tuttavia, i tempi stanno cambiando e il testing sta iniziando a diventare centrale per molti dei nostri clienti. Con la modernizzazione dei team IBM i, il testing non è più un optional, ma una componente fondamentale per l'integrità del software e la velocità di distribuzione.
La crescente adozione, seppur più lenta di quanto molti si aspettassero, di pratiche Agile, DevOps e CI/CD, anche all'interno di ambienti IBM i tradizionali, sta gradualmente innalzando il profilo del testing. Queste moderne metodologie mirano ad accelerare la delivery, ma richiedono anche maggiore coerenza e standard più elevati per la qualità del codice.
Sfortunatamente, molte aziende IBM i continuano ad affidarsi a test manuali, processi di controllo qualità aneddotici o persino alla verifica da parte dell'utente finale. Questi approcci sono lenti, soggetti a errori e incapaci di supportare il cambiamento continuo. Il risultato? Rilasci soggetti a bug, regressioni inaspettate e ritardi nella distribuzione del valore.
Nello sviluppo software moderno, il testing unitario è un'aspettativa di base. Ma su IBM i, in particolare negli ambienti RPG e CL, il testing unitario è ancora una pratica emergente. Le ragioni sono comprensibili: storicamente, la piattaforma non disponeva di framework di testing e molti programmi RPG sono strettamente interconnessi e difficili da isolare per i test.
Ma le cose stanno cambiando. Ora esistono strumenti di test leggeri per RPG. Ancora più importante, sta avvenendo un cambiamento di mentalità: gli sviluppatori IBM i stanno iniziando ad abbracciare l'idea che il codice testabile sia codice migliore: più facile da manutenere, più facile da rifattorizzare e più sicuro da distribuire.
Se è difficile testarlo, probabilmente è difficile mantenerlo.
I test unitari forniscono una rete di sicurezza durante il refactoring, supportano la prevenzione della regressione e migliorano l'onboarding dei nuovi sviluppatori. Man mano che le organizzazioni modernizzano le loro applicazioni IBM i, i test unitari offrono un modo pratico per migliorare gradualmente l'affidabilità del codice legacy senza riscriverlo completamente.
Il movimento "shift left" diffuso in tutto il settore, che prevede l'anticipo dei test (e della sicurezza) nel ciclo di sviluppo, è ampiamente considerato una buona pratica. Ma non è privo di costi. Ho notato, quasi senza eccezioni, che l'onere della garanzia della qualità ricade sempre più sugli sviluppatori, che ora devono scrivere, eseguire e gestire i test oltre a fornire nuove funzionalità.
Il management spesso trascura questa realtà. Senza investimenti nell'automazione, questo cambiamento non fa altro che aumentare il carico di lavoro degli sviluppatori e introdurre colli di bottiglia. Strumenti di test automatizzati, test harness e pipeline sono essenziali per scalare gli sforzi di qualità senza rallentare la delivery.
Il messaggio è chiaro: se si va a sinistra, bisogna automatizzare.
L'automazione dei test non significa tentare di automatizzare ogni test possibile. Significa piuttosto automatizzare in modo coerente dove il valore è più alto:
Le moderne piattaforme DevOps e gli strumenti di scripting (come Jenkins, GitHub Actions o soluzioni DevOps IBM i dedicate come Rocket DevOps) possono attivare questi test come parte della pipeline di distribuzione. In combinazione con il controllo delle versioni e l'automazione delle build, l'automazione dei test costituisce la spina dorsale di un processo di distribuzione resiliente.
L'adozione del testing su IBM i non è solo una sfida tecnica; spesso è anche culturale. Molti team operano ancora in ruoli isolati, dove il controllo qualità è separato dallo sviluppo e il testing è reattivo anziché proattivo.
Per superare questo problema:
Per i team IBM i alle prime armi, la trasformazione dei test può sembrare scoraggiante. Ma non deve essere per forza tutto o niente. Ecco un percorso realistico da seguire:
I test moderni non puntano alla perfezione, ma alla creazione di cicli di feedback che aiutino i team a individuare tempestivamente i problemi, ridurre il lavoro manuale e implementare con sicurezza. Per i team IBM i che modernizzano le proprie pratiche di sviluppo, test robusti sono il primo passo verso resilienza e agilità.
Gestire il paradosso della modernizzazione
Rocket® DevOps 11.1: Definire il ritmo per il 2026
Le complessità nascoste del rilascio di nuove versioni su IBM® i
