Cos'è ALM?
L’Application Lifecycle Management (ALM) rappresenta la creazione e la manutenzione di un'applicazione software fino a quando non viene più utilizzata. Coinvolge più processi, strumenti e persone che lavorano insieme per gestire ogni aspetto del ciclo di vita, come idee, progettazione e sviluppo, test, produzione, supporto ed eventuale ridondanza.
L’ALM è anche nota come gestione integrata del ciclo di vita delle applicazioni perché vari esperti di software, come sviluppatori, analisti, tester e manager del cambiamento, lavorano insieme durante l'intero ciclo di vita delle applicazioni. La collaborazione tra i team e l'uso di vari strumenti di supporto assicurano che lo sviluppo delle applicazioni soddisfi gli obiettivi aziendali e che il progetto abbia successo.
Perché ALM è importante?
Nell'ambito dello sviluppo software tradizionale, le varie aree del processo di sviluppo del software erano completamente separate. Tale frammentazione ha portato a inefficienze di processo, ritardi nella consegna, cambiamenti imprevisti dell'ambito e superamento dei costi. La gestione del ciclo di vita delle applicazioni (ALM) risolve efficacemente questi problemi integrando più discipline, pratiche e team sotto lo stesso tetto. Lavorare insieme semplifica la creazione, la distribuzione e la gestione di software complessi.
ALM offre diversi vantaggi per tutta la durata di un'applicazione software.
Fornisce una chiara direzione del progetto
I processi e gli strumenti ALM aiutano i team di sviluppo e test a pianificare e implementare la propria strategia di progetto. Possono stimare i requisiti del progetto in modo più accurato e tracciare meglio il futuro dell'applicazione. Possono anche prendere decisioni in tempo reale e adattare il piano in modo efficace al variare delle situazioni.
Aumenta la visibilità tra i team
Gli strumenti e le tecniche utilizzate in ALM creano una vista coerente del progetto per tutti i team. Tutti conoscono il lavoro svolto fino a quel momento e le attività che devono ancora essere riprese. Diversi team possono collaborare per dare priorità alle fasi successive nello sviluppo delle applicazioni.
Aumenta la soddisfazione dei team
I team comunicano meglio e collaborano in modo più efficace. Questa comunicazione migliora la produttività e aumenta la soddisfazione dei dipendenti e l'impegno sul posto di lavoro.
Aumenta la velocità e la qualità dello sviluppo
Quando un team di sviluppo software segue i principi ALM, sviluppatori e tester collaborano in modo efficiente per migliorare la qualità del software. Possono utilizzare l'automazione per testare frequentemente il codice sorgente e risolvere tempestivamente gli errori di codifica. Testando l'intero codice per ogni modifica, i team possono fornire nuove funzionalità software in modo più rapido e sicuro.
Quali sono le fasi di ALM?
Ci sono cinque fasi del ciclo di vita di un'applicazione:
Raccolta dei requisiti dell’applicazione
Nella fase iniziale, le parti interessate rilevanti definiscono cosa richiedono dall'applicazione. Analizzano in che modo l'applicazione li supporterà nel raggiungimento degli obiettivi aziendali e dei requisiti di conformità normativa. La gestione dei requisiti in genere comporta la scrittura di storie degli utenti che mostrano come i diversi utenti interagiranno con l'applicazione.
Esempio di raccolta dei requisiti dell’applicazione
Una banca sta cercando di creare un'applicazione di mobile banking. Definisce due utenti: clienti e amministratori. Il team di gestione dei requisiti identifica due storie di utenti:
- Una storia utente del cliente in cui si afferma che i clienti utilizzano l'applicazione per inviare una richiesta di apertura di un nuovo conto bancario.
- Una storia utente dell'amministratore in cui si afferma che gli amministratori utilizzano l'applicazione per approvare i documenti dei clienti.
Inoltre, il team di gestione dei requisiti identifica che il sistema software dell'applicazione deve essere conforme agli standard di sicurezza conformi alle leggi sulla privacy dei dati.
Sviluppo di applicazioni
Nella fase di sviluppo, vari team lavorano insieme per convertire i requisiti in un'applicazione funzionante. Questi passaggi sono un esempio:
- I project manager stimano i tempi e i costi di sviluppo.
- Gli sviluppatori identificano le attività di progettazione e di programmazione.
- Gli analisti della qualità aggiungono attività di revisione e punti di controllo per i controlli di qualità e progressi.
I team di sviluppo e test pianificano anche una tempistica per i loro progetti software. Identificano eventuali interdipendenze tra i requisiti e decidono l'ordine in cui completare e rilasciare nuove funzionalità.
Esempio di sviluppo dell’applicazione
Il team IT della banca elabora un piano di sviluppo per l'applicazione mobile. I membri del team identificano la necessità di completare prima la storia utente del cliente, quindi testarla accuratamente e poi iniziare con i requisiti dell'amministratore. Tuttavia, sanno che devono soddisfare entrambi i requisiti prima di lanciare il nuovo prodotto. Codificano l'applicazione e la rilasciano a un gruppo beta in due mesi.
Test dell’applicazione
Nella fase di test del software, gli analisti della qualità valutano l'applicazione per verificare che soddisfi i requisiti. Identificano e danno priorità a eventuali errori o bug software, che il team di sviluppo software corregge. I test e lo sviluppo dell’applicazione spesso procedono contemporaneamente durante il ciclo di vita dell'applicazione. Ad esempio, le metodologie di sviluppo agile utilizzano strumenti di test automatizzati per testare l'intera base di codice ogni volta che gli sviluppatori apportano una modifica al software.
Esempio di test dell’applicazione
Il team di garanzia della qualità della banca verifica il business case dell'apertura di conti per la sua applicazione di mobile banking. Scoprono che un cliente può selezionare solo la patente di guida come prova d'identità. Poiché la banca come documento di identità accetta anche i passaporti, chiede al team di sviluppo di aggiornare l'applicazione in modo da includere queste informazioni.
Implementazione delle applicazioni
Durante l’implementazione, gli sviluppatori rilasciano l'applicazione agli utenti finali. La gestione dei rilasci include anche la pianificazione del modo in cui il team implementa le modifiche software nel tempo. I team di sviluppo agile automatizzano l’implementazione per accelerare il rilascio di nuove funzionalità e aggiornamenti. Strumenti e servizi come AWS CodeDeploy forniscono un migliore controllo dell’implementazione e riducono al minimo gli errori nella produzione.
Esempio di distribuzione delle
Il team dell'applicazione mobile della banca utilizza un server cloud per ospitare il codice dell'applicazione in modo che gli amministratori possano accedervi da un sito Web. Inoltre implementano il codice negli app store delle piattaforme mobili più diffuse in modo che i clienti possano scaricarlo direttamente.
Manutenzione dell’applicazione
Nella fase di manutenzione, i team di supporto e sviluppo collaborano per risolvere i bug rimanenti, pianificare nuovi aggiornamenti e migliorare ulteriormente il prodotto. Incorporano il feedback degli utenti e rilasciano nuove funzionalità rilevanti per i clienti. I team utilizzano anche strumenti come AWS X-Ray e AWS CloudTrail per monitorare le prestazioni e l'utilizzo delle applicazioni nella fase di manutenzione. Con il passare del tempo e con il progredire della tecnologia, potrebbero anche decidere di creare una nuova applicazione su sistemi moderni e smettere di usare quella attuale.
Esempio di manutenzione dell’applicazione
Il team IT della banca monitora le prestazioni delle applicazioni mobili e rileva che rallentano quando i clienti caricano i documenti. Apportano modifiche al sistema e migliorano il design prima di rilasciare l’aggiornamento successivo.
Cosa sono gli strumenti ALM?
Gli strumenti ALM (Application Lifecycle Management) sono software che possono essere utilizzati da sviluppatori, analisti e altre parti interessate per la gestione delle applicazioni. Forniscono un ambiente standardizzato che tutti possono utilizzare per comunicare e collaborare. Di seguito vengono fornite alcune funzionalità comuni di una suite ALM integrata.
Gestione dei progetti
La maggior parte degli strumenti ALM sono essenzialmente strumenti di project management. Puoi visualizzare lo stato del progetto durante tutte le fasi dell’ALM. Gli strumenti mostrano attività dettagliate e includono funzionalità per la stima e la pianificazione dei progetti.
Gestione dei requisiti
Uno strumento ALM funge da archivio centrale per i requisiti degli utenti delle applicazioni. Puoi collegare le storie degli utenti con le specifiche tecniche e funzionali. Ad esempio, il requisito dell'applicazione per l'accesso degli utenti può avere il requisito tecnico di crittografia delle password.
Gestione di codice sorgente
Molti strumenti ALM offrono agli sviluppatori opzioni per tenere traccia delle modifiche al codice. Diversi sviluppatori possono lavorare su un'unica base di codice, apportare e combinare modifiche e gestire in modo efficiente il processo di sviluppo.
Gestione dei test
Gli analisti utilizzano gli strumenti ALM per scrivere e gestire test software per un'integrazione continua. Questo approccio di sviluppo verifica automaticamente ogni modifica del codice apportata all'applicazione. Migliora la garanzia della qualità e supporta la fornitura continua di nuove funzionalità applicative ai clienti.
Funzionalità aggiuntive
Gli strumenti ALM possono includere diverse altre funzionalità per una gestione efficace, come ad esempio:
- Supporto chat in tempo reale
- Gestione del portfolio di progetti
- Strumenti di visualizzazione, come diagrammi e grafici
Come si confronta ALM con altre metodologie di gestione del ciclo di vita?
Il ciclo di vita viene spesso utilizzato nella tecnologia per fare riferimento all'intero processo di innovazione e supporto tecnologico. Di seguito forniamo altri termini simili.
Ciclo di vita dello sviluppo software
Il ciclo di vita dello sviluppo software (SDLC) è una metodologia sistematica che è possibile utilizzare per produrre software di qualità a costi contenuti. I team di sviluppo software utilizzano l'approccio passo dopo passo del SDLC per progettare, sviluppare, testare e distribuire in modo efficace il software.
ALM e SDLC
SDLC descrive la fase di sviluppo delle applicazioni in modo più dettagliato. Fa parte della gestione del ciclo di vita delle applicazioni (ALM, Application Lifecycle Management). L’ALM include l'intero ciclo di vita dell'applicazione e va oltre l’SDLC. L’ALM può avere più SDLC durante il ciclo di vita di un'applicazione.
Gestione del ciclo di vita dei prodotti
La gestione del ciclo di vita dei prodotti (PLM) gestisce la progettazione, la produzione e la vendita di prodotti fisici, in particolare nei settori manifatturiero e ingegneristico.
ALM e PLM
ALM si riferisce principalmente ai componenti software, mentre il PLM indica la presenza di alcuni componenti hardware, elettronici o altri componenti fisici nel prodotto. Sebbene i principi alla base del PLM e dell'ALM siano gli stessi, l'applicazione di questi principi è diversa.
Ad esempio, la fase di sviluppo del PLM include le specifiche di produzione e la fase di marketing del prodotto include la progettazione del packaging. A causa di queste differenze, il PLM dispone di un proprio set di strumenti separato. Puoi adattare e configurare determinati strumenti ALM per il tuo PLM specifico.
Cos'è la governance delle applicazioni in ALM?
La governance delle applicazioni è l'insieme di policy, procedure e regole che le organizzazioni utilizzano per allocare in modo efficiente le risorse durante il ciclo di vita dell'applicazione. Aiuta a ridurre i tempi di consegna e stabilisce una chiara responsabilità e controllo durante tutto il processo di Application Lifecycle Management (ALM). Una forte governance garantisce che l'applicazione soddisfi i requisiti normativi, di sicurezza e di conformità dell'organizzazione in materia di sicurezza dei dati.
La governance delle applicazioni include quanto segue:
- Sicurezza dei dati e accesso degli utenti
- Revisioni, verifiche e rollback delle applicazioni
- Gestione centralizzata delle risorse
- Monitoraggio di prestazioni e sistema
Cos'è la governance delle applicazioni in ALM?
La governance delle applicazioni è l'insieme di policy, procedure e regole che le organizzazioni utilizzano per allocare in modo efficiente le risorse durante il ciclo di vita dell'applicazione. Aiuta a ridurre i tempi di consegna e stabilisce una chiara responsabilità e controllo durante tutto il processo di Application Lifecycle Management (ALM). Una forte governance garantisce che l'applicazione soddisfi i requisiti normativi, di sicurezza e di conformità dell'organizzazione in materia di sicurezza dei dati.
La governance delle applicazioni include quanto segue:
- Sicurezza dei dati e accesso degli utenti
- Revisioni, verifiche e rollback delle applicazioni
- Gestione centralizzata delle risorse
- Monitoraggio di prestazioni e sistema
In che modo Amazon può aiutarti con il tuo ALM?
I servizi di gestione e governance di AWS supportano le organizzazioni in modo da poter innovare più velocemente, mantenendo il controllo su costi, conformità e sicurezza. Questi servizi gestiscono risorse cloud altamente dinamiche su vasta scala offrendo al contempo un unico piano di controllo per la gestione. Puoi anche utilizzare i servizi di gestione e governance di AWS per valutare l'uso delle risorse e identificare i modi per ridurre i costi.
Ad esempio, possono essere utilizzati i seguenti servizi:
- Budget AWS per pianificare il controllo dei costi e preventivare le risorse su AWS.
- AWS Organizations per supportare la governance e la gestione centralizzata degli account AWS.
- AWS CloudFormation per modellare e fornire le risorse dell'infrastruttura cloud.
Inizia subito a utilizzare Application Lifecycle Management (ALM) creando un account AWS.
Fasi successive della gestione del ciclo di vita delle applicazioni in AWS
Ottieni accesso istantaneo al piano gratuito di AWS.