Per poter essere competitive e arrivare sul mercato con i propri prodotti e servizi prima della concorrenza, le aziende devono contare su un ciclo di sviluppo del software molto più breve rispetto al passato. Ma se pensiamo a trend come cloud computing, mobile delivery, applicazioni ‘service-based’, ossia a tecnologie disruptive che stanno aumentando la complessità dei processi di sviluppo delle soluzioni software, il rilascio di applicazioni in linea con le richieste di business, di alta qualità e sicure, diventa sempre più complesso. Ecco perché servono piattaforme di Alm Application Lifecycle Management innovative, che consentono una vera e propria collaborazione tra team che si occupano di sviluppo e quelli dell’It operations. Senza dubbio, infatti, la trasformazione digitale determina un notevole impatto sui processi Alm, in pratica, di sviluppo e distribuzione del software, che includono raccolta dei requisiti funzionali, implementazione, verifica, validazione, monitoraggio della qualità del codice.
Management application, ecco cosa cambia con i software Alm
Quando fecero la loro prima apparizione le piattaforme di Alm (all’inizio degli anni 2000), l’obiettivo era introdurre nelle aziende una disciplina ‘business oriented’ per le pratiche di sviluppo software. L’efficacia dei software Alm era (ed è tutt’ora) indirizzata alla ‘standardizzazione dei team di sviluppo’ (intesa come comunanza di processi, di metriche, di strategie) per superare le barriere di integrazione e interoperabilità tecnologica (e di processo) che si creano quando, soprattutto nelle grandi organizzazioni, i team sono molteplici o quando si ricorre all’outsourcing di alcune parti dei processi di sviluppo.
Sono infatti ancora moltissime le organizzazioni It strutturate ‘a silos’ che includono all’interno della stessa area applicativa team e strutture organizzative diverse, spesso anche all’interno della divisione specifica dedicata allo sviluppo applicativo dove esistono gruppi eterogenei che operano con tool e metodologie diversificate. Il vantaggio delle piattaforme Alm, in questo senso, emerge dalla possibilità di unificare e condividere processi e informazioni, attraverso un unico strumento tecnologico, afferenti ai business analyst, ai tester, agli sviluppatori, ai project manager eccetera.
Una tecnologia, tuttavia, che necessita del giusto approccio per poter ‘esprimere’ al meglio tutto il suo potenziale. In questo caso, il supporto arriva dalla metodologia Agile.
Agile application lifecycle management
In un articolo su Forbes del gennaio 2018 dal titolo Agile is eating the world l’autore Steve Denning sottolineava che le aziende che adottano, anche senza chiamarli in questo modo, i principi dell’Agile sono quelle che vincono la sfida competitiva del mercato e che stanno avendo sempre più successo.
Questo perché la metodologia consente di accelerare i cicli di rilascio attraverso una più efficace gestione dei processi di sviluppo e test che possono essere eseguiti in parallelo (testando le funzionalità direttamente mentre le si sviluppa) consentendo di sviluppare molti più progetti e in modo molto più rapido. Un beneficio che però accresce le problematiche di quality & assurance nonché di sicurezza che devono essere indirizzate da processi di test e controllo costanti e affrontate con una visibilità in real-time dell’intero ciclo di sviluppo, fin dalle primissime fasi.
La metodologia Agile ‘incoraggia’ le organizzazioni a raggiungere un elevato livello di tracciabilità di tutti i processi e dei task di lavoro in grado di garantire la visibilità completa di tutto il ciclo di sviluppo (requirement, fasi di sviluppo, test, cambiamenti, revisioni, ammodernamenti e così via).
Dal punto di vista tecnico, introdurre all’interno dei team di sviluppo soluzioni di Alm significa ‘spingere’ verso un approccio che non si limita a ‘guardare’ alle pratiche di sviluppo in sé ma al suo intero ciclo, ossia a quello che viene identificato come software development lifecycle (Sdlc).
Cos’è il Software lifecycle management?
Il Sdlc (il processo di costruzione del software che assicura qualità e correttezza del codice) non è una ‘sottoarea’ dell’Alm ma un hub tra l’Alm e l’application delivery che introduce importanti novità in termini di accelerazione dei processi e velocità di time-to-market, ma non impatta sui cosiddetti Ide (integrated development environment), consentendo cioè agli sviluppatori di continuare a programmare utilizzando i tool e gli ambienti a loro più confortevoli.
Ciò che, di fatto, introduce il Sdlc è un più efficace controllo di tutte le fasi del ciclo di sviluppo garantendo una vista olistica anche su elementi quali:
- gli obiettivi e le esigenze di business, per capire da dove arrivano le richieste di nuovo codice o di revisione funzionale o di modifica delle applicazioni esistenti e identificare meglio le possibili aree di intervento;
- le motivazioni, per avere chiare le ragioni che spingono allo sviluppo applicativo, soprattutto se si tratta di revisioni e modifiche per le quali è fondamentale tenere traccia di tutti i passaggi e ‘ricostruire’ in tempi rapidi lo ‘storico’ del ciclo di sviluppo;
- la tracciabilità dei processi, per verificare in real-time tutti gli interventi di sviluppo;
- il progress dei progetti;
- la gestione e l’assessment del rischio, per capire quanto sia stabile il codice, quanto sia sicuro, quanto sia complicato o meno effettuare eventuali modifiche e revisioni future eccetera;
- la governance, per assicurarsi che il tempo ‘speso’ dai team di sviluppo sia coerente con le priorità di business.
E affinché tale vista olistica si concretizzi e i team di sviluppo inizino a ‘ragionare’ in un ottica di ‘ciclo’ e non su un singolo progetto (e processo), è fondamentale che il ciclo di sviluppo venga considerato e gestito all’interno di una più ampia ‘filosofia’ di Alm. L’obiettivo è tenere sotto controllo il ciclo di vita dell’applicazione con una soluzione che soddisfi le necessità di tutti gli stakeholder, inclusi gli analisti aziendali, i manager dello sviluppo, i project manager, i manager che si occupano di quality & assurance e i team di testing. E questo risulta possibile solo attraverso piattaforme che consentano la condivisione delle informazioni e la collaborazione e garantiscano quindi quella tracciabilità e visibilità utile ad un governo efficace di tutti i progetti.
Una volta definite le metodologie Alm, in pratica, occorre anche far sì che i vari team di progetto, dai business analyst addetti alla specifica dei requisiti, ai tester, alle operation, siano in grado di seguire questi processi, attraverso una piattaforma tecnologica che permetta di tracciare lo stato di avanzamento delle attività. Una piattaforma che fornisca ai manager anche gli strumenti di reporting necessari per valutare prestazioni, qualità, e comprendere, attraverso l’elaborazione di metriche e KPI – Key performance indicators, se tali processi Alm sono efficienti, o se possono essere ulteriormente migliorati, per guadagnare ancora in efficienza, che alla fine si trasforma in competitività per le organizzazioni.